Skip to main content

Plastic SCM


Display Plastic SCM information when in a plastic repository. Also works for subfolders. For maximum compatibility, make sure your cm executable is up-to-date (when branch or status information is incorrect for example).

Local changes can also be displayed which uses the following syntax (see .Status property below):

  • + added
  • ~ modified
  • - deleted
  • > moved
  • x unmerged

Sample Configuration#

"type": "plastic",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"foreground": "#193549",
"background": "#ffeb3b",
"background_templates": [
"{{ if .MergePending }}#006060{{ end }}",
"{{ if .Changed }}#FF9248{{ end }}",
"{{ if and .Changed .Behind }}#ff4500{{ end }}",
"{{ if .Behind }}#B388FF{{ end }}"
"template": "{{ .Selector }}{{ if .Status.Changed }} \uF044 {{ end }}{{ .Status.String }}",
"properties": {
"fetch_status": true,
"branch_max_length": 25,
"truncate_symbol": "\u2026"

Plastic SCM Icon#

If you want to use the icon of Plastic SCM in the segment, then please help me push the icon in this issue by leaving a like! icon


Fetching information#

As doing multiple cm calls can slow down the prompt experience, we do not fetch information by default. You can set the following property to true to enable fetching additional information (and populate the template).

  • fetch_status: boolean - fetch the local changes - defaults to false



  • branch_icon: string - the icon to use in front of the git branch name - defaults to \uE0A0
  • full_branch_path: bool - display the full branch path: /main/fix-001 instead of fix-001 - defaults to true
  • branch_max_length: int - the max length for the displayed branch name where 0 implies full length - defaults to 0
  • truncate_symbol: string - the icon to display when a branch name is truncated - defaults to empty


  • commit_icon: string - icon/text to display before the commit context (detached HEAD) - defaults to \uF417
  • tag_icon: string - icon/text to display before the tag context - defaults to \uF412

Template (info)#

default template
{{ .Selector }}


  • .Selector: string - the current selector context (branch/changeset/label)
  • .Behind: bool - the current workspace is behind and changes are incoming
  • .Status: PlasticStatus - changes in the workspace (see below)
  • .MergePending: bool - if a merge is pending and needs to be commited (kown issue: when no file is left after a Change/Delete conflict merge, the MergePending property is not set)


  • .Unmerged: int - number of unmerged changes
  • .Deleted: int - number of deleted changes
  • .Added: int - number of added changes
  • .Modified: int - number of modified changes
  • .Moved: int - number of moved changes
  • .Changed: boolean - if the status contains changes or not
  • .String: string - a string representation of the changes above