Skip to content
Subway SeatSubway SeatSubway Seat
← All ports

AgentsNeeds Claude Code 2.1.247+

Claude Code

One plugin: every flavor's themes, a relaxed output style and subagent rows. /subway-seat:setup asks for a flavor, shows what it will change, then adds the station-sign status line, 70s spinner verbs and “Next stop” tips to your settings; /subway-seat:setup remove takes them out again. Claude Code colors code in diffs and file views itself (Monokai on dark, GitHub on light). Each flavor's “terminal colors” theme hands that to your terminal's 16 colors instead, so in a Subway Seat terminal the code matches the rest; diff lines then get plainer 256-color grounds, gray for added lines on the dark flavors. Inside tmux, Claude Code rounds colors to 256 unless CLAUDE_CODE_TMUX_TRUECOLOR=1 is set.

Showing WalnutTunnelEnamelMoquetteDeep LevelPortlandGuimardCatacombesCarrelage. Switch flavors with the bullets up top.

Claude Code Report a problem with this portReport a problem with this portReport a problem with this portReport a problem with this portReport a problem with this portReport a problem with this portReport a problem with this portReport a problem with this portReport a problem with this port

The quick way

The installer sets it up for you, then tells you the one thing it can't do. More ways to install

curl -fsSL https://oddurs.github.io/subway-seat/install.sh | sh -s -- --flavor walnut --only claude-code
curl -fsSL https://oddurs.github.io/subway-seat/install.sh | sh -s -- --flavor tunnel --only claude-code
curl -fsSL https://oddurs.github.io/subway-seat/install.sh | sh -s -- --flavor enamel --only claude-code
curl -fsSL https://oddurs.github.io/subway-seat/install.sh | sh -s -- --flavor moquette --only claude-code
curl -fsSL https://oddurs.github.io/subway-seat/install.sh | sh -s -- --flavor deep --only claude-code
curl -fsSL https://oddurs.github.io/subway-seat/install.sh | sh -s -- --flavor portland --only claude-code
curl -fsSL https://oddurs.github.io/subway-seat/install.sh | sh -s -- --flavor guimard --only claude-code
curl -fsSL https://oddurs.github.io/subway-seat/install.sh | sh -s -- --flavor catacombes --only claude-code
curl -fsSL https://oddurs.github.io/subway-seat/install.sh | sh -s -- --flavor carrelage --only claude-code

Turn it on

In Claude Code, from the Subway Seat marketplace
/plugin marketplace add oddurs/subway-seat
/plugin install subway-seat@subway-seat
/subway-seat:setup   # and pick Subway Seat
In Claude Code, from the Subway Seat marketplace
/plugin marketplace add oddurs/subway-seat
/plugin install subway-seat@subway-seat
/subway-seat:setup   # and pick Subway Seat Tunnel
In Claude Code, from the Subway Seat marketplace
/plugin marketplace add oddurs/subway-seat
/plugin install subway-seat@subway-seat
/subway-seat:setup   # and pick Subway Seat Enamel
In Claude Code, from the Subway Seat marketplace
/plugin marketplace add oddurs/subway-seat
/plugin install subway-seat@subway-seat
/subway-seat:setup   # and pick London Moquette
In Claude Code, from the Subway Seat marketplace
/plugin marketplace add oddurs/subway-seat
/plugin install subway-seat@subway-seat
/subway-seat:setup   # and pick London Deep Level
In Claude Code, from the Subway Seat marketplace
/plugin marketplace add oddurs/subway-seat
/plugin install subway-seat@subway-seat
/subway-seat:setup   # and pick London Portland
In Claude Code, from the Subway Seat marketplace
/plugin marketplace add oddurs/subway-seat
/plugin install subway-seat@subway-seat
/subway-seat:setup   # and pick Paris Guimard
In Claude Code, from the Subway Seat marketplace
/plugin marketplace add oddurs/subway-seat
/plugin install subway-seat@subway-seat
/subway-seat:setup   # and pick Paris Catacombes
In Claude Code, from the Subway Seat marketplace
/plugin marketplace add oddurs/subway-seat
/plugin install subway-seat@subway-seat
/subway-seat:setup   # and pick Paris Carrelage
themes/subway-seat.jsonsave as ~/.claude/themes/subway-seat.json
{
  "name": "Subway Seat",
  "base": "dark",
  "overrides": {
    "claude": "#EC7F31",
    "claudeShimmer": "#FF9D55",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#7F9BAE",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#9DB6C6",
    "text": "#EDDCBC",
    "inverseText": "#20160E",
    "inactive": "#AE9575",
    "inactiveShimmer": "#C4AE8C",
    "subtle": "#7B6047",
    "suggestion": "#F3BF45",
    "permission": "#F3BF45",
    "permissionShimmer": "#FFD36B",
    "remember": "#86AD95",
    "background": "#86AD95",
    "success": "#ADB956",
    "error": "#FF8373",
    "warning": "#F3BF45",
    "warningShimmer": "#FFD36B",
    "merged": "#F4A87E",
    "promptBorder": "#7B6047",
    "promptBorderShimmer": "#967B5C",
    "planMode": "#86AD95",
    "autoAccept": "#F4A87E",
    "autoAcceptShimmer": "#F5BC98",
    "skill": "#F4A87E",
    "bashBorder": "#F3BF45",
    "ide": "#7F9BAE",
    "professionalBlue": "#7F9BAE",
    "chromeYellow": "#F3BF45",
    "fastMode": "#FF9D55",
    "fastModeShimmer": "#FFD36B",
    "effortUltra": "#FFD36B",
    "diffAdded": "#3F3A1E",
    "diffRemoved": "#52281C",
    "diffAddedDimmed": "#342D18",
    "diffRemovedDimmed": "#412217",
    "diffAddedWord": "#504D26",
    "diffRemovedWord": "#6D3224",
    "userMessageBackground": "#43301F",
    "userMessageBackgroundHover": "#513B27",
    "bashMessageBackgroundColor": "#49351D",
    "memoryBackgroundColor": "#403628",
    "composerSidebarBackground": "#2A1D13",
    "selectionBg": "#634932",
    "rate_limit_fill": "#EC7F31",
    "rate_limit_empty": "#513B27",
    "briefLabelYou": "#F3BF45",
    "briefLabelClaude": "#EC7F31",
    "clawd_body": "#EC7F31",
    "clawd_background": "#20160E",
    "red_FOR_SUBAGENTS_ONLY": "#FF8373",
    "blue_FOR_SUBAGENTS_ONLY": "#7F9BAE",
    "green_FOR_SUBAGENTS_ONLY": "#ADB956",
    "yellow_FOR_SUBAGENTS_ONLY": "#F3BF45",
    "purple_FOR_SUBAGENTS_ONLY": "#CE9C9C",
    "orange_FOR_SUBAGENTS_ONLY": "#EC7F31",
    "pink_FOR_SUBAGENTS_ONLY": "#F4A87E",
    "cyan_FOR_SUBAGENTS_ONLY": "#86AD95",
    "rainbow_red": "#E05C45",
    "rainbow_orange": "#EC7F31",
    "rainbow_yellow": "#F3BF45",
    "rainbow_green": "#ADB956",
    "rainbow_blue": "#86AD95",
    "rainbow_indigo": "#7F9BAE",
    "rainbow_violet": "#F4A87E",
    "rainbow_red_shimmer": "#FF8373",
    "rainbow_orange_shimmer": "#FF9D55",
    "rainbow_yellow_shimmer": "#FFD36B",
    "rainbow_green_shimmer": "#BFCB63",
    "rainbow_blue_shimmer": "#A5C9B0",
    "rainbow_indigo_shimmer": "#9DB6C6",
    "rainbow_violet_shimmer": "#F5BC98"
  }
}
plugin/themes/subway-seat.json
{
  "name": "Subway Seat",
  "base": "dark",
  "overrides": {
    "claude": "#EC7F31",
    "claudeShimmer": "#FF9D55",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#7F9BAE",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#9DB6C6",
    "text": "#EDDCBC",
    "inverseText": "#20160E",
    "inactive": "#AE9575",
    "inactiveShimmer": "#C4AE8C",
    "subtle": "#7B6047",
    "suggestion": "#F3BF45",
    "permission": "#F3BF45",
    "permissionShimmer": "#FFD36B",
    "remember": "#86AD95",
    "background": "#86AD95",
    "success": "#ADB956",
    "error": "#FF8373",
    "warning": "#F3BF45",
    "warningShimmer": "#FFD36B",
    "merged": "#F4A87E",
    "promptBorder": "#7B6047",
    "promptBorderShimmer": "#967B5C",
    "planMode": "#86AD95",
    "autoAccept": "#F4A87E",
    "autoAcceptShimmer": "#F5BC98",
    "skill": "#F4A87E",
    "bashBorder": "#F3BF45",
    "ide": "#7F9BAE",
    "professionalBlue": "#7F9BAE",
    "chromeYellow": "#F3BF45",
    "fastMode": "#FF9D55",
    "fastModeShimmer": "#FFD36B",
    "effortUltra": "#FFD36B",
    "diffAdded": "#3F3A1E",
    "diffRemoved": "#52281C",
    "diffAddedDimmed": "#342D18",
    "diffRemovedDimmed": "#412217",
    "diffAddedWord": "#504D26",
    "diffRemovedWord": "#6D3224",
    "userMessageBackground": "#43301F",
    "userMessageBackgroundHover": "#513B27",
    "bashMessageBackgroundColor": "#49351D",
    "memoryBackgroundColor": "#403628",
    "composerSidebarBackground": "#2A1D13",
    "selectionBg": "#634932",
    "rate_limit_fill": "#EC7F31",
    "rate_limit_empty": "#513B27",
    "briefLabelYou": "#F3BF45",
    "briefLabelClaude": "#EC7F31",
    "clawd_body": "#EC7F31",
    "clawd_background": "#20160E",
    "red_FOR_SUBAGENTS_ONLY": "#FF8373",
    "blue_FOR_SUBAGENTS_ONLY": "#7F9BAE",
    "green_FOR_SUBAGENTS_ONLY": "#ADB956",
    "yellow_FOR_SUBAGENTS_ONLY": "#F3BF45",
    "purple_FOR_SUBAGENTS_ONLY": "#CE9C9C",
    "orange_FOR_SUBAGENTS_ONLY": "#EC7F31",
    "pink_FOR_SUBAGENTS_ONLY": "#F4A87E",
    "cyan_FOR_SUBAGENTS_ONLY": "#86AD95",
    "rainbow_red": "#E05C45",
    "rainbow_orange": "#EC7F31",
    "rainbow_yellow": "#F3BF45",
    "rainbow_green": "#ADB956",
    "rainbow_blue": "#86AD95",
    "rainbow_indigo": "#7F9BAE",
    "rainbow_violet": "#F4A87E",
    "rainbow_red_shimmer": "#FF8373",
    "rainbow_orange_shimmer": "#FF9D55",
    "rainbow_yellow_shimmer": "#FFD36B",
    "rainbow_green_shimmer": "#BFCB63",
    "rainbow_blue_shimmer": "#A5C9B0",
    "rainbow_indigo_shimmer": "#9DB6C6",
    "rainbow_violet_shimmer": "#F5BC98"
  }
}
themes/subway-seat-terminal.jsonsave as ~/.claude/themes/subway-seat-terminal.json
{
  "name": "Subway Seat (terminal colors)",
  "base": "dark-ansi",
  "overrides": {
    "claude": "#EC7F31",
    "claudeShimmer": "#FF9D55",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#7F9BAE",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#9DB6C6",
    "text": "#EDDCBC",
    "inverseText": "#20160E",
    "inactive": "#AE9575",
    "inactiveShimmer": "#C4AE8C",
    "subtle": "#7B6047",
    "suggestion": "#F3BF45",
    "permission": "#F3BF45",
    "permissionShimmer": "#FFD36B",
    "remember": "#86AD95",
    "background": "#86AD95",
    "success": "#ADB956",
    "error": "#FF8373",
    "warning": "#F3BF45",
    "warningShimmer": "#FFD36B",
    "merged": "#F4A87E",
    "promptBorder": "#7B6047",
    "promptBorderShimmer": "#967B5C",
    "planMode": "#86AD95",
    "autoAccept": "#F4A87E",
    "autoAcceptShimmer": "#F5BC98",
    "skill": "#F4A87E",
    "bashBorder": "#F3BF45",
    "ide": "#7F9BAE",
    "professionalBlue": "#7F9BAE",
    "chromeYellow": "#F3BF45",
    "fastMode": "#FF9D55",
    "fastModeShimmer": "#FFD36B",
    "effortUltra": "#FFD36B",
    "diffAdded": "ansi256(236)",
    "diffRemoved": "ansi256(52)",
    "diffAddedDimmed": "ansi256(235)",
    "diffRemovedDimmed": "ansi256(52)",
    "diffAddedWord": "ansi256(238)",
    "diffRemovedWord": "ansi256(88)",
    "userMessageBackground": "#43301F",
    "userMessageBackgroundHover": "#513B27",
    "bashMessageBackgroundColor": "#49351D",
    "memoryBackgroundColor": "#403628",
    "composerSidebarBackground": "#2A1D13",
    "selectionBg": "#634932",
    "rate_limit_fill": "#EC7F31",
    "rate_limit_empty": "#513B27",
    "briefLabelYou": "#F3BF45",
    "briefLabelClaude": "#EC7F31",
    "clawd_body": "#EC7F31",
    "clawd_background": "#20160E",
    "red_FOR_SUBAGENTS_ONLY": "#FF8373",
    "blue_FOR_SUBAGENTS_ONLY": "#7F9BAE",
    "green_FOR_SUBAGENTS_ONLY": "#ADB956",
    "yellow_FOR_SUBAGENTS_ONLY": "#F3BF45",
    "purple_FOR_SUBAGENTS_ONLY": "#CE9C9C",
    "orange_FOR_SUBAGENTS_ONLY": "#EC7F31",
    "pink_FOR_SUBAGENTS_ONLY": "#F4A87E",
    "cyan_FOR_SUBAGENTS_ONLY": "#86AD95",
    "rainbow_red": "#E05C45",
    "rainbow_orange": "#EC7F31",
    "rainbow_yellow": "#F3BF45",
    "rainbow_green": "#ADB956",
    "rainbow_blue": "#86AD95",
    "rainbow_indigo": "#7F9BAE",
    "rainbow_violet": "#F4A87E",
    "rainbow_red_shimmer": "#FF8373",
    "rainbow_orange_shimmer": "#FF9D55",
    "rainbow_yellow_shimmer": "#FFD36B",
    "rainbow_green_shimmer": "#BFCB63",
    "rainbow_blue_shimmer": "#A5C9B0",
    "rainbow_indigo_shimmer": "#9DB6C6",
    "rainbow_violet_shimmer": "#F5BC98"
  }
}
plugin/themes/subway-seat-terminal.json
{
  "name": "Subway Seat (terminal colors)",
  "base": "dark-ansi",
  "overrides": {
    "claude": "#EC7F31",
    "claudeShimmer": "#FF9D55",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#7F9BAE",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#9DB6C6",
    "text": "#EDDCBC",
    "inverseText": "#20160E",
    "inactive": "#AE9575",
    "inactiveShimmer": "#C4AE8C",
    "subtle": "#7B6047",
    "suggestion": "#F3BF45",
    "permission": "#F3BF45",
    "permissionShimmer": "#FFD36B",
    "remember": "#86AD95",
    "background": "#86AD95",
    "success": "#ADB956",
    "error": "#FF8373",
    "warning": "#F3BF45",
    "warningShimmer": "#FFD36B",
    "merged": "#F4A87E",
    "promptBorder": "#7B6047",
    "promptBorderShimmer": "#967B5C",
    "planMode": "#86AD95",
    "autoAccept": "#F4A87E",
    "autoAcceptShimmer": "#F5BC98",
    "skill": "#F4A87E",
    "bashBorder": "#F3BF45",
    "ide": "#7F9BAE",
    "professionalBlue": "#7F9BAE",
    "chromeYellow": "#F3BF45",
    "fastMode": "#FF9D55",
    "fastModeShimmer": "#FFD36B",
    "effortUltra": "#FFD36B",
    "diffAdded": "ansi256(236)",
    "diffRemoved": "ansi256(52)",
    "diffAddedDimmed": "ansi256(235)",
    "diffRemovedDimmed": "ansi256(52)",
    "diffAddedWord": "ansi256(238)",
    "diffRemovedWord": "ansi256(88)",
    "userMessageBackground": "#43301F",
    "userMessageBackgroundHover": "#513B27",
    "bashMessageBackgroundColor": "#49351D",
    "memoryBackgroundColor": "#403628",
    "composerSidebarBackground": "#2A1D13",
    "selectionBg": "#634932",
    "rate_limit_fill": "#EC7F31",
    "rate_limit_empty": "#513B27",
    "briefLabelYou": "#F3BF45",
    "briefLabelClaude": "#EC7F31",
    "clawd_body": "#EC7F31",
    "clawd_background": "#20160E",
    "red_FOR_SUBAGENTS_ONLY": "#FF8373",
    "blue_FOR_SUBAGENTS_ONLY": "#7F9BAE",
    "green_FOR_SUBAGENTS_ONLY": "#ADB956",
    "yellow_FOR_SUBAGENTS_ONLY": "#F3BF45",
    "purple_FOR_SUBAGENTS_ONLY": "#CE9C9C",
    "orange_FOR_SUBAGENTS_ONLY": "#EC7F31",
    "pink_FOR_SUBAGENTS_ONLY": "#F4A87E",
    "cyan_FOR_SUBAGENTS_ONLY": "#86AD95",
    "rainbow_red": "#E05C45",
    "rainbow_orange": "#EC7F31",
    "rainbow_yellow": "#F3BF45",
    "rainbow_green": "#ADB956",
    "rainbow_blue": "#86AD95",
    "rainbow_indigo": "#7F9BAE",
    "rainbow_violet": "#F4A87E",
    "rainbow_red_shimmer": "#FF8373",
    "rainbow_orange_shimmer": "#FF9D55",
    "rainbow_yellow_shimmer": "#FFD36B",
    "rainbow_green_shimmer": "#BFCB63",
    "rainbow_blue_shimmer": "#A5C9B0",
    "rainbow_indigo_shimmer": "#9DB6C6",
    "rainbow_violet_shimmer": "#F5BC98"
  }
}
plugin/settings/subway-seat.jsonmerged into ~/.claude/settings.json by /subway-seat:setup
{
  "theme": "custom:subway-seat:subway-seat",
  "statusLine": {
    "type": "command",
    "command": "${CLAUDE_PLUGIN_DATA}/subway-seat-statusline",
    "padding": 0,
    "hideVimModeIndicator": true
  },
  "spinnerVerbs": {
    "mode": "replace",
    "verbs": [
      "Reading the Vignelli map",
      "Riding the local",
      "Running express",
      "Transferring",
      "Holding the doors",
      "Watching the gap",
      "Waiting on the platform",
      "Rolling uptown",
      "Rolling downtown",
      "Changing at 14th Street",
      "Dropping a token",
      "Grabbing the pole",
      "Finding a seat",
      "Sinking into the shag",
      "Flipping the record",
      "Warming up the hi-fi",
      "Tuning the 8-track",
      "Adjusting the rabbit ears",
      "Watering the spider plant",
      "Percolating",
      "Taking the A train",
      "Keeping it groovy",
      "Easing on down the road",
      "Digging it",
      "Grooving",
      "Punching a transfer",
      "Checking the strip map",
      "Spinning the lazy Susan",
      "Knotting the macrame",
      "Lava-lamping"
    ]
  },
  "spinnerTipsOverride": {
    "tipsFile": "${CLAUDE_PLUGIN_DATA}/tips.json",
    "label": "Next stop"
  }
}
themes/subway-seat-tunnel.jsonsave as ~/.claude/themes/subway-seat-tunnel.json
{
  "name": "Subway Seat Tunnel",
  "base": "dark",
  "overrides": {
    "claude": "#EC7F31",
    "claudeShimmer": "#FF9D55",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#7F9BAE",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#9DB6C6",
    "text": "#E9D8B6",
    "inverseText": "#140D07",
    "inactive": "#AA9171",
    "inactiveShimmer": "#C0AA88",
    "subtle": "#745B45",
    "suggestion": "#F3BF45",
    "permission": "#F3BF45",
    "permissionShimmer": "#FFD36B",
    "remember": "#86AD95",
    "background": "#86AD95",
    "success": "#ADB956",
    "error": "#FF8373",
    "warning": "#F3BF45",
    "warningShimmer": "#FFD36B",
    "merged": "#F4A87E",
    "promptBorder": "#745B45",
    "promptBorderShimmer": "#917759",
    "planMode": "#86AD95",
    "autoAccept": "#F4A87E",
    "autoAcceptShimmer": "#F5BC97",
    "skill": "#F4A87E",
    "bashBorder": "#F3BF45",
    "ide": "#7F9BAE",
    "professionalBlue": "#7F9BAE",
    "chromeYellow": "#F3BF45",
    "fastMode": "#FF9D55",
    "fastModeShimmer": "#FFD36B",
    "effortUltra": "#FFD36B",
    "diffAdded": "#363318",
    "diffRemoved": "#492217",
    "diffAddedDimmed": "#292512",
    "diffRemovedDimmed": "#371A12",
    "diffAddedWord": "#484722",
    "diffRemovedWord": "#662D20",
    "userMessageBackground": "#302115",
    "userMessageBackgroundHover": "#3D2C1D",
    "bashMessageBackgroundColor": "#392914",
    "memoryBackgroundColor": "#302A1E",
    "composerSidebarBackground": "#1B120A",
    "selectionBg": "#4F3927",
    "rate_limit_fill": "#EC7F31",
    "rate_limit_empty": "#3D2C1D",
    "briefLabelYou": "#F3BF45",
    "briefLabelClaude": "#EC7F31",
    "clawd_body": "#EC7F31",
    "clawd_background": "#140D07",
    "red_FOR_SUBAGENTS_ONLY": "#FF8373",
    "blue_FOR_SUBAGENTS_ONLY": "#7F9BAE",
    "green_FOR_SUBAGENTS_ONLY": "#ADB956",
    "yellow_FOR_SUBAGENTS_ONLY": "#F3BF45",
    "purple_FOR_SUBAGENTS_ONLY": "#CE9C9C",
    "orange_FOR_SUBAGENTS_ONLY": "#EC7F31",
    "pink_FOR_SUBAGENTS_ONLY": "#F4A87E",
    "cyan_FOR_SUBAGENTS_ONLY": "#86AD95",
    "rainbow_red": "#E05C45",
    "rainbow_orange": "#EC7F31",
    "rainbow_yellow": "#F3BF45",
    "rainbow_green": "#ADB956",
    "rainbow_blue": "#86AD95",
    "rainbow_indigo": "#7F9BAE",
    "rainbow_violet": "#F4A87E",
    "rainbow_red_shimmer": "#FF8373",
    "rainbow_orange_shimmer": "#FF9D55",
    "rainbow_yellow_shimmer": "#FFD36B",
    "rainbow_green_shimmer": "#BFCB63",
    "rainbow_blue_shimmer": "#A5C9B0",
    "rainbow_indigo_shimmer": "#9DB6C6",
    "rainbow_violet_shimmer": "#F5BC97"
  }
}
plugin/themes/subway-seat-tunnel.json
{
  "name": "Subway Seat Tunnel",
  "base": "dark",
  "overrides": {
    "claude": "#EC7F31",
    "claudeShimmer": "#FF9D55",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#7F9BAE",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#9DB6C6",
    "text": "#E9D8B6",
    "inverseText": "#140D07",
    "inactive": "#AA9171",
    "inactiveShimmer": "#C0AA88",
    "subtle": "#745B45",
    "suggestion": "#F3BF45",
    "permission": "#F3BF45",
    "permissionShimmer": "#FFD36B",
    "remember": "#86AD95",
    "background": "#86AD95",
    "success": "#ADB956",
    "error": "#FF8373",
    "warning": "#F3BF45",
    "warningShimmer": "#FFD36B",
    "merged": "#F4A87E",
    "promptBorder": "#745B45",
    "promptBorderShimmer": "#917759",
    "planMode": "#86AD95",
    "autoAccept": "#F4A87E",
    "autoAcceptShimmer": "#F5BC97",
    "skill": "#F4A87E",
    "bashBorder": "#F3BF45",
    "ide": "#7F9BAE",
    "professionalBlue": "#7F9BAE",
    "chromeYellow": "#F3BF45",
    "fastMode": "#FF9D55",
    "fastModeShimmer": "#FFD36B",
    "effortUltra": "#FFD36B",
    "diffAdded": "#363318",
    "diffRemoved": "#492217",
    "diffAddedDimmed": "#292512",
    "diffRemovedDimmed": "#371A12",
    "diffAddedWord": "#484722",
    "diffRemovedWord": "#662D20",
    "userMessageBackground": "#302115",
    "userMessageBackgroundHover": "#3D2C1D",
    "bashMessageBackgroundColor": "#392914",
    "memoryBackgroundColor": "#302A1E",
    "composerSidebarBackground": "#1B120A",
    "selectionBg": "#4F3927",
    "rate_limit_fill": "#EC7F31",
    "rate_limit_empty": "#3D2C1D",
    "briefLabelYou": "#F3BF45",
    "briefLabelClaude": "#EC7F31",
    "clawd_body": "#EC7F31",
    "clawd_background": "#140D07",
    "red_FOR_SUBAGENTS_ONLY": "#FF8373",
    "blue_FOR_SUBAGENTS_ONLY": "#7F9BAE",
    "green_FOR_SUBAGENTS_ONLY": "#ADB956",
    "yellow_FOR_SUBAGENTS_ONLY": "#F3BF45",
    "purple_FOR_SUBAGENTS_ONLY": "#CE9C9C",
    "orange_FOR_SUBAGENTS_ONLY": "#EC7F31",
    "pink_FOR_SUBAGENTS_ONLY": "#F4A87E",
    "cyan_FOR_SUBAGENTS_ONLY": "#86AD95",
    "rainbow_red": "#E05C45",
    "rainbow_orange": "#EC7F31",
    "rainbow_yellow": "#F3BF45",
    "rainbow_green": "#ADB956",
    "rainbow_blue": "#86AD95",
    "rainbow_indigo": "#7F9BAE",
    "rainbow_violet": "#F4A87E",
    "rainbow_red_shimmer": "#FF8373",
    "rainbow_orange_shimmer": "#FF9D55",
    "rainbow_yellow_shimmer": "#FFD36B",
    "rainbow_green_shimmer": "#BFCB63",
    "rainbow_blue_shimmer": "#A5C9B0",
    "rainbow_indigo_shimmer": "#9DB6C6",
    "rainbow_violet_shimmer": "#F5BC97"
  }
}
themes/subway-seat-tunnel-terminal.jsonsave as ~/.claude/themes/subway-seat-tunnel-terminal.json
{
  "name": "Subway Seat Tunnel (terminal colors)",
  "base": "dark-ansi",
  "overrides": {
    "claude": "#EC7F31",
    "claudeShimmer": "#FF9D55",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#7F9BAE",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#9DB6C6",
    "text": "#E9D8B6",
    "inverseText": "#140D07",
    "inactive": "#AA9171",
    "inactiveShimmer": "#C0AA88",
    "subtle": "#745B45",
    "suggestion": "#F3BF45",
    "permission": "#F3BF45",
    "permissionShimmer": "#FFD36B",
    "remember": "#86AD95",
    "background": "#86AD95",
    "success": "#ADB956",
    "error": "#FF8373",
    "warning": "#F3BF45",
    "warningShimmer": "#FFD36B",
    "merged": "#F4A87E",
    "promptBorder": "#745B45",
    "promptBorderShimmer": "#917759",
    "planMode": "#86AD95",
    "autoAccept": "#F4A87E",
    "autoAcceptShimmer": "#F5BC97",
    "skill": "#F4A87E",
    "bashBorder": "#F3BF45",
    "ide": "#7F9BAE",
    "professionalBlue": "#7F9BAE",
    "chromeYellow": "#F3BF45",
    "fastMode": "#FF9D55",
    "fastModeShimmer": "#FFD36B",
    "effortUltra": "#FFD36B",
    "diffAdded": "ansi256(235)",
    "diffRemoved": "ansi256(52)",
    "diffAddedDimmed": "ansi256(234)",
    "diffRemovedDimmed": "ansi256(52)",
    "diffAddedWord": "ansi256(237)",
    "diffRemovedWord": "ansi256(88)",
    "userMessageBackground": "#302115",
    "userMessageBackgroundHover": "#3D2C1D",
    "bashMessageBackgroundColor": "#392914",
    "memoryBackgroundColor": "#302A1E",
    "composerSidebarBackground": "#1B120A",
    "selectionBg": "#4F3927",
    "rate_limit_fill": "#EC7F31",
    "rate_limit_empty": "#3D2C1D",
    "briefLabelYou": "#F3BF45",
    "briefLabelClaude": "#EC7F31",
    "clawd_body": "#EC7F31",
    "clawd_background": "#140D07",
    "red_FOR_SUBAGENTS_ONLY": "#FF8373",
    "blue_FOR_SUBAGENTS_ONLY": "#7F9BAE",
    "green_FOR_SUBAGENTS_ONLY": "#ADB956",
    "yellow_FOR_SUBAGENTS_ONLY": "#F3BF45",
    "purple_FOR_SUBAGENTS_ONLY": "#CE9C9C",
    "orange_FOR_SUBAGENTS_ONLY": "#EC7F31",
    "pink_FOR_SUBAGENTS_ONLY": "#F4A87E",
    "cyan_FOR_SUBAGENTS_ONLY": "#86AD95",
    "rainbow_red": "#E05C45",
    "rainbow_orange": "#EC7F31",
    "rainbow_yellow": "#F3BF45",
    "rainbow_green": "#ADB956",
    "rainbow_blue": "#86AD95",
    "rainbow_indigo": "#7F9BAE",
    "rainbow_violet": "#F4A87E",
    "rainbow_red_shimmer": "#FF8373",
    "rainbow_orange_shimmer": "#FF9D55",
    "rainbow_yellow_shimmer": "#FFD36B",
    "rainbow_green_shimmer": "#BFCB63",
    "rainbow_blue_shimmer": "#A5C9B0",
    "rainbow_indigo_shimmer": "#9DB6C6",
    "rainbow_violet_shimmer": "#F5BC97"
  }
}
plugin/themes/subway-seat-tunnel-terminal.json
{
  "name": "Subway Seat Tunnel (terminal colors)",
  "base": "dark-ansi",
  "overrides": {
    "claude": "#EC7F31",
    "claudeShimmer": "#FF9D55",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#7F9BAE",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#9DB6C6",
    "text": "#E9D8B6",
    "inverseText": "#140D07",
    "inactive": "#AA9171",
    "inactiveShimmer": "#C0AA88",
    "subtle": "#745B45",
    "suggestion": "#F3BF45",
    "permission": "#F3BF45",
    "permissionShimmer": "#FFD36B",
    "remember": "#86AD95",
    "background": "#86AD95",
    "success": "#ADB956",
    "error": "#FF8373",
    "warning": "#F3BF45",
    "warningShimmer": "#FFD36B",
    "merged": "#F4A87E",
    "promptBorder": "#745B45",
    "promptBorderShimmer": "#917759",
    "planMode": "#86AD95",
    "autoAccept": "#F4A87E",
    "autoAcceptShimmer": "#F5BC97",
    "skill": "#F4A87E",
    "bashBorder": "#F3BF45",
    "ide": "#7F9BAE",
    "professionalBlue": "#7F9BAE",
    "chromeYellow": "#F3BF45",
    "fastMode": "#FF9D55",
    "fastModeShimmer": "#FFD36B",
    "effortUltra": "#FFD36B",
    "diffAdded": "ansi256(235)",
    "diffRemoved": "ansi256(52)",
    "diffAddedDimmed": "ansi256(234)",
    "diffRemovedDimmed": "ansi256(52)",
    "diffAddedWord": "ansi256(237)",
    "diffRemovedWord": "ansi256(88)",
    "userMessageBackground": "#302115",
    "userMessageBackgroundHover": "#3D2C1D",
    "bashMessageBackgroundColor": "#392914",
    "memoryBackgroundColor": "#302A1E",
    "composerSidebarBackground": "#1B120A",
    "selectionBg": "#4F3927",
    "rate_limit_fill": "#EC7F31",
    "rate_limit_empty": "#3D2C1D",
    "briefLabelYou": "#F3BF45",
    "briefLabelClaude": "#EC7F31",
    "clawd_body": "#EC7F31",
    "clawd_background": "#140D07",
    "red_FOR_SUBAGENTS_ONLY": "#FF8373",
    "blue_FOR_SUBAGENTS_ONLY": "#7F9BAE",
    "green_FOR_SUBAGENTS_ONLY": "#ADB956",
    "yellow_FOR_SUBAGENTS_ONLY": "#F3BF45",
    "purple_FOR_SUBAGENTS_ONLY": "#CE9C9C",
    "orange_FOR_SUBAGENTS_ONLY": "#EC7F31",
    "pink_FOR_SUBAGENTS_ONLY": "#F4A87E",
    "cyan_FOR_SUBAGENTS_ONLY": "#86AD95",
    "rainbow_red": "#E05C45",
    "rainbow_orange": "#EC7F31",
    "rainbow_yellow": "#F3BF45",
    "rainbow_green": "#ADB956",
    "rainbow_blue": "#86AD95",
    "rainbow_indigo": "#7F9BAE",
    "rainbow_violet": "#F4A87E",
    "rainbow_red_shimmer": "#FF8373",
    "rainbow_orange_shimmer": "#FF9D55",
    "rainbow_yellow_shimmer": "#FFD36B",
    "rainbow_green_shimmer": "#BFCB63",
    "rainbow_blue_shimmer": "#A5C9B0",
    "rainbow_indigo_shimmer": "#9DB6C6",
    "rainbow_violet_shimmer": "#F5BC97"
  }
}
plugin/settings/subway-seat-tunnel.jsonmerged into ~/.claude/settings.json by /subway-seat:setup
{
  "theme": "custom:subway-seat:subway-seat-tunnel",
  "statusLine": {
    "type": "command",
    "command": "${CLAUDE_PLUGIN_DATA}/subway-seat-statusline",
    "padding": 0,
    "hideVimModeIndicator": true
  },
  "spinnerVerbs": {
    "mode": "replace",
    "verbs": [
      "Reading the Vignelli map",
      "Riding the local",
      "Running express",
      "Transferring",
      "Holding the doors",
      "Watching the gap",
      "Waiting on the platform",
      "Rolling uptown",
      "Rolling downtown",
      "Changing at 14th Street",
      "Dropping a token",
      "Grabbing the pole",
      "Finding a seat",
      "Sinking into the shag",
      "Flipping the record",
      "Warming up the hi-fi",
      "Tuning the 8-track",
      "Adjusting the rabbit ears",
      "Watering the spider plant",
      "Percolating",
      "Taking the A train",
      "Keeping it groovy",
      "Easing on down the road",
      "Digging it",
      "Grooving",
      "Punching a transfer",
      "Checking the strip map",
      "Spinning the lazy Susan",
      "Knotting the macrame",
      "Lava-lamping"
    ]
  },
  "spinnerTipsOverride": {
    "tipsFile": "${CLAUDE_PLUGIN_DATA}/tips.json",
    "label": "Next stop"
  }
}
themes/subway-seat-enamel.jsonsave as ~/.claude/themes/subway-seat-enamel.json
{
  "name": "Subway Seat Enamel",
  "base": "light",
  "overrides": {
    "claude": "#A04800",
    "claudeShimmer": "#BA4D0A",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#3F6480",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#517791",
    "text": "#3E2C1E",
    "inverseText": "#F8EFDF",
    "inactive": "#735C44",
    "inactiveShimmer": "#8C7254",
    "subtle": "#BAA380",
    "suggestion": "#976608",
    "permission": "#976608",
    "permissionShimmer": "#A9720A",
    "remember": "#3E7157",
    "background": "#3E7157",
    "success": "#66740F",
    "error": "#BF4233",
    "warning": "#976608",
    "warningShimmer": "#A9720A",
    "merged": "#843811",
    "promptBorder": "#A58D6D",
    "promptBorderShimmer": "#BAA380",
    "planMode": "#3E7157",
    "autoAccept": "#843811",
    "autoAcceptShimmer": "#9B5D3A",
    "skill": "#843811",
    "bashBorder": "#976608",
    "ide": "#3F6480",
    "professionalBlue": "#3F6480",
    "chromeYellow": "#976608",
    "fastMode": "#BA4D0A",
    "fastModeShimmer": "#A9720A",
    "effortUltra": "#A9720A",
    "diffAdded": "#D7DBC1",
    "diffRemoved": "#EBD3D1",
    "diffAddedDimmed": "#E7E9D9",
    "diffRemovedDimmed": "#F3E5E3",
    "diffAddedWord": "#C2C79F",
    "diffRemovedWord": "#DEB9B5",
    "userMessageBackground": "#EEE4D0",
    "userMessageBackgroundHover": "#E4D8C0",
    "bashMessageBackgroundColor": "#EEE1CA",
    "memoryBackgroundColor": "#E2E0CF",
    "composerSidebarBackground": "#EEE4D0",
    "selectionBg": "#CBB898",
    "rate_limit_fill": "#A04800",
    "rate_limit_empty": "#CBB898",
    "briefLabelYou": "#976608",
    "briefLabelClaude": "#A04800",
    "clawd_body": "#A04800",
    "clawd_background": "#2A1D13",
    "red_FOR_SUBAGENTS_ONLY": "#BF4233",
    "blue_FOR_SUBAGENTS_ONLY": "#3F6480",
    "green_FOR_SUBAGENTS_ONLY": "#66740F",
    "yellow_FOR_SUBAGENTS_ONLY": "#976608",
    "purple_FOR_SUBAGENTS_ONLY": "#885C62",
    "orange_FOR_SUBAGENTS_ONLY": "#A04800",
    "pink_FOR_SUBAGENTS_ONLY": "#843811",
    "cyan_FOR_SUBAGENTS_ONLY": "#3E7157",
    "rainbow_red": "#992418",
    "rainbow_orange": "#A04800",
    "rainbow_yellow": "#976608",
    "rainbow_green": "#66740F",
    "rainbow_blue": "#3E7157",
    "rainbow_indigo": "#3F6480",
    "rainbow_violet": "#843811",
    "rainbow_red_shimmer": "#BF4233",
    "rainbow_orange_shimmer": "#BA4D0A",
    "rainbow_yellow_shimmer": "#A9720A",
    "rainbow_green_shimmer": "#697813",
    "rainbow_blue_shimmer": "#4C8367",
    "rainbow_indigo_shimmer": "#517791",
    "rainbow_violet_shimmer": "#9B5D3A"
  }
}
plugin/themes/subway-seat-enamel.json
{
  "name": "Subway Seat Enamel",
  "base": "light",
  "overrides": {
    "claude": "#A04800",
    "claudeShimmer": "#BA4D0A",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#3F6480",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#517791",
    "text": "#3E2C1E",
    "inverseText": "#F8EFDF",
    "inactive": "#735C44",
    "inactiveShimmer": "#8C7254",
    "subtle": "#BAA380",
    "suggestion": "#976608",
    "permission": "#976608",
    "permissionShimmer": "#A9720A",
    "remember": "#3E7157",
    "background": "#3E7157",
    "success": "#66740F",
    "error": "#BF4233",
    "warning": "#976608",
    "warningShimmer": "#A9720A",
    "merged": "#843811",
    "promptBorder": "#A58D6D",
    "promptBorderShimmer": "#BAA380",
    "planMode": "#3E7157",
    "autoAccept": "#843811",
    "autoAcceptShimmer": "#9B5D3A",
    "skill": "#843811",
    "bashBorder": "#976608",
    "ide": "#3F6480",
    "professionalBlue": "#3F6480",
    "chromeYellow": "#976608",
    "fastMode": "#BA4D0A",
    "fastModeShimmer": "#A9720A",
    "effortUltra": "#A9720A",
    "diffAdded": "#D7DBC1",
    "diffRemoved": "#EBD3D1",
    "diffAddedDimmed": "#E7E9D9",
    "diffRemovedDimmed": "#F3E5E3",
    "diffAddedWord": "#C2C79F",
    "diffRemovedWord": "#DEB9B5",
    "userMessageBackground": "#EEE4D0",
    "userMessageBackgroundHover": "#E4D8C0",
    "bashMessageBackgroundColor": "#EEE1CA",
    "memoryBackgroundColor": "#E2E0CF",
    "composerSidebarBackground": "#EEE4D0",
    "selectionBg": "#CBB898",
    "rate_limit_fill": "#A04800",
    "rate_limit_empty": "#CBB898",
    "briefLabelYou": "#976608",
    "briefLabelClaude": "#A04800",
    "clawd_body": "#A04800",
    "clawd_background": "#2A1D13",
    "red_FOR_SUBAGENTS_ONLY": "#BF4233",
    "blue_FOR_SUBAGENTS_ONLY": "#3F6480",
    "green_FOR_SUBAGENTS_ONLY": "#66740F",
    "yellow_FOR_SUBAGENTS_ONLY": "#976608",
    "purple_FOR_SUBAGENTS_ONLY": "#885C62",
    "orange_FOR_SUBAGENTS_ONLY": "#A04800",
    "pink_FOR_SUBAGENTS_ONLY": "#843811",
    "cyan_FOR_SUBAGENTS_ONLY": "#3E7157",
    "rainbow_red": "#992418",
    "rainbow_orange": "#A04800",
    "rainbow_yellow": "#976608",
    "rainbow_green": "#66740F",
    "rainbow_blue": "#3E7157",
    "rainbow_indigo": "#3F6480",
    "rainbow_violet": "#843811",
    "rainbow_red_shimmer": "#BF4233",
    "rainbow_orange_shimmer": "#BA4D0A",
    "rainbow_yellow_shimmer": "#A9720A",
    "rainbow_green_shimmer": "#697813",
    "rainbow_blue_shimmer": "#4C8367",
    "rainbow_indigo_shimmer": "#517791",
    "rainbow_violet_shimmer": "#9B5D3A"
  }
}
themes/subway-seat-enamel-terminal.jsonsave as ~/.claude/themes/subway-seat-enamel-terminal.json
{
  "name": "Subway Seat Enamel (terminal colors)",
  "base": "light-ansi",
  "overrides": {
    "claude": "#A04800",
    "claudeShimmer": "#BA4D0A",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#3F6480",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#517791",
    "text": "#3E2C1E",
    "inverseText": "#F8EFDF",
    "inactive": "#735C44",
    "inactiveShimmer": "#8C7254",
    "subtle": "#BAA380",
    "suggestion": "#976608",
    "permission": "#976608",
    "permissionShimmer": "#A9720A",
    "remember": "#3E7157",
    "background": "#3E7157",
    "success": "#66740F",
    "error": "#BF4233",
    "warning": "#976608",
    "warningShimmer": "#A9720A",
    "merged": "#843811",
    "promptBorder": "#A58D6D",
    "promptBorderShimmer": "#BAA380",
    "planMode": "#3E7157",
    "autoAccept": "#843811",
    "autoAcceptShimmer": "#9B5D3A",
    "skill": "#843811",
    "bashBorder": "#976608",
    "ide": "#3F6480",
    "professionalBlue": "#3F6480",
    "chromeYellow": "#976608",
    "fastMode": "#BA4D0A",
    "fastModeShimmer": "#A9720A",
    "effortUltra": "#A9720A",
    "diffAdded": "ansi256(193)",
    "diffRemoved": "ansi256(224)",
    "diffAddedDimmed": "ansi256(230)",
    "diffRemovedDimmed": "ansi256(224)",
    "diffAddedWord": "ansi256(187)",
    "diffRemovedWord": "ansi256(181)",
    "userMessageBackground": "#EEE4D0",
    "userMessageBackgroundHover": "#E4D8C0",
    "bashMessageBackgroundColor": "#EEE1CA",
    "memoryBackgroundColor": "#E2E0CF",
    "composerSidebarBackground": "#EEE4D0",
    "selectionBg": "#CBB898",
    "rate_limit_fill": "#A04800",
    "rate_limit_empty": "#CBB898",
    "briefLabelYou": "#976608",
    "briefLabelClaude": "#A04800",
    "clawd_body": "#A04800",
    "clawd_background": "#2A1D13",
    "red_FOR_SUBAGENTS_ONLY": "#BF4233",
    "blue_FOR_SUBAGENTS_ONLY": "#3F6480",
    "green_FOR_SUBAGENTS_ONLY": "#66740F",
    "yellow_FOR_SUBAGENTS_ONLY": "#976608",
    "purple_FOR_SUBAGENTS_ONLY": "#885C62",
    "orange_FOR_SUBAGENTS_ONLY": "#A04800",
    "pink_FOR_SUBAGENTS_ONLY": "#843811",
    "cyan_FOR_SUBAGENTS_ONLY": "#3E7157",
    "rainbow_red": "#992418",
    "rainbow_orange": "#A04800",
    "rainbow_yellow": "#976608",
    "rainbow_green": "#66740F",
    "rainbow_blue": "#3E7157",
    "rainbow_indigo": "#3F6480",
    "rainbow_violet": "#843811",
    "rainbow_red_shimmer": "#BF4233",
    "rainbow_orange_shimmer": "#BA4D0A",
    "rainbow_yellow_shimmer": "#A9720A",
    "rainbow_green_shimmer": "#697813",
    "rainbow_blue_shimmer": "#4C8367",
    "rainbow_indigo_shimmer": "#517791",
    "rainbow_violet_shimmer": "#9B5D3A"
  }
}
plugin/themes/subway-seat-enamel-terminal.json
{
  "name": "Subway Seat Enamel (terminal colors)",
  "base": "light-ansi",
  "overrides": {
    "claude": "#A04800",
    "claudeShimmer": "#BA4D0A",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#3F6480",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#517791",
    "text": "#3E2C1E",
    "inverseText": "#F8EFDF",
    "inactive": "#735C44",
    "inactiveShimmer": "#8C7254",
    "subtle": "#BAA380",
    "suggestion": "#976608",
    "permission": "#976608",
    "permissionShimmer": "#A9720A",
    "remember": "#3E7157",
    "background": "#3E7157",
    "success": "#66740F",
    "error": "#BF4233",
    "warning": "#976608",
    "warningShimmer": "#A9720A",
    "merged": "#843811",
    "promptBorder": "#A58D6D",
    "promptBorderShimmer": "#BAA380",
    "planMode": "#3E7157",
    "autoAccept": "#843811",
    "autoAcceptShimmer": "#9B5D3A",
    "skill": "#843811",
    "bashBorder": "#976608",
    "ide": "#3F6480",
    "professionalBlue": "#3F6480",
    "chromeYellow": "#976608",
    "fastMode": "#BA4D0A",
    "fastModeShimmer": "#A9720A",
    "effortUltra": "#A9720A",
    "diffAdded": "ansi256(193)",
    "diffRemoved": "ansi256(224)",
    "diffAddedDimmed": "ansi256(230)",
    "diffRemovedDimmed": "ansi256(224)",
    "diffAddedWord": "ansi256(187)",
    "diffRemovedWord": "ansi256(181)",
    "userMessageBackground": "#EEE4D0",
    "userMessageBackgroundHover": "#E4D8C0",
    "bashMessageBackgroundColor": "#EEE1CA",
    "memoryBackgroundColor": "#E2E0CF",
    "composerSidebarBackground": "#EEE4D0",
    "selectionBg": "#CBB898",
    "rate_limit_fill": "#A04800",
    "rate_limit_empty": "#CBB898",
    "briefLabelYou": "#976608",
    "briefLabelClaude": "#A04800",
    "clawd_body": "#A04800",
    "clawd_background": "#2A1D13",
    "red_FOR_SUBAGENTS_ONLY": "#BF4233",
    "blue_FOR_SUBAGENTS_ONLY": "#3F6480",
    "green_FOR_SUBAGENTS_ONLY": "#66740F",
    "yellow_FOR_SUBAGENTS_ONLY": "#976608",
    "purple_FOR_SUBAGENTS_ONLY": "#885C62",
    "orange_FOR_SUBAGENTS_ONLY": "#A04800",
    "pink_FOR_SUBAGENTS_ONLY": "#843811",
    "cyan_FOR_SUBAGENTS_ONLY": "#3E7157",
    "rainbow_red": "#992418",
    "rainbow_orange": "#A04800",
    "rainbow_yellow": "#976608",
    "rainbow_green": "#66740F",
    "rainbow_blue": "#3E7157",
    "rainbow_indigo": "#3F6480",
    "rainbow_violet": "#843811",
    "rainbow_red_shimmer": "#BF4233",
    "rainbow_orange_shimmer": "#BA4D0A",
    "rainbow_yellow_shimmer": "#A9720A",
    "rainbow_green_shimmer": "#697813",
    "rainbow_blue_shimmer": "#4C8367",
    "rainbow_indigo_shimmer": "#517791",
    "rainbow_violet_shimmer": "#9B5D3A"
  }
}
plugin/settings/subway-seat-enamel.jsonmerged into ~/.claude/settings.json by /subway-seat:setup
{
  "theme": "custom:subway-seat:subway-seat-enamel",
  "statusLine": {
    "type": "command",
    "command": "${CLAUDE_PLUGIN_DATA}/subway-seat-statusline",
    "padding": 0,
    "hideVimModeIndicator": true
  },
  "spinnerVerbs": {
    "mode": "replace",
    "verbs": [
      "Reading the Vignelli map",
      "Riding the local",
      "Running express",
      "Transferring",
      "Holding the doors",
      "Watching the gap",
      "Waiting on the platform",
      "Rolling uptown",
      "Rolling downtown",
      "Changing at 14th Street",
      "Dropping a token",
      "Grabbing the pole",
      "Finding a seat",
      "Sinking into the shag",
      "Flipping the record",
      "Warming up the hi-fi",
      "Tuning the 8-track",
      "Adjusting the rabbit ears",
      "Watering the spider plant",
      "Percolating",
      "Taking the A train",
      "Keeping it groovy",
      "Easing on down the road",
      "Digging it",
      "Grooving",
      "Punching a transfer",
      "Checking the strip map",
      "Spinning the lazy Susan",
      "Knotting the macrame",
      "Lava-lamping"
    ]
  },
  "spinnerTipsOverride": {
    "tipsFile": "${CLAUDE_PLUGIN_DATA}/tips.json",
    "label": "Next stop"
  }
}
themes/london-moquette.jsonsave as ~/.claude/themes/london-moquette.json
{
  "name": "London Moquette",
  "base": "dark",
  "overrides": {
    "claude": "#DE8946",
    "claudeShimmer": "#E5AA7F",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#7595DA",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#8BB0FF",
    "text": "#D8DEEA",
    "inverseText": "#121826",
    "inactive": "#8F9AB0",
    "inactiveShimmer": "#A9B2C4",
    "subtle": "#576685",
    "suggestion": "#F2C03F",
    "permission": "#F2C03F",
    "permissionShimmer": "#FFD36C",
    "remember": "#54B4B5",
    "background": "#54B4B5",
    "success": "#77C581",
    "error": "#FE8474",
    "warning": "#F2C03F",
    "warningShimmer": "#FFD36C",
    "merged": "#AE9EDC",
    "promptBorder": "#576685",
    "promptBorderShimmer": "#73819C",
    "planMode": "#54B4B5",
    "autoAccept": "#AE9EDC",
    "autoAcceptShimmer": "#C0B6E4",
    "skill": "#AE9EDC",
    "bashBorder": "#F2C03F",
    "ide": "#7595DA",
    "professionalBlue": "#7595DA",
    "chromeYellow": "#F2C03F",
    "fastMode": "#E5AA7F",
    "fastModeShimmer": "#FFD36C",
    "effortUltra": "#FFD36C",
    "diffAdded": "#283E3A",
    "diffRemoved": "#462B31",
    "diffAddedDimmed": "#203033",
    "diffRemovedDimmed": "#34242D",
    "diffAddedWord": "#345345",
    "diffRemovedWord": "#623538",
    "userMessageBackground": "#263451",
    "userMessageBackgroundHover": "#303F61",
    "bashMessageBackgroundColor": "#333841",
    "memoryBackgroundColor": "#243A4F",
    "composerSidebarBackground": "#172032",
    "selectionBg": "#3D4F72",
    "rate_limit_fill": "#DE8946",
    "rate_limit_empty": "#303F61",
    "briefLabelYou": "#F2C03F",
    "briefLabelClaude": "#DE8946",
    "clawd_body": "#DE8946",
    "clawd_background": "#121826",
    "red_FOR_SUBAGENTS_ONLY": "#FE8474",
    "blue_FOR_SUBAGENTS_ONLY": "#7595DA",
    "green_FOR_SUBAGENTS_ONLY": "#77C581",
    "yellow_FOR_SUBAGENTS_ONLY": "#F2C03F",
    "purple_FOR_SUBAGENTS_ONLY": "#C49ABA",
    "orange_FOR_SUBAGENTS_ONLY": "#DE8946",
    "pink_FOR_SUBAGENTS_ONLY": "#AE9EDC",
    "cyan_FOR_SUBAGENTS_ONLY": "#54B4B5",
    "rainbow_red": "#DB6052",
    "rainbow_orange": "#DE8946",
    "rainbow_yellow": "#F2C03F",
    "rainbow_green": "#77C581",
    "rainbow_blue": "#54B4B5",
    "rainbow_indigo": "#7595DA",
    "rainbow_violet": "#AE9EDC",
    "rainbow_red_shimmer": "#FE8474",
    "rainbow_orange_shimmer": "#E5AA7F",
    "rainbow_yellow_shimmer": "#FFD36C",
    "rainbow_green_shimmer": "#9AD2A0",
    "rainbow_blue_shimmer": "#72D1D3",
    "rainbow_indigo_shimmer": "#8BB0FF",
    "rainbow_violet_shimmer": "#C0B6E4"
  }
}
plugin/themes/london-moquette.json
{
  "name": "London Moquette",
  "base": "dark",
  "overrides": {
    "claude": "#DE8946",
    "claudeShimmer": "#E5AA7F",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#7595DA",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#8BB0FF",
    "text": "#D8DEEA",
    "inverseText": "#121826",
    "inactive": "#8F9AB0",
    "inactiveShimmer": "#A9B2C4",
    "subtle": "#576685",
    "suggestion": "#F2C03F",
    "permission": "#F2C03F",
    "permissionShimmer": "#FFD36C",
    "remember": "#54B4B5",
    "background": "#54B4B5",
    "success": "#77C581",
    "error": "#FE8474",
    "warning": "#F2C03F",
    "warningShimmer": "#FFD36C",
    "merged": "#AE9EDC",
    "promptBorder": "#576685",
    "promptBorderShimmer": "#73819C",
    "planMode": "#54B4B5",
    "autoAccept": "#AE9EDC",
    "autoAcceptShimmer": "#C0B6E4",
    "skill": "#AE9EDC",
    "bashBorder": "#F2C03F",
    "ide": "#7595DA",
    "professionalBlue": "#7595DA",
    "chromeYellow": "#F2C03F",
    "fastMode": "#E5AA7F",
    "fastModeShimmer": "#FFD36C",
    "effortUltra": "#FFD36C",
    "diffAdded": "#283E3A",
    "diffRemoved": "#462B31",
    "diffAddedDimmed": "#203033",
    "diffRemovedDimmed": "#34242D",
    "diffAddedWord": "#345345",
    "diffRemovedWord": "#623538",
    "userMessageBackground": "#263451",
    "userMessageBackgroundHover": "#303F61",
    "bashMessageBackgroundColor": "#333841",
    "memoryBackgroundColor": "#243A4F",
    "composerSidebarBackground": "#172032",
    "selectionBg": "#3D4F72",
    "rate_limit_fill": "#DE8946",
    "rate_limit_empty": "#303F61",
    "briefLabelYou": "#F2C03F",
    "briefLabelClaude": "#DE8946",
    "clawd_body": "#DE8946",
    "clawd_background": "#121826",
    "red_FOR_SUBAGENTS_ONLY": "#FE8474",
    "blue_FOR_SUBAGENTS_ONLY": "#7595DA",
    "green_FOR_SUBAGENTS_ONLY": "#77C581",
    "yellow_FOR_SUBAGENTS_ONLY": "#F2C03F",
    "purple_FOR_SUBAGENTS_ONLY": "#C49ABA",
    "orange_FOR_SUBAGENTS_ONLY": "#DE8946",
    "pink_FOR_SUBAGENTS_ONLY": "#AE9EDC",
    "cyan_FOR_SUBAGENTS_ONLY": "#54B4B5",
    "rainbow_red": "#DB6052",
    "rainbow_orange": "#DE8946",
    "rainbow_yellow": "#F2C03F",
    "rainbow_green": "#77C581",
    "rainbow_blue": "#54B4B5",
    "rainbow_indigo": "#7595DA",
    "rainbow_violet": "#AE9EDC",
    "rainbow_red_shimmer": "#FE8474",
    "rainbow_orange_shimmer": "#E5AA7F",
    "rainbow_yellow_shimmer": "#FFD36C",
    "rainbow_green_shimmer": "#9AD2A0",
    "rainbow_blue_shimmer": "#72D1D3",
    "rainbow_indigo_shimmer": "#8BB0FF",
    "rainbow_violet_shimmer": "#C0B6E4"
  }
}
themes/london-moquette-terminal.jsonsave as ~/.claude/themes/london-moquette-terminal.json
{
  "name": "London Moquette (terminal colors)",
  "base": "dark-ansi",
  "overrides": {
    "claude": "#DE8946",
    "claudeShimmer": "#E5AA7F",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#7595DA",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#8BB0FF",
    "text": "#D8DEEA",
    "inverseText": "#121826",
    "inactive": "#8F9AB0",
    "inactiveShimmer": "#A9B2C4",
    "subtle": "#576685",
    "suggestion": "#F2C03F",
    "permission": "#F2C03F",
    "permissionShimmer": "#FFD36C",
    "remember": "#54B4B5",
    "background": "#54B4B5",
    "success": "#77C581",
    "error": "#FE8474",
    "warning": "#F2C03F",
    "warningShimmer": "#FFD36C",
    "merged": "#AE9EDC",
    "promptBorder": "#576685",
    "promptBorderShimmer": "#73819C",
    "planMode": "#54B4B5",
    "autoAccept": "#AE9EDC",
    "autoAcceptShimmer": "#C0B6E4",
    "skill": "#AE9EDC",
    "bashBorder": "#F2C03F",
    "ide": "#7595DA",
    "professionalBlue": "#7595DA",
    "chromeYellow": "#F2C03F",
    "fastMode": "#E5AA7F",
    "fastModeShimmer": "#FFD36C",
    "effortUltra": "#FFD36C",
    "diffAdded": "ansi256(237)",
    "diffRemoved": "ansi256(52)",
    "diffAddedDimmed": "ansi256(236)",
    "diffRemovedDimmed": "ansi256(52)",
    "diffAddedWord": "ansi256(22)",
    "diffRemovedWord": "ansi256(89)",
    "userMessageBackground": "#263451",
    "userMessageBackgroundHover": "#303F61",
    "bashMessageBackgroundColor": "#333841",
    "memoryBackgroundColor": "#243A4F",
    "composerSidebarBackground": "#172032",
    "selectionBg": "#3D4F72",
    "rate_limit_fill": "#DE8946",
    "rate_limit_empty": "#303F61",
    "briefLabelYou": "#F2C03F",
    "briefLabelClaude": "#DE8946",
    "clawd_body": "#DE8946",
    "clawd_background": "#121826",
    "red_FOR_SUBAGENTS_ONLY": "#FE8474",
    "blue_FOR_SUBAGENTS_ONLY": "#7595DA",
    "green_FOR_SUBAGENTS_ONLY": "#77C581",
    "yellow_FOR_SUBAGENTS_ONLY": "#F2C03F",
    "purple_FOR_SUBAGENTS_ONLY": "#C49ABA",
    "orange_FOR_SUBAGENTS_ONLY": "#DE8946",
    "pink_FOR_SUBAGENTS_ONLY": "#AE9EDC",
    "cyan_FOR_SUBAGENTS_ONLY": "#54B4B5",
    "rainbow_red": "#DB6052",
    "rainbow_orange": "#DE8946",
    "rainbow_yellow": "#F2C03F",
    "rainbow_green": "#77C581",
    "rainbow_blue": "#54B4B5",
    "rainbow_indigo": "#7595DA",
    "rainbow_violet": "#AE9EDC",
    "rainbow_red_shimmer": "#FE8474",
    "rainbow_orange_shimmer": "#E5AA7F",
    "rainbow_yellow_shimmer": "#FFD36C",
    "rainbow_green_shimmer": "#9AD2A0",
    "rainbow_blue_shimmer": "#72D1D3",
    "rainbow_indigo_shimmer": "#8BB0FF",
    "rainbow_violet_shimmer": "#C0B6E4"
  }
}
plugin/themes/london-moquette-terminal.json
{
  "name": "London Moquette (terminal colors)",
  "base": "dark-ansi",
  "overrides": {
    "claude": "#DE8946",
    "claudeShimmer": "#E5AA7F",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#7595DA",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#8BB0FF",
    "text": "#D8DEEA",
    "inverseText": "#121826",
    "inactive": "#8F9AB0",
    "inactiveShimmer": "#A9B2C4",
    "subtle": "#576685",
    "suggestion": "#F2C03F",
    "permission": "#F2C03F",
    "permissionShimmer": "#FFD36C",
    "remember": "#54B4B5",
    "background": "#54B4B5",
    "success": "#77C581",
    "error": "#FE8474",
    "warning": "#F2C03F",
    "warningShimmer": "#FFD36C",
    "merged": "#AE9EDC",
    "promptBorder": "#576685",
    "promptBorderShimmer": "#73819C",
    "planMode": "#54B4B5",
    "autoAccept": "#AE9EDC",
    "autoAcceptShimmer": "#C0B6E4",
    "skill": "#AE9EDC",
    "bashBorder": "#F2C03F",
    "ide": "#7595DA",
    "professionalBlue": "#7595DA",
    "chromeYellow": "#F2C03F",
    "fastMode": "#E5AA7F",
    "fastModeShimmer": "#FFD36C",
    "effortUltra": "#FFD36C",
    "diffAdded": "ansi256(237)",
    "diffRemoved": "ansi256(52)",
    "diffAddedDimmed": "ansi256(236)",
    "diffRemovedDimmed": "ansi256(52)",
    "diffAddedWord": "ansi256(22)",
    "diffRemovedWord": "ansi256(89)",
    "userMessageBackground": "#263451",
    "userMessageBackgroundHover": "#303F61",
    "bashMessageBackgroundColor": "#333841",
    "memoryBackgroundColor": "#243A4F",
    "composerSidebarBackground": "#172032",
    "selectionBg": "#3D4F72",
    "rate_limit_fill": "#DE8946",
    "rate_limit_empty": "#303F61",
    "briefLabelYou": "#F2C03F",
    "briefLabelClaude": "#DE8946",
    "clawd_body": "#DE8946",
    "clawd_background": "#121826",
    "red_FOR_SUBAGENTS_ONLY": "#FE8474",
    "blue_FOR_SUBAGENTS_ONLY": "#7595DA",
    "green_FOR_SUBAGENTS_ONLY": "#77C581",
    "yellow_FOR_SUBAGENTS_ONLY": "#F2C03F",
    "purple_FOR_SUBAGENTS_ONLY": "#C49ABA",
    "orange_FOR_SUBAGENTS_ONLY": "#DE8946",
    "pink_FOR_SUBAGENTS_ONLY": "#AE9EDC",
    "cyan_FOR_SUBAGENTS_ONLY": "#54B4B5",
    "rainbow_red": "#DB6052",
    "rainbow_orange": "#DE8946",
    "rainbow_yellow": "#F2C03F",
    "rainbow_green": "#77C581",
    "rainbow_blue": "#54B4B5",
    "rainbow_indigo": "#7595DA",
    "rainbow_violet": "#AE9EDC",
    "rainbow_red_shimmer": "#FE8474",
    "rainbow_orange_shimmer": "#E5AA7F",
    "rainbow_yellow_shimmer": "#FFD36C",
    "rainbow_green_shimmer": "#9AD2A0",
    "rainbow_blue_shimmer": "#72D1D3",
    "rainbow_indigo_shimmer": "#8BB0FF",
    "rainbow_violet_shimmer": "#C0B6E4"
  }
}
plugin/settings/london-moquette.jsonmerged into ~/.claude/settings.json by /subway-seat:setup
{
  "theme": "custom:subway-seat:london-moquette",
  "statusLine": {
    "type": "command",
    "command": "${CLAUDE_PLUGIN_DATA}/subway-seat-statusline",
    "padding": 0,
    "hideVimModeIndicator": true
  },
  "spinnerVerbs": {
    "mode": "replace",
    "verbs": [
      "Reading the diagram",
      "Minding the gap",
      "Standing clear of the doors",
      "Changing at Baker Street",
      "Riding the deep level",
      "Touching in",
      "Touching out",
      "Checking the board",
      "Standing on the right",
      "Counting the stops",
      "Following the roundel",
      "Waiting at a red signal",
      "Letting them off first",
      "Finding a seat on the moquette",
      "Going southbound",
      "Going northbound",
      "Running to timetable",
      "Watching the countdown",
      "Alighting here",
      "Changing for the Circle",
      "Taking the long escalator",
      "Sheltering from the drizzle",
      "Queueing",
      "Brewing up",
      "Waiting for the next one",
      "Passing Aldgate",
      "Reading over a shoulder",
      "Consulting the map",
      "Holding on",
      "Terminating here"
    ]
  },
  "spinnerTipsOverride": {
    "tipsFile": "${CLAUDE_PLUGIN_DATA}/tips.json",
    "label": "Next stop"
  }
}
themes/london-deep-level.jsonsave as ~/.claude/themes/london-deep-level.json
{
  "name": "London Deep Level",
  "base": "dark",
  "overrides": {
    "claude": "#DE8946",
    "claudeShimmer": "#E5AA7F",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#7595DA",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#8BB0FF",
    "text": "#D4DAE7",
    "inverseText": "#0A0E18",
    "inactive": "#8B96AC",
    "inactiveShimmer": "#A5AEC0",
    "subtle": "#53617D",
    "suggestion": "#F2C03F",
    "permission": "#F2C03F",
    "permissionShimmer": "#FFD36C",
    "remember": "#54B4B5",
    "background": "#54B4B5",
    "success": "#77C581",
    "error": "#FE8474",
    "warning": "#F2C03F",
    "warningShimmer": "#FFD36C",
    "merged": "#AE9EDC",
    "promptBorder": "#53617D",
    "promptBorderShimmer": "#6F7C97",
    "planMode": "#54B4B5",
    "autoAccept": "#AE9EDC",
    "autoAcceptShimmer": "#BFB5E3",
    "skill": "#AE9EDC",
    "bashBorder": "#F2C03F",
    "ide": "#7595DA",
    "professionalBlue": "#7595DA",
    "chromeYellow": "#F2C03F",
    "fastMode": "#E5AA7F",
    "fastModeShimmer": "#FFD36C",
    "effortUltra": "#FFD36C",
    "diffAdded": "#22362F",
    "diffRemoved": "#402327",
    "diffAddedDimmed": "#192827",
    "diffRemovedDimmed": "#2E1C22",
    "diffAddedWord": "#2F4C3C",
    "diffRemovedWord": "#5E2F2F",
    "userMessageBackground": "#1A243A",
    "userMessageBackgroundHover": "#232F49",
    "bashMessageBackgroundColor": "#282B2F",
    "memoryBackgroundColor": "#1A2C3D",
    "composerSidebarBackground": "#0D1421",
    "selectionBg": "#303E5B",
    "rate_limit_fill": "#DE8946",
    "rate_limit_empty": "#232F49",
    "briefLabelYou": "#F2C03F",
    "briefLabelClaude": "#DE8946",
    "clawd_body": "#DE8946",
    "clawd_background": "#0A0E18",
    "red_FOR_SUBAGENTS_ONLY": "#FE8474",
    "blue_FOR_SUBAGENTS_ONLY": "#7595DA",
    "green_FOR_SUBAGENTS_ONLY": "#77C581",
    "yellow_FOR_SUBAGENTS_ONLY": "#F2C03F",
    "purple_FOR_SUBAGENTS_ONLY": "#C49ABA",
    "orange_FOR_SUBAGENTS_ONLY": "#DE8946",
    "pink_FOR_SUBAGENTS_ONLY": "#AE9EDC",
    "cyan_FOR_SUBAGENTS_ONLY": "#54B4B5",
    "rainbow_red": "#DB6052",
    "rainbow_orange": "#DE8946",
    "rainbow_yellow": "#F2C03F",
    "rainbow_green": "#77C581",
    "rainbow_blue": "#54B4B5",
    "rainbow_indigo": "#7595DA",
    "rainbow_violet": "#AE9EDC",
    "rainbow_red_shimmer": "#FE8474",
    "rainbow_orange_shimmer": "#E5AA7F",
    "rainbow_yellow_shimmer": "#FFD36C",
    "rainbow_green_shimmer": "#9AD2A0",
    "rainbow_blue_shimmer": "#72D1D3",
    "rainbow_indigo_shimmer": "#8BB0FF",
    "rainbow_violet_shimmer": "#BFB5E3"
  }
}
plugin/themes/london-deep-level.json
{
  "name": "London Deep Level",
  "base": "dark",
  "overrides": {
    "claude": "#DE8946",
    "claudeShimmer": "#E5AA7F",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#7595DA",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#8BB0FF",
    "text": "#D4DAE7",
    "inverseText": "#0A0E18",
    "inactive": "#8B96AC",
    "inactiveShimmer": "#A5AEC0",
    "subtle": "#53617D",
    "suggestion": "#F2C03F",
    "permission": "#F2C03F",
    "permissionShimmer": "#FFD36C",
    "remember": "#54B4B5",
    "background": "#54B4B5",
    "success": "#77C581",
    "error": "#FE8474",
    "warning": "#F2C03F",
    "warningShimmer": "#FFD36C",
    "merged": "#AE9EDC",
    "promptBorder": "#53617D",
    "promptBorderShimmer": "#6F7C97",
    "planMode": "#54B4B5",
    "autoAccept": "#AE9EDC",
    "autoAcceptShimmer": "#BFB5E3",
    "skill": "#AE9EDC",
    "bashBorder": "#F2C03F",
    "ide": "#7595DA",
    "professionalBlue": "#7595DA",
    "chromeYellow": "#F2C03F",
    "fastMode": "#E5AA7F",
    "fastModeShimmer": "#FFD36C",
    "effortUltra": "#FFD36C",
    "diffAdded": "#22362F",
    "diffRemoved": "#402327",
    "diffAddedDimmed": "#192827",
    "diffRemovedDimmed": "#2E1C22",
    "diffAddedWord": "#2F4C3C",
    "diffRemovedWord": "#5E2F2F",
    "userMessageBackground": "#1A243A",
    "userMessageBackgroundHover": "#232F49",
    "bashMessageBackgroundColor": "#282B2F",
    "memoryBackgroundColor": "#1A2C3D",
    "composerSidebarBackground": "#0D1421",
    "selectionBg": "#303E5B",
    "rate_limit_fill": "#DE8946",
    "rate_limit_empty": "#232F49",
    "briefLabelYou": "#F2C03F",
    "briefLabelClaude": "#DE8946",
    "clawd_body": "#DE8946",
    "clawd_background": "#0A0E18",
    "red_FOR_SUBAGENTS_ONLY": "#FE8474",
    "blue_FOR_SUBAGENTS_ONLY": "#7595DA",
    "green_FOR_SUBAGENTS_ONLY": "#77C581",
    "yellow_FOR_SUBAGENTS_ONLY": "#F2C03F",
    "purple_FOR_SUBAGENTS_ONLY": "#C49ABA",
    "orange_FOR_SUBAGENTS_ONLY": "#DE8946",
    "pink_FOR_SUBAGENTS_ONLY": "#AE9EDC",
    "cyan_FOR_SUBAGENTS_ONLY": "#54B4B5",
    "rainbow_red": "#DB6052",
    "rainbow_orange": "#DE8946",
    "rainbow_yellow": "#F2C03F",
    "rainbow_green": "#77C581",
    "rainbow_blue": "#54B4B5",
    "rainbow_indigo": "#7595DA",
    "rainbow_violet": "#AE9EDC",
    "rainbow_red_shimmer": "#FE8474",
    "rainbow_orange_shimmer": "#E5AA7F",
    "rainbow_yellow_shimmer": "#FFD36C",
    "rainbow_green_shimmer": "#9AD2A0",
    "rainbow_blue_shimmer": "#72D1D3",
    "rainbow_indigo_shimmer": "#8BB0FF",
    "rainbow_violet_shimmer": "#BFB5E3"
  }
}
themes/london-deep-level-terminal.jsonsave as ~/.claude/themes/london-deep-level-terminal.json
{
  "name": "London Deep Level (terminal colors)",
  "base": "dark-ansi",
  "overrides": {
    "claude": "#DE8946",
    "claudeShimmer": "#E5AA7F",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#7595DA",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#8BB0FF",
    "text": "#D4DAE7",
    "inverseText": "#0A0E18",
    "inactive": "#8B96AC",
    "inactiveShimmer": "#A5AEC0",
    "subtle": "#53617D",
    "suggestion": "#F2C03F",
    "permission": "#F2C03F",
    "permissionShimmer": "#FFD36C",
    "remember": "#54B4B5",
    "background": "#54B4B5",
    "success": "#77C581",
    "error": "#FE8474",
    "warning": "#F2C03F",
    "warningShimmer": "#FFD36C",
    "merged": "#AE9EDC",
    "promptBorder": "#53617D",
    "promptBorderShimmer": "#6F7C97",
    "planMode": "#54B4B5",
    "autoAccept": "#AE9EDC",
    "autoAcceptShimmer": "#BFB5E3",
    "skill": "#AE9EDC",
    "bashBorder": "#F2C03F",
    "ide": "#7595DA",
    "professionalBlue": "#7595DA",
    "chromeYellow": "#F2C03F",
    "fastMode": "#E5AA7F",
    "fastModeShimmer": "#FFD36C",
    "effortUltra": "#FFD36C",
    "diffAdded": "ansi256(236)",
    "diffRemoved": "ansi256(52)",
    "diffAddedDimmed": "ansi256(235)",
    "diffRemovedDimmed": "ansi256(52)",
    "diffAddedWord": "ansi256(237)",
    "diffRemovedWord": "ansi256(88)",
    "userMessageBackground": "#1A243A",
    "userMessageBackgroundHover": "#232F49",
    "bashMessageBackgroundColor": "#282B2F",
    "memoryBackgroundColor": "#1A2C3D",
    "composerSidebarBackground": "#0D1421",
    "selectionBg": "#303E5B",
    "rate_limit_fill": "#DE8946",
    "rate_limit_empty": "#232F49",
    "briefLabelYou": "#F2C03F",
    "briefLabelClaude": "#DE8946",
    "clawd_body": "#DE8946",
    "clawd_background": "#0A0E18",
    "red_FOR_SUBAGENTS_ONLY": "#FE8474",
    "blue_FOR_SUBAGENTS_ONLY": "#7595DA",
    "green_FOR_SUBAGENTS_ONLY": "#77C581",
    "yellow_FOR_SUBAGENTS_ONLY": "#F2C03F",
    "purple_FOR_SUBAGENTS_ONLY": "#C49ABA",
    "orange_FOR_SUBAGENTS_ONLY": "#DE8946",
    "pink_FOR_SUBAGENTS_ONLY": "#AE9EDC",
    "cyan_FOR_SUBAGENTS_ONLY": "#54B4B5",
    "rainbow_red": "#DB6052",
    "rainbow_orange": "#DE8946",
    "rainbow_yellow": "#F2C03F",
    "rainbow_green": "#77C581",
    "rainbow_blue": "#54B4B5",
    "rainbow_indigo": "#7595DA",
    "rainbow_violet": "#AE9EDC",
    "rainbow_red_shimmer": "#FE8474",
    "rainbow_orange_shimmer": "#E5AA7F",
    "rainbow_yellow_shimmer": "#FFD36C",
    "rainbow_green_shimmer": "#9AD2A0",
    "rainbow_blue_shimmer": "#72D1D3",
    "rainbow_indigo_shimmer": "#8BB0FF",
    "rainbow_violet_shimmer": "#BFB5E3"
  }
}
plugin/themes/london-deep-level-terminal.json
{
  "name": "London Deep Level (terminal colors)",
  "base": "dark-ansi",
  "overrides": {
    "claude": "#DE8946",
    "claudeShimmer": "#E5AA7F",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#7595DA",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#8BB0FF",
    "text": "#D4DAE7",
    "inverseText": "#0A0E18",
    "inactive": "#8B96AC",
    "inactiveShimmer": "#A5AEC0",
    "subtle": "#53617D",
    "suggestion": "#F2C03F",
    "permission": "#F2C03F",
    "permissionShimmer": "#FFD36C",
    "remember": "#54B4B5",
    "background": "#54B4B5",
    "success": "#77C581",
    "error": "#FE8474",
    "warning": "#F2C03F",
    "warningShimmer": "#FFD36C",
    "merged": "#AE9EDC",
    "promptBorder": "#53617D",
    "promptBorderShimmer": "#6F7C97",
    "planMode": "#54B4B5",
    "autoAccept": "#AE9EDC",
    "autoAcceptShimmer": "#BFB5E3",
    "skill": "#AE9EDC",
    "bashBorder": "#F2C03F",
    "ide": "#7595DA",
    "professionalBlue": "#7595DA",
    "chromeYellow": "#F2C03F",
    "fastMode": "#E5AA7F",
    "fastModeShimmer": "#FFD36C",
    "effortUltra": "#FFD36C",
    "diffAdded": "ansi256(236)",
    "diffRemoved": "ansi256(52)",
    "diffAddedDimmed": "ansi256(235)",
    "diffRemovedDimmed": "ansi256(52)",
    "diffAddedWord": "ansi256(237)",
    "diffRemovedWord": "ansi256(88)",
    "userMessageBackground": "#1A243A",
    "userMessageBackgroundHover": "#232F49",
    "bashMessageBackgroundColor": "#282B2F",
    "memoryBackgroundColor": "#1A2C3D",
    "composerSidebarBackground": "#0D1421",
    "selectionBg": "#303E5B",
    "rate_limit_fill": "#DE8946",
    "rate_limit_empty": "#232F49",
    "briefLabelYou": "#F2C03F",
    "briefLabelClaude": "#DE8946",
    "clawd_body": "#DE8946",
    "clawd_background": "#0A0E18",
    "red_FOR_SUBAGENTS_ONLY": "#FE8474",
    "blue_FOR_SUBAGENTS_ONLY": "#7595DA",
    "green_FOR_SUBAGENTS_ONLY": "#77C581",
    "yellow_FOR_SUBAGENTS_ONLY": "#F2C03F",
    "purple_FOR_SUBAGENTS_ONLY": "#C49ABA",
    "orange_FOR_SUBAGENTS_ONLY": "#DE8946",
    "pink_FOR_SUBAGENTS_ONLY": "#AE9EDC",
    "cyan_FOR_SUBAGENTS_ONLY": "#54B4B5",
    "rainbow_red": "#DB6052",
    "rainbow_orange": "#DE8946",
    "rainbow_yellow": "#F2C03F",
    "rainbow_green": "#77C581",
    "rainbow_blue": "#54B4B5",
    "rainbow_indigo": "#7595DA",
    "rainbow_violet": "#AE9EDC",
    "rainbow_red_shimmer": "#FE8474",
    "rainbow_orange_shimmer": "#E5AA7F",
    "rainbow_yellow_shimmer": "#FFD36C",
    "rainbow_green_shimmer": "#9AD2A0",
    "rainbow_blue_shimmer": "#72D1D3",
    "rainbow_indigo_shimmer": "#8BB0FF",
    "rainbow_violet_shimmer": "#BFB5E3"
  }
}
plugin/settings/london-deep-level.jsonmerged into ~/.claude/settings.json by /subway-seat:setup
{
  "theme": "custom:subway-seat:london-deep-level",
  "statusLine": {
    "type": "command",
    "command": "${CLAUDE_PLUGIN_DATA}/subway-seat-statusline",
    "padding": 0,
    "hideVimModeIndicator": true
  },
  "spinnerVerbs": {
    "mode": "replace",
    "verbs": [
      "Reading the diagram",
      "Minding the gap",
      "Standing clear of the doors",
      "Changing at Baker Street",
      "Riding the deep level",
      "Touching in",
      "Touching out",
      "Checking the board",
      "Standing on the right",
      "Counting the stops",
      "Following the roundel",
      "Waiting at a red signal",
      "Letting them off first",
      "Finding a seat on the moquette",
      "Going southbound",
      "Going northbound",
      "Running to timetable",
      "Watching the countdown",
      "Alighting here",
      "Changing for the Circle",
      "Taking the long escalator",
      "Sheltering from the drizzle",
      "Queueing",
      "Brewing up",
      "Waiting for the next one",
      "Passing Aldgate",
      "Reading over a shoulder",
      "Consulting the map",
      "Holding on",
      "Terminating here"
    ]
  },
  "spinnerTipsOverride": {
    "tipsFile": "${CLAUDE_PLUGIN_DATA}/tips.json",
    "label": "Next stop"
  }
}
themes/london-portland.jsonsave as ~/.claude/themes/london-portland.json
{
  "name": "London Portland",
  "base": "light",
  "overrides": {
    "claude": "#A54300",
    "claudeShimmer": "#AC5A00",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#0019A8",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#4A6EBD",
    "text": "#293040",
    "inverseText": "#E8F0FF",
    "inactive": "#556179",
    "inactiveShimmer": "#697794",
    "subtle": "#93A7CF",
    "suggestion": "#8D6C08",
    "permission": "#8D6C08",
    "permissionShimmer": "#9B770A",
    "remember": "#007376",
    "background": "#007376",
    "success": "#0D8131",
    "error": "#CC2E25",
    "warning": "#8D6C08",
    "warningShimmer": "#9B770A",
    "merged": "#755FA9",
    "promptBorder": "#8192B4",
    "promptBorderShimmer": "#93A7CF",
    "planMode": "#007376",
    "autoAccept": "#755FA9",
    "autoAcceptShimmer": "#8C7CBA",
    "skill": "#755FA9",
    "bashBorder": "#8D6C08",
    "ide": "#0019A8",
    "professionalBlue": "#0019A8",
    "chromeYellow": "#8D6C08",
    "fastMode": "#AC5A00",
    "fastModeShimmer": "#9B770A",
    "effortUltra": "#9B770A",
    "diffAdded": "#C0DEC9",
    "diffRemoved": "#EBD3D1",
    "diffAddedDimmed": "#D8EBDE",
    "diffRemovedDimmed": "#F3E4E4",
    "diffAddedWord": "#9ECDAD",
    "diffRemovedWord": "#DFB8B6",
    "userMessageBackground": "#DCE5F7",
    "userMessageBackgroundHover": "#CCDAF2",
    "bashMessageBackgroundColor": "#DFE3E6",
    "memoryBackgroundColor": "#CCE1EF",
    "composerSidebarBackground": "#DCE5F7",
    "selectionBg": "#A8BBE2",
    "rate_limit_fill": "#A54300",
    "rate_limit_empty": "#A8BBE2",
    "briefLabelYou": "#8D6C08",
    "briefLabelClaude": "#A54300",
    "clawd_body": "#A54300",
    "clawd_background": "#1B202B",
    "red_FOR_SUBAGENTS_ONLY": "#CC2E25",
    "blue_FOR_SUBAGENTS_ONLY": "#0019A8",
    "green_FOR_SUBAGENTS_ONLY": "#0D8131",
    "yellow_FOR_SUBAGENTS_ONLY": "#8D6C08",
    "purple_FOR_SUBAGENTS_ONLY": "#8B4E71",
    "orange_FOR_SUBAGENTS_ONLY": "#A54300",
    "pink_FOR_SUBAGENTS_ONLY": "#755FA9",
    "cyan_FOR_SUBAGENTS_ONLY": "#007376",
    "rainbow_red": "#9B211A",
    "rainbow_orange": "#A54300",
    "rainbow_yellow": "#8D6C08",
    "rainbow_green": "#0D8131",
    "rainbow_blue": "#007376",
    "rainbow_indigo": "#0019A8",
    "rainbow_violet": "#755FA9",
    "rainbow_red_shimmer": "#CC2E25",
    "rainbow_orange_shimmer": "#AC5A00",
    "rainbow_yellow_shimmer": "#9B770A",
    "rainbow_green_shimmer": "#008730",
    "rainbow_blue_shimmer": "#008688",
    "rainbow_indigo_shimmer": "#4A6EBD",
    "rainbow_violet_shimmer": "#8C7CBA"
  }
}
plugin/themes/london-portland.json
{
  "name": "London Portland",
  "base": "light",
  "overrides": {
    "claude": "#A54300",
    "claudeShimmer": "#AC5A00",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#0019A8",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#4A6EBD",
    "text": "#293040",
    "inverseText": "#E8F0FF",
    "inactive": "#556179",
    "inactiveShimmer": "#697794",
    "subtle": "#93A7CF",
    "suggestion": "#8D6C08",
    "permission": "#8D6C08",
    "permissionShimmer": "#9B770A",
    "remember": "#007376",
    "background": "#007376",
    "success": "#0D8131",
    "error": "#CC2E25",
    "warning": "#8D6C08",
    "warningShimmer": "#9B770A",
    "merged": "#755FA9",
    "promptBorder": "#8192B4",
    "promptBorderShimmer": "#93A7CF",
    "planMode": "#007376",
    "autoAccept": "#755FA9",
    "autoAcceptShimmer": "#8C7CBA",
    "skill": "#755FA9",
    "bashBorder": "#8D6C08",
    "ide": "#0019A8",
    "professionalBlue": "#0019A8",
    "chromeYellow": "#8D6C08",
    "fastMode": "#AC5A00",
    "fastModeShimmer": "#9B770A",
    "effortUltra": "#9B770A",
    "diffAdded": "#C0DEC9",
    "diffRemoved": "#EBD3D1",
    "diffAddedDimmed": "#D8EBDE",
    "diffRemovedDimmed": "#F3E4E4",
    "diffAddedWord": "#9ECDAD",
    "diffRemovedWord": "#DFB8B6",
    "userMessageBackground": "#DCE5F7",
    "userMessageBackgroundHover": "#CCDAF2",
    "bashMessageBackgroundColor": "#DFE3E6",
    "memoryBackgroundColor": "#CCE1EF",
    "composerSidebarBackground": "#DCE5F7",
    "selectionBg": "#A8BBE2",
    "rate_limit_fill": "#A54300",
    "rate_limit_empty": "#A8BBE2",
    "briefLabelYou": "#8D6C08",
    "briefLabelClaude": "#A54300",
    "clawd_body": "#A54300",
    "clawd_background": "#1B202B",
    "red_FOR_SUBAGENTS_ONLY": "#CC2E25",
    "blue_FOR_SUBAGENTS_ONLY": "#0019A8",
    "green_FOR_SUBAGENTS_ONLY": "#0D8131",
    "yellow_FOR_SUBAGENTS_ONLY": "#8D6C08",
    "purple_FOR_SUBAGENTS_ONLY": "#8B4E71",
    "orange_FOR_SUBAGENTS_ONLY": "#A54300",
    "pink_FOR_SUBAGENTS_ONLY": "#755FA9",
    "cyan_FOR_SUBAGENTS_ONLY": "#007376",
    "rainbow_red": "#9B211A",
    "rainbow_orange": "#A54300",
    "rainbow_yellow": "#8D6C08",
    "rainbow_green": "#0D8131",
    "rainbow_blue": "#007376",
    "rainbow_indigo": "#0019A8",
    "rainbow_violet": "#755FA9",
    "rainbow_red_shimmer": "#CC2E25",
    "rainbow_orange_shimmer": "#AC5A00",
    "rainbow_yellow_shimmer": "#9B770A",
    "rainbow_green_shimmer": "#008730",
    "rainbow_blue_shimmer": "#008688",
    "rainbow_indigo_shimmer": "#4A6EBD",
    "rainbow_violet_shimmer": "#8C7CBA"
  }
}
themes/london-portland-terminal.jsonsave as ~/.claude/themes/london-portland-terminal.json
{
  "name": "London Portland (terminal colors)",
  "base": "light-ansi",
  "overrides": {
    "claude": "#A54300",
    "claudeShimmer": "#AC5A00",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#0019A8",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#4A6EBD",
    "text": "#293040",
    "inverseText": "#E8F0FF",
    "inactive": "#556179",
    "inactiveShimmer": "#697794",
    "subtle": "#93A7CF",
    "suggestion": "#8D6C08",
    "permission": "#8D6C08",
    "permissionShimmer": "#9B770A",
    "remember": "#007376",
    "background": "#007376",
    "success": "#0D8131",
    "error": "#CC2E25",
    "warning": "#8D6C08",
    "warningShimmer": "#9B770A",
    "merged": "#755FA9",
    "promptBorder": "#8192B4",
    "promptBorderShimmer": "#93A7CF",
    "planMode": "#007376",
    "autoAccept": "#755FA9",
    "autoAcceptShimmer": "#8C7CBA",
    "skill": "#755FA9",
    "bashBorder": "#8D6C08",
    "ide": "#0019A8",
    "professionalBlue": "#0019A8",
    "chromeYellow": "#8D6C08",
    "fastMode": "#AC5A00",
    "fastModeShimmer": "#9B770A",
    "effortUltra": "#9B770A",
    "diffAdded": "ansi256(158)",
    "diffRemoved": "ansi256(224)",
    "diffAddedDimmed": "ansi256(194)",
    "diffRemovedDimmed": "ansi256(224)",
    "diffAddedWord": "ansi256(151)",
    "diffRemovedWord": "ansi256(181)",
    "userMessageBackground": "#DCE5F7",
    "userMessageBackgroundHover": "#CCDAF2",
    "bashMessageBackgroundColor": "#DFE3E6",
    "memoryBackgroundColor": "#CCE1EF",
    "composerSidebarBackground": "#DCE5F7",
    "selectionBg": "#A8BBE2",
    "rate_limit_fill": "#A54300",
    "rate_limit_empty": "#A8BBE2",
    "briefLabelYou": "#8D6C08",
    "briefLabelClaude": "#A54300",
    "clawd_body": "#A54300",
    "clawd_background": "#1B202B",
    "red_FOR_SUBAGENTS_ONLY": "#CC2E25",
    "blue_FOR_SUBAGENTS_ONLY": "#0019A8",
    "green_FOR_SUBAGENTS_ONLY": "#0D8131",
    "yellow_FOR_SUBAGENTS_ONLY": "#8D6C08",
    "purple_FOR_SUBAGENTS_ONLY": "#8B4E71",
    "orange_FOR_SUBAGENTS_ONLY": "#A54300",
    "pink_FOR_SUBAGENTS_ONLY": "#755FA9",
    "cyan_FOR_SUBAGENTS_ONLY": "#007376",
    "rainbow_red": "#9B211A",
    "rainbow_orange": "#A54300",
    "rainbow_yellow": "#8D6C08",
    "rainbow_green": "#0D8131",
    "rainbow_blue": "#007376",
    "rainbow_indigo": "#0019A8",
    "rainbow_violet": "#755FA9",
    "rainbow_red_shimmer": "#CC2E25",
    "rainbow_orange_shimmer": "#AC5A00",
    "rainbow_yellow_shimmer": "#9B770A",
    "rainbow_green_shimmer": "#008730",
    "rainbow_blue_shimmer": "#008688",
    "rainbow_indigo_shimmer": "#4A6EBD",
    "rainbow_violet_shimmer": "#8C7CBA"
  }
}
plugin/themes/london-portland-terminal.json
{
  "name": "London Portland (terminal colors)",
  "base": "light-ansi",
  "overrides": {
    "claude": "#A54300",
    "claudeShimmer": "#AC5A00",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#0019A8",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#4A6EBD",
    "text": "#293040",
    "inverseText": "#E8F0FF",
    "inactive": "#556179",
    "inactiveShimmer": "#697794",
    "subtle": "#93A7CF",
    "suggestion": "#8D6C08",
    "permission": "#8D6C08",
    "permissionShimmer": "#9B770A",
    "remember": "#007376",
    "background": "#007376",
    "success": "#0D8131",
    "error": "#CC2E25",
    "warning": "#8D6C08",
    "warningShimmer": "#9B770A",
    "merged": "#755FA9",
    "promptBorder": "#8192B4",
    "promptBorderShimmer": "#93A7CF",
    "planMode": "#007376",
    "autoAccept": "#755FA9",
    "autoAcceptShimmer": "#8C7CBA",
    "skill": "#755FA9",
    "bashBorder": "#8D6C08",
    "ide": "#0019A8",
    "professionalBlue": "#0019A8",
    "chromeYellow": "#8D6C08",
    "fastMode": "#AC5A00",
    "fastModeShimmer": "#9B770A",
    "effortUltra": "#9B770A",
    "diffAdded": "ansi256(158)",
    "diffRemoved": "ansi256(224)",
    "diffAddedDimmed": "ansi256(194)",
    "diffRemovedDimmed": "ansi256(224)",
    "diffAddedWord": "ansi256(151)",
    "diffRemovedWord": "ansi256(181)",
    "userMessageBackground": "#DCE5F7",
    "userMessageBackgroundHover": "#CCDAF2",
    "bashMessageBackgroundColor": "#DFE3E6",
    "memoryBackgroundColor": "#CCE1EF",
    "composerSidebarBackground": "#DCE5F7",
    "selectionBg": "#A8BBE2",
    "rate_limit_fill": "#A54300",
    "rate_limit_empty": "#A8BBE2",
    "briefLabelYou": "#8D6C08",
    "briefLabelClaude": "#A54300",
    "clawd_body": "#A54300",
    "clawd_background": "#1B202B",
    "red_FOR_SUBAGENTS_ONLY": "#CC2E25",
    "blue_FOR_SUBAGENTS_ONLY": "#0019A8",
    "green_FOR_SUBAGENTS_ONLY": "#0D8131",
    "yellow_FOR_SUBAGENTS_ONLY": "#8D6C08",
    "purple_FOR_SUBAGENTS_ONLY": "#8B4E71",
    "orange_FOR_SUBAGENTS_ONLY": "#A54300",
    "pink_FOR_SUBAGENTS_ONLY": "#755FA9",
    "cyan_FOR_SUBAGENTS_ONLY": "#007376",
    "rainbow_red": "#9B211A",
    "rainbow_orange": "#A54300",
    "rainbow_yellow": "#8D6C08",
    "rainbow_green": "#0D8131",
    "rainbow_blue": "#007376",
    "rainbow_indigo": "#0019A8",
    "rainbow_violet": "#755FA9",
    "rainbow_red_shimmer": "#CC2E25",
    "rainbow_orange_shimmer": "#AC5A00",
    "rainbow_yellow_shimmer": "#9B770A",
    "rainbow_green_shimmer": "#008730",
    "rainbow_blue_shimmer": "#008688",
    "rainbow_indigo_shimmer": "#4A6EBD",
    "rainbow_violet_shimmer": "#8C7CBA"
  }
}
plugin/settings/london-portland.jsonmerged into ~/.claude/settings.json by /subway-seat:setup
{
  "theme": "custom:subway-seat:london-portland",
  "statusLine": {
    "type": "command",
    "command": "${CLAUDE_PLUGIN_DATA}/subway-seat-statusline",
    "padding": 0,
    "hideVimModeIndicator": true
  },
  "spinnerVerbs": {
    "mode": "replace",
    "verbs": [
      "Reading the diagram",
      "Minding the gap",
      "Standing clear of the doors",
      "Changing at Baker Street",
      "Riding the deep level",
      "Touching in",
      "Touching out",
      "Checking the board",
      "Standing on the right",
      "Counting the stops",
      "Following the roundel",
      "Waiting at a red signal",
      "Letting them off first",
      "Finding a seat on the moquette",
      "Going southbound",
      "Going northbound",
      "Running to timetable",
      "Watching the countdown",
      "Alighting here",
      "Changing for the Circle",
      "Taking the long escalator",
      "Sheltering from the drizzle",
      "Queueing",
      "Brewing up",
      "Waiting for the next one",
      "Passing Aldgate",
      "Reading over a shoulder",
      "Consulting the map",
      "Holding on",
      "Terminating here"
    ]
  },
  "spinnerTipsOverride": {
    "tipsFile": "${CLAUDE_PLUGIN_DATA}/tips.json",
    "label": "Next stop"
  }
}
themes/paris-guimard.jsonsave as ~/.claude/themes/paris-guimard.json
{
  "name": "Paris Guimard",
  "base": "dark",
  "overrides": {
    "claude": "#CA9245",
    "claudeShimmer": "#DFAA61",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#709BC8",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#8DB6E2",
    "text": "#D9E1DB",
    "inverseText": "#131A17",
    "inactive": "#909E96",
    "inactiveShimmer": "#A9B5AE",
    "subtle": "#586B61",
    "suggestion": "#F1BF4B",
    "permission": "#F1BF4B",
    "permissionShimmer": "#FFD57A",
    "remember": "#549B9F",
    "background": "#549B9F",
    "success": "#70CAA9",
    "error": "#E7877B",
    "warning": "#F1BF4B",
    "warningShimmer": "#FFD57A",
    "merged": "#FAB49C",
    "promptBorder": "#586B61",
    "promptBorderShimmer": "#74857C",
    "planMode": "#549B9F",
    "autoAccept": "#FAB49C",
    "autoAcceptShimmer": "#F5C5B4",
    "skill": "#FAB49C",
    "bashBorder": "#F1BF4B",
    "ide": "#709BC8",
    "professionalBlue": "#709BC8",
    "chromeYellow": "#F1BF4B",
    "fastMode": "#DFAA61",
    "fastModeShimmer": "#FFD57A",
    "effortUltra": "#FFD57A",
    "diffAdded": "#274137",
    "diffRemoved": "#422E29",
    "diffAddedDimmed": "#20332B",
    "diffRemovedDimmed": "#322723",
    "diffAddedWord": "#335649",
    "diffRemovedWord": "#5B3832",
    "userMessageBackground": "#263930",
    "userMessageBackgroundHover": "#30463B",
    "bashMessageBackgroundColor": "#333C2A",
    "memoryBackgroundColor": "#243B35",
    "composerSidebarBackground": "#18241D",
    "selectionBg": "#3E554A",
    "rate_limit_fill": "#CA9245",
    "rate_limit_empty": "#30463B",
    "briefLabelYou": "#F1BF4B",
    "briefLabelClaude": "#CA9245",
    "clawd_body": "#CA9245",
    "clawd_background": "#131A17",
    "red_FOR_SUBAGENTS_ONLY": "#E7877B",
    "blue_FOR_SUBAGENTS_ONLY": "#709BC8",
    "green_FOR_SUBAGENTS_ONLY": "#70CAA9",
    "yellow_FOR_SUBAGENTS_ONLY": "#F1BF4B",
    "purple_FOR_SUBAGENTS_ONLY": "#BA9EAE",
    "orange_FOR_SUBAGENTS_ONLY": "#CA9245",
    "pink_FOR_SUBAGENTS_ONLY": "#FAB49C",
    "cyan_FOR_SUBAGENTS_ONLY": "#549B9F",
    "rainbow_red": "#C7665B",
    "rainbow_orange": "#CA9245",
    "rainbow_yellow": "#F1BF4B",
    "rainbow_green": "#70CAA9",
    "rainbow_blue": "#549B9F",
    "rainbow_indigo": "#709BC8",
    "rainbow_violet": "#FAB49C",
    "rainbow_red_shimmer": "#E7877B",
    "rainbow_orange_shimmer": "#DFAA61",
    "rainbow_yellow_shimmer": "#FFD57A",
    "rainbow_green_shimmer": "#89DEBE",
    "rainbow_blue_shimmer": "#70B5B9",
    "rainbow_indigo_shimmer": "#8DB6E2",
    "rainbow_violet_shimmer": "#F5C5B4"
  }
}
plugin/themes/paris-guimard.json
{
  "name": "Paris Guimard",
  "base": "dark",
  "overrides": {
    "claude": "#CA9245",
    "claudeShimmer": "#DFAA61",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#709BC8",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#8DB6E2",
    "text": "#D9E1DB",
    "inverseText": "#131A17",
    "inactive": "#909E96",
    "inactiveShimmer": "#A9B5AE",
    "subtle": "#586B61",
    "suggestion": "#F1BF4B",
    "permission": "#F1BF4B",
    "permissionShimmer": "#FFD57A",
    "remember": "#549B9F",
    "background": "#549B9F",
    "success": "#70CAA9",
    "error": "#E7877B",
    "warning": "#F1BF4B",
    "warningShimmer": "#FFD57A",
    "merged": "#FAB49C",
    "promptBorder": "#586B61",
    "promptBorderShimmer": "#74857C",
    "planMode": "#549B9F",
    "autoAccept": "#FAB49C",
    "autoAcceptShimmer": "#F5C5B4",
    "skill": "#FAB49C",
    "bashBorder": "#F1BF4B",
    "ide": "#709BC8",
    "professionalBlue": "#709BC8",
    "chromeYellow": "#F1BF4B",
    "fastMode": "#DFAA61",
    "fastModeShimmer": "#FFD57A",
    "effortUltra": "#FFD57A",
    "diffAdded": "#274137",
    "diffRemoved": "#422E29",
    "diffAddedDimmed": "#20332B",
    "diffRemovedDimmed": "#322723",
    "diffAddedWord": "#335649",
    "diffRemovedWord": "#5B3832",
    "userMessageBackground": "#263930",
    "userMessageBackgroundHover": "#30463B",
    "bashMessageBackgroundColor": "#333C2A",
    "memoryBackgroundColor": "#243B35",
    "composerSidebarBackground": "#18241D",
    "selectionBg": "#3E554A",
    "rate_limit_fill": "#CA9245",
    "rate_limit_empty": "#30463B",
    "briefLabelYou": "#F1BF4B",
    "briefLabelClaude": "#CA9245",
    "clawd_body": "#CA9245",
    "clawd_background": "#131A17",
    "red_FOR_SUBAGENTS_ONLY": "#E7877B",
    "blue_FOR_SUBAGENTS_ONLY": "#709BC8",
    "green_FOR_SUBAGENTS_ONLY": "#70CAA9",
    "yellow_FOR_SUBAGENTS_ONLY": "#F1BF4B",
    "purple_FOR_SUBAGENTS_ONLY": "#BA9EAE",
    "orange_FOR_SUBAGENTS_ONLY": "#CA9245",
    "pink_FOR_SUBAGENTS_ONLY": "#FAB49C",
    "cyan_FOR_SUBAGENTS_ONLY": "#549B9F",
    "rainbow_red": "#C7665B",
    "rainbow_orange": "#CA9245",
    "rainbow_yellow": "#F1BF4B",
    "rainbow_green": "#70CAA9",
    "rainbow_blue": "#549B9F",
    "rainbow_indigo": "#709BC8",
    "rainbow_violet": "#FAB49C",
    "rainbow_red_shimmer": "#E7877B",
    "rainbow_orange_shimmer": "#DFAA61",
    "rainbow_yellow_shimmer": "#FFD57A",
    "rainbow_green_shimmer": "#89DEBE",
    "rainbow_blue_shimmer": "#70B5B9",
    "rainbow_indigo_shimmer": "#8DB6E2",
    "rainbow_violet_shimmer": "#F5C5B4"
  }
}
themes/paris-guimard-terminal.jsonsave as ~/.claude/themes/paris-guimard-terminal.json
{
  "name": "Paris Guimard (terminal colors)",
  "base": "dark-ansi",
  "overrides": {
    "claude": "#CA9245",
    "claudeShimmer": "#DFAA61",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#709BC8",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#8DB6E2",
    "text": "#D9E1DB",
    "inverseText": "#131A17",
    "inactive": "#909E96",
    "inactiveShimmer": "#A9B5AE",
    "subtle": "#586B61",
    "suggestion": "#F1BF4B",
    "permission": "#F1BF4B",
    "permissionShimmer": "#FFD57A",
    "remember": "#549B9F",
    "background": "#549B9F",
    "success": "#70CAA9",
    "error": "#E7877B",
    "warning": "#F1BF4B",
    "warningShimmer": "#FFD57A",
    "merged": "#FAB49C",
    "promptBorder": "#586B61",
    "promptBorderShimmer": "#74857C",
    "planMode": "#549B9F",
    "autoAccept": "#FAB49C",
    "autoAcceptShimmer": "#F5C5B4",
    "skill": "#FAB49C",
    "bashBorder": "#F1BF4B",
    "ide": "#709BC8",
    "professionalBlue": "#709BC8",
    "chromeYellow": "#F1BF4B",
    "fastMode": "#DFAA61",
    "fastModeShimmer": "#FFD57A",
    "effortUltra": "#FFD57A",
    "diffAdded": "ansi256(236)",
    "diffRemoved": "ansi256(52)",
    "diffAddedDimmed": "ansi256(235)",
    "diffRemovedDimmed": "ansi256(52)",
    "diffAddedWord": "ansi256(22)",
    "diffRemovedWord": "ansi256(88)",
    "userMessageBackground": "#263930",
    "userMessageBackgroundHover": "#30463B",
    "bashMessageBackgroundColor": "#333C2A",
    "memoryBackgroundColor": "#243B35",
    "composerSidebarBackground": "#18241D",
    "selectionBg": "#3E554A",
    "rate_limit_fill": "#CA9245",
    "rate_limit_empty": "#30463B",
    "briefLabelYou": "#F1BF4B",
    "briefLabelClaude": "#CA9245",
    "clawd_body": "#CA9245",
    "clawd_background": "#131A17",
    "red_FOR_SUBAGENTS_ONLY": "#E7877B",
    "blue_FOR_SUBAGENTS_ONLY": "#709BC8",
    "green_FOR_SUBAGENTS_ONLY": "#70CAA9",
    "yellow_FOR_SUBAGENTS_ONLY": "#F1BF4B",
    "purple_FOR_SUBAGENTS_ONLY": "#BA9EAE",
    "orange_FOR_SUBAGENTS_ONLY": "#CA9245",
    "pink_FOR_SUBAGENTS_ONLY": "#FAB49C",
    "cyan_FOR_SUBAGENTS_ONLY": "#549B9F",
    "rainbow_red": "#C7665B",
    "rainbow_orange": "#CA9245",
    "rainbow_yellow": "#F1BF4B",
    "rainbow_green": "#70CAA9",
    "rainbow_blue": "#549B9F",
    "rainbow_indigo": "#709BC8",
    "rainbow_violet": "#FAB49C",
    "rainbow_red_shimmer": "#E7877B",
    "rainbow_orange_shimmer": "#DFAA61",
    "rainbow_yellow_shimmer": "#FFD57A",
    "rainbow_green_shimmer": "#89DEBE",
    "rainbow_blue_shimmer": "#70B5B9",
    "rainbow_indigo_shimmer": "#8DB6E2",
    "rainbow_violet_shimmer": "#F5C5B4"
  }
}
plugin/themes/paris-guimard-terminal.json
{
  "name": "Paris Guimard (terminal colors)",
  "base": "dark-ansi",
  "overrides": {
    "claude": "#CA9245",
    "claudeShimmer": "#DFAA61",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#709BC8",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#8DB6E2",
    "text": "#D9E1DB",
    "inverseText": "#131A17",
    "inactive": "#909E96",
    "inactiveShimmer": "#A9B5AE",
    "subtle": "#586B61",
    "suggestion": "#F1BF4B",
    "permission": "#F1BF4B",
    "permissionShimmer": "#FFD57A",
    "remember": "#549B9F",
    "background": "#549B9F",
    "success": "#70CAA9",
    "error": "#E7877B",
    "warning": "#F1BF4B",
    "warningShimmer": "#FFD57A",
    "merged": "#FAB49C",
    "promptBorder": "#586B61",
    "promptBorderShimmer": "#74857C",
    "planMode": "#549B9F",
    "autoAccept": "#FAB49C",
    "autoAcceptShimmer": "#F5C5B4",
    "skill": "#FAB49C",
    "bashBorder": "#F1BF4B",
    "ide": "#709BC8",
    "professionalBlue": "#709BC8",
    "chromeYellow": "#F1BF4B",
    "fastMode": "#DFAA61",
    "fastModeShimmer": "#FFD57A",
    "effortUltra": "#FFD57A",
    "diffAdded": "ansi256(236)",
    "diffRemoved": "ansi256(52)",
    "diffAddedDimmed": "ansi256(235)",
    "diffRemovedDimmed": "ansi256(52)",
    "diffAddedWord": "ansi256(22)",
    "diffRemovedWord": "ansi256(88)",
    "userMessageBackground": "#263930",
    "userMessageBackgroundHover": "#30463B",
    "bashMessageBackgroundColor": "#333C2A",
    "memoryBackgroundColor": "#243B35",
    "composerSidebarBackground": "#18241D",
    "selectionBg": "#3E554A",
    "rate_limit_fill": "#CA9245",
    "rate_limit_empty": "#30463B",
    "briefLabelYou": "#F1BF4B",
    "briefLabelClaude": "#CA9245",
    "clawd_body": "#CA9245",
    "clawd_background": "#131A17",
    "red_FOR_SUBAGENTS_ONLY": "#E7877B",
    "blue_FOR_SUBAGENTS_ONLY": "#709BC8",
    "green_FOR_SUBAGENTS_ONLY": "#70CAA9",
    "yellow_FOR_SUBAGENTS_ONLY": "#F1BF4B",
    "purple_FOR_SUBAGENTS_ONLY": "#BA9EAE",
    "orange_FOR_SUBAGENTS_ONLY": "#CA9245",
    "pink_FOR_SUBAGENTS_ONLY": "#FAB49C",
    "cyan_FOR_SUBAGENTS_ONLY": "#549B9F",
    "rainbow_red": "#C7665B",
    "rainbow_orange": "#CA9245",
    "rainbow_yellow": "#F1BF4B",
    "rainbow_green": "#70CAA9",
    "rainbow_blue": "#549B9F",
    "rainbow_indigo": "#709BC8",
    "rainbow_violet": "#FAB49C",
    "rainbow_red_shimmer": "#E7877B",
    "rainbow_orange_shimmer": "#DFAA61",
    "rainbow_yellow_shimmer": "#FFD57A",
    "rainbow_green_shimmer": "#89DEBE",
    "rainbow_blue_shimmer": "#70B5B9",
    "rainbow_indigo_shimmer": "#8DB6E2",
    "rainbow_violet_shimmer": "#F5C5B4"
  }
}
plugin/settings/paris-guimard.jsonmerged into ~/.claude/settings.json by /subway-seat:setup
{
  "theme": "custom:subway-seat:paris-guimard",
  "statusLine": {
    "type": "command",
    "command": "${CLAUDE_PLUGIN_DATA}/subway-seat-statusline",
    "padding": 0,
    "hideVimModeIndicator": true
  },
  "spinnerVerbs": {
    "mode": "replace",
    "verbs": [
      "Reading the plan",
      "Waiting for the correspondance",
      "Changing at Chatelet",
      "Pushing through the portillon",
      "Riding on rubber tyres",
      "Counting the stations",
      "Following the ironwork",
      "Sitting on the strapontin",
      "Watching the doors",
      "Waiting on the quai",
      "Stamping the ticket",
      "Admiring the faience",
      "Descending to the platform",
      "Going towards La Defense",
      "Letting the train pass",
      "Taking the long corridor",
      "Passing Bastille",
      "Reading the enamel plate",
      "Listening for the chime",
      "Holding the rail",
      "Crossing under the river",
      "Checking the next departure",
      "Riding the last one",
      "Counting the arches",
      "Following the green paint",
      "Walking to the exit",
      "Standing at the front",
      "Waiting out the interval",
      "Coming up into daylight",
      "Terminus"
    ]
  },
  "spinnerTipsOverride": {
    "tipsFile": "${CLAUDE_PLUGIN_DATA}/tips.json",
    "label": "Next stop"
  }
}
themes/paris-catacombes.jsonsave as ~/.claude/themes/paris-catacombes.json
{
  "name": "Paris Catacombes",
  "base": "dark",
  "overrides": {
    "claude": "#CA9245",
    "claudeShimmer": "#DFAA61",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#709BC8",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#8DB6E2",
    "text": "#D4DDD7",
    "inverseText": "#0A100D",
    "inactive": "#8C9A92",
    "inactiveShimmer": "#A5B1AA",
    "subtle": "#54655C",
    "suggestion": "#F1BF4B",
    "permission": "#F1BF4B",
    "permissionShimmer": "#FFD57A",
    "remember": "#549B9F",
    "background": "#549B9F",
    "success": "#70CAA9",
    "error": "#E7877B",
    "warning": "#F1BF4B",
    "warningShimmer": "#FFD57A",
    "merged": "#FAB49C",
    "promptBorder": "#54655C",
    "promptBorderShimmer": "#708178",
    "planMode": "#549B9F",
    "autoAccept": "#FAB49C",
    "autoAcceptShimmer": "#F4C5B3",
    "skill": "#FAB49C",
    "bashBorder": "#F1BF4B",
    "ide": "#709BC8",
    "professionalBlue": "#709BC8",
    "chromeYellow": "#F1BF4B",
    "fastMode": "#DFAA61",
    "fastModeShimmer": "#FFD57A",
    "effortUltra": "#FFD57A",
    "diffAdded": "#20392F",
    "diffRemoved": "#3B2621",
    "diffAddedDimmed": "#182A23",
    "diffRemovedDimmed": "#2A1F1A",
    "diffAddedWord": "#2D4F42",
    "diffRemovedWord": "#56322C",
    "userMessageBackground": "#1A2921",
    "userMessageBackgroundHover": "#24342C",
    "bashMessageBackgroundColor": "#282E1E",
    "memoryBackgroundColor": "#1A2D29",
    "composerSidebarBackground": "#0D1711",
    "selectionBg": "#31433A",
    "rate_limit_fill": "#CA9245",
    "rate_limit_empty": "#24342C",
    "briefLabelYou": "#F1BF4B",
    "briefLabelClaude": "#CA9245",
    "clawd_body": "#CA9245",
    "clawd_background": "#0A100D",
    "red_FOR_SUBAGENTS_ONLY": "#E7877B",
    "blue_FOR_SUBAGENTS_ONLY": "#709BC8",
    "green_FOR_SUBAGENTS_ONLY": "#70CAA9",
    "yellow_FOR_SUBAGENTS_ONLY": "#F1BF4B",
    "purple_FOR_SUBAGENTS_ONLY": "#BA9EAE",
    "orange_FOR_SUBAGENTS_ONLY": "#CA9245",
    "pink_FOR_SUBAGENTS_ONLY": "#FAB49C",
    "cyan_FOR_SUBAGENTS_ONLY": "#549B9F",
    "rainbow_red": "#C7665B",
    "rainbow_orange": "#CA9245",
    "rainbow_yellow": "#F1BF4B",
    "rainbow_green": "#70CAA9",
    "rainbow_blue": "#549B9F",
    "rainbow_indigo": "#709BC8",
    "rainbow_violet": "#FAB49C",
    "rainbow_red_shimmer": "#E7877B",
    "rainbow_orange_shimmer": "#DFAA61",
    "rainbow_yellow_shimmer": "#FFD57A",
    "rainbow_green_shimmer": "#89DEBE",
    "rainbow_blue_shimmer": "#70B5B9",
    "rainbow_indigo_shimmer": "#8DB6E2",
    "rainbow_violet_shimmer": "#F4C5B3"
  }
}
plugin/themes/paris-catacombes.json
{
  "name": "Paris Catacombes",
  "base": "dark",
  "overrides": {
    "claude": "#CA9245",
    "claudeShimmer": "#DFAA61",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#709BC8",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#8DB6E2",
    "text": "#D4DDD7",
    "inverseText": "#0A100D",
    "inactive": "#8C9A92",
    "inactiveShimmer": "#A5B1AA",
    "subtle": "#54655C",
    "suggestion": "#F1BF4B",
    "permission": "#F1BF4B",
    "permissionShimmer": "#FFD57A",
    "remember": "#549B9F",
    "background": "#549B9F",
    "success": "#70CAA9",
    "error": "#E7877B",
    "warning": "#F1BF4B",
    "warningShimmer": "#FFD57A",
    "merged": "#FAB49C",
    "promptBorder": "#54655C",
    "promptBorderShimmer": "#708178",
    "planMode": "#549B9F",
    "autoAccept": "#FAB49C",
    "autoAcceptShimmer": "#F4C5B3",
    "skill": "#FAB49C",
    "bashBorder": "#F1BF4B",
    "ide": "#709BC8",
    "professionalBlue": "#709BC8",
    "chromeYellow": "#F1BF4B",
    "fastMode": "#DFAA61",
    "fastModeShimmer": "#FFD57A",
    "effortUltra": "#FFD57A",
    "diffAdded": "#20392F",
    "diffRemoved": "#3B2621",
    "diffAddedDimmed": "#182A23",
    "diffRemovedDimmed": "#2A1F1A",
    "diffAddedWord": "#2D4F42",
    "diffRemovedWord": "#56322C",
    "userMessageBackground": "#1A2921",
    "userMessageBackgroundHover": "#24342C",
    "bashMessageBackgroundColor": "#282E1E",
    "memoryBackgroundColor": "#1A2D29",
    "composerSidebarBackground": "#0D1711",
    "selectionBg": "#31433A",
    "rate_limit_fill": "#CA9245",
    "rate_limit_empty": "#24342C",
    "briefLabelYou": "#F1BF4B",
    "briefLabelClaude": "#CA9245",
    "clawd_body": "#CA9245",
    "clawd_background": "#0A100D",
    "red_FOR_SUBAGENTS_ONLY": "#E7877B",
    "blue_FOR_SUBAGENTS_ONLY": "#709BC8",
    "green_FOR_SUBAGENTS_ONLY": "#70CAA9",
    "yellow_FOR_SUBAGENTS_ONLY": "#F1BF4B",
    "purple_FOR_SUBAGENTS_ONLY": "#BA9EAE",
    "orange_FOR_SUBAGENTS_ONLY": "#CA9245",
    "pink_FOR_SUBAGENTS_ONLY": "#FAB49C",
    "cyan_FOR_SUBAGENTS_ONLY": "#549B9F",
    "rainbow_red": "#C7665B",
    "rainbow_orange": "#CA9245",
    "rainbow_yellow": "#F1BF4B",
    "rainbow_green": "#70CAA9",
    "rainbow_blue": "#549B9F",
    "rainbow_indigo": "#709BC8",
    "rainbow_violet": "#FAB49C",
    "rainbow_red_shimmer": "#E7877B",
    "rainbow_orange_shimmer": "#DFAA61",
    "rainbow_yellow_shimmer": "#FFD57A",
    "rainbow_green_shimmer": "#89DEBE",
    "rainbow_blue_shimmer": "#70B5B9",
    "rainbow_indigo_shimmer": "#8DB6E2",
    "rainbow_violet_shimmer": "#F4C5B3"
  }
}
themes/paris-catacombes-terminal.jsonsave as ~/.claude/themes/paris-catacombes-terminal.json
{
  "name": "Paris Catacombes (terminal colors)",
  "base": "dark-ansi",
  "overrides": {
    "claude": "#CA9245",
    "claudeShimmer": "#DFAA61",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#709BC8",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#8DB6E2",
    "text": "#D4DDD7",
    "inverseText": "#0A100D",
    "inactive": "#8C9A92",
    "inactiveShimmer": "#A5B1AA",
    "subtle": "#54655C",
    "suggestion": "#F1BF4B",
    "permission": "#F1BF4B",
    "permissionShimmer": "#FFD57A",
    "remember": "#549B9F",
    "background": "#549B9F",
    "success": "#70CAA9",
    "error": "#E7877B",
    "warning": "#F1BF4B",
    "warningShimmer": "#FFD57A",
    "merged": "#FAB49C",
    "promptBorder": "#54655C",
    "promptBorderShimmer": "#708178",
    "planMode": "#549B9F",
    "autoAccept": "#FAB49C",
    "autoAcceptShimmer": "#F4C5B3",
    "skill": "#FAB49C",
    "bashBorder": "#F1BF4B",
    "ide": "#709BC8",
    "professionalBlue": "#709BC8",
    "chromeYellow": "#F1BF4B",
    "fastMode": "#DFAA61",
    "fastModeShimmer": "#FFD57A",
    "effortUltra": "#FFD57A",
    "diffAdded": "ansi256(236)",
    "diffRemoved": "ansi256(52)",
    "diffAddedDimmed": "ansi256(235)",
    "diffRemovedDimmed": "ansi256(52)",
    "diffAddedWord": "ansi256(238)",
    "diffRemovedWord": "ansi256(88)",
    "userMessageBackground": "#1A2921",
    "userMessageBackgroundHover": "#24342C",
    "bashMessageBackgroundColor": "#282E1E",
    "memoryBackgroundColor": "#1A2D29",
    "composerSidebarBackground": "#0D1711",
    "selectionBg": "#31433A",
    "rate_limit_fill": "#CA9245",
    "rate_limit_empty": "#24342C",
    "briefLabelYou": "#F1BF4B",
    "briefLabelClaude": "#CA9245",
    "clawd_body": "#CA9245",
    "clawd_background": "#0A100D",
    "red_FOR_SUBAGENTS_ONLY": "#E7877B",
    "blue_FOR_SUBAGENTS_ONLY": "#709BC8",
    "green_FOR_SUBAGENTS_ONLY": "#70CAA9",
    "yellow_FOR_SUBAGENTS_ONLY": "#F1BF4B",
    "purple_FOR_SUBAGENTS_ONLY": "#BA9EAE",
    "orange_FOR_SUBAGENTS_ONLY": "#CA9245",
    "pink_FOR_SUBAGENTS_ONLY": "#FAB49C",
    "cyan_FOR_SUBAGENTS_ONLY": "#549B9F",
    "rainbow_red": "#C7665B",
    "rainbow_orange": "#CA9245",
    "rainbow_yellow": "#F1BF4B",
    "rainbow_green": "#70CAA9",
    "rainbow_blue": "#549B9F",
    "rainbow_indigo": "#709BC8",
    "rainbow_violet": "#FAB49C",
    "rainbow_red_shimmer": "#E7877B",
    "rainbow_orange_shimmer": "#DFAA61",
    "rainbow_yellow_shimmer": "#FFD57A",
    "rainbow_green_shimmer": "#89DEBE",
    "rainbow_blue_shimmer": "#70B5B9",
    "rainbow_indigo_shimmer": "#8DB6E2",
    "rainbow_violet_shimmer": "#F4C5B3"
  }
}
plugin/themes/paris-catacombes-terminal.json
{
  "name": "Paris Catacombes (terminal colors)",
  "base": "dark-ansi",
  "overrides": {
    "claude": "#CA9245",
    "claudeShimmer": "#DFAA61",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#709BC8",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#8DB6E2",
    "text": "#D4DDD7",
    "inverseText": "#0A100D",
    "inactive": "#8C9A92",
    "inactiveShimmer": "#A5B1AA",
    "subtle": "#54655C",
    "suggestion": "#F1BF4B",
    "permission": "#F1BF4B",
    "permissionShimmer": "#FFD57A",
    "remember": "#549B9F",
    "background": "#549B9F",
    "success": "#70CAA9",
    "error": "#E7877B",
    "warning": "#F1BF4B",
    "warningShimmer": "#FFD57A",
    "merged": "#FAB49C",
    "promptBorder": "#54655C",
    "promptBorderShimmer": "#708178",
    "planMode": "#549B9F",
    "autoAccept": "#FAB49C",
    "autoAcceptShimmer": "#F4C5B3",
    "skill": "#FAB49C",
    "bashBorder": "#F1BF4B",
    "ide": "#709BC8",
    "professionalBlue": "#709BC8",
    "chromeYellow": "#F1BF4B",
    "fastMode": "#DFAA61",
    "fastModeShimmer": "#FFD57A",
    "effortUltra": "#FFD57A",
    "diffAdded": "ansi256(236)",
    "diffRemoved": "ansi256(52)",
    "diffAddedDimmed": "ansi256(235)",
    "diffRemovedDimmed": "ansi256(52)",
    "diffAddedWord": "ansi256(238)",
    "diffRemovedWord": "ansi256(88)",
    "userMessageBackground": "#1A2921",
    "userMessageBackgroundHover": "#24342C",
    "bashMessageBackgroundColor": "#282E1E",
    "memoryBackgroundColor": "#1A2D29",
    "composerSidebarBackground": "#0D1711",
    "selectionBg": "#31433A",
    "rate_limit_fill": "#CA9245",
    "rate_limit_empty": "#24342C",
    "briefLabelYou": "#F1BF4B",
    "briefLabelClaude": "#CA9245",
    "clawd_body": "#CA9245",
    "clawd_background": "#0A100D",
    "red_FOR_SUBAGENTS_ONLY": "#E7877B",
    "blue_FOR_SUBAGENTS_ONLY": "#709BC8",
    "green_FOR_SUBAGENTS_ONLY": "#70CAA9",
    "yellow_FOR_SUBAGENTS_ONLY": "#F1BF4B",
    "purple_FOR_SUBAGENTS_ONLY": "#BA9EAE",
    "orange_FOR_SUBAGENTS_ONLY": "#CA9245",
    "pink_FOR_SUBAGENTS_ONLY": "#FAB49C",
    "cyan_FOR_SUBAGENTS_ONLY": "#549B9F",
    "rainbow_red": "#C7665B",
    "rainbow_orange": "#CA9245",
    "rainbow_yellow": "#F1BF4B",
    "rainbow_green": "#70CAA9",
    "rainbow_blue": "#549B9F",
    "rainbow_indigo": "#709BC8",
    "rainbow_violet": "#FAB49C",
    "rainbow_red_shimmer": "#E7877B",
    "rainbow_orange_shimmer": "#DFAA61",
    "rainbow_yellow_shimmer": "#FFD57A",
    "rainbow_green_shimmer": "#89DEBE",
    "rainbow_blue_shimmer": "#70B5B9",
    "rainbow_indigo_shimmer": "#8DB6E2",
    "rainbow_violet_shimmer": "#F4C5B3"
  }
}
plugin/settings/paris-catacombes.jsonmerged into ~/.claude/settings.json by /subway-seat:setup
{
  "theme": "custom:subway-seat:paris-catacombes",
  "statusLine": {
    "type": "command",
    "command": "${CLAUDE_PLUGIN_DATA}/subway-seat-statusline",
    "padding": 0,
    "hideVimModeIndicator": true
  },
  "spinnerVerbs": {
    "mode": "replace",
    "verbs": [
      "Reading the plan",
      "Waiting for the correspondance",
      "Changing at Chatelet",
      "Pushing through the portillon",
      "Riding on rubber tyres",
      "Counting the stations",
      "Following the ironwork",
      "Sitting on the strapontin",
      "Watching the doors",
      "Waiting on the quai",
      "Stamping the ticket",
      "Admiring the faience",
      "Descending to the platform",
      "Going towards La Defense",
      "Letting the train pass",
      "Taking the long corridor",
      "Passing Bastille",
      "Reading the enamel plate",
      "Listening for the chime",
      "Holding the rail",
      "Crossing under the river",
      "Checking the next departure",
      "Riding the last one",
      "Counting the arches",
      "Following the green paint",
      "Walking to the exit",
      "Standing at the front",
      "Waiting out the interval",
      "Coming up into daylight",
      "Terminus"
    ]
  },
  "spinnerTipsOverride": {
    "tipsFile": "${CLAUDE_PLUGIN_DATA}/tips.json",
    "label": "Next stop"
  }
}
themes/paris-carrelage.jsonsave as ~/.claude/themes/paris-carrelage.json
{
  "name": "Paris Carrelage",
  "base": "light",
  "overrides": {
    "claude": "#764C00",
    "claudeShimmer": "#885A00",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#25629B",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#3D75AD",
    "text": "#27342F",
    "inverseText": "#EEF2F1",
    "inactive": "#56645F",
    "inactiveShimmer": "#6C7C76",
    "subtle": "#99ABA6",
    "suggestion": "#916D07",
    "permission": "#916D07",
    "permissionShimmer": "#A07A12",
    "remember": "#006267",
    "background": "#006267",
    "success": "#218366",
    "error": "#AC3B32",
    "warning": "#916D07",
    "warningShimmer": "#A07A12",
    "merged": "#B36B51",
    "promptBorder": "#859792",
    "promptBorderShimmer": "#99ABA6",
    "planMode": "#006267",
    "autoAccept": "#B36B51",
    "autoAcceptShimmer": "#BF8671",
    "skill": "#B36B51",
    "bashBorder": "#916D07",
    "ide": "#25629B",
    "professionalBlue": "#25629B",
    "chromeYellow": "#916D07",
    "fastMode": "#885A00",
    "fastModeShimmer": "#A07A12",
    "effortUltra": "#A07A12",
    "diffAdded": "#C5DFD7",
    "diffRemoved": "#E7D3D2",
    "diffAddedDimmed": "#DBEBE7",
    "diffRemovedDimmed": "#F1E5E4",
    "diffAddedWord": "#A6CDC2",
    "diffRemovedWord": "#D9B9B7",
    "userMessageBackground": "#E1E6E5",
    "userMessageBackgroundHover": "#D5DBDA",
    "bashMessageBackgroundColor": "#E5E5DA",
    "memoryBackgroundColor": "#D1E1E0",
    "composerSidebarBackground": "#E1E6E5",
    "selectionBg": "#B0BFBB",
    "rate_limit_fill": "#764C00",
    "rate_limit_empty": "#B0BFBB",
    "briefLabelYou": "#916D07",
    "briefLabelClaude": "#764C00",
    "clawd_body": "#764C00",
    "clawd_background": "#19221E",
    "red_FOR_SUBAGENTS_ONLY": "#AC3B32",
    "blue_FOR_SUBAGENTS_ONLY": "#25629B",
    "green_FOR_SUBAGENTS_ONLY": "#218366",
    "yellow_FOR_SUBAGENTS_ONLY": "#916D07",
    "purple_FOR_SUBAGENTS_ONLY": "#745870",
    "orange_FOR_SUBAGENTS_ONLY": "#764C00",
    "pink_FOR_SUBAGENTS_ONLY": "#B36B51",
    "cyan_FOR_SUBAGENTS_ONLY": "#006267",
    "rainbow_red": "#88251E",
    "rainbow_orange": "#764C00",
    "rainbow_yellow": "#916D07",
    "rainbow_green": "#218366",
    "rainbow_blue": "#006267",
    "rainbow_indigo": "#25629B",
    "rainbow_violet": "#B36B51",
    "rainbow_red_shimmer": "#AC3B32",
    "rainbow_orange_shimmer": "#885A00",
    "rainbow_yellow_shimmer": "#A07A12",
    "rainbow_green_shimmer": "#278D6E",
    "rainbow_blue_shimmer": "#027479",
    "rainbow_indigo_shimmer": "#3D75AD",
    "rainbow_violet_shimmer": "#BF8671"
  }
}
plugin/themes/paris-carrelage.json
{
  "name": "Paris Carrelage",
  "base": "light",
  "overrides": {
    "claude": "#764C00",
    "claudeShimmer": "#885A00",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#25629B",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#3D75AD",
    "text": "#27342F",
    "inverseText": "#EEF2F1",
    "inactive": "#56645F",
    "inactiveShimmer": "#6C7C76",
    "subtle": "#99ABA6",
    "suggestion": "#916D07",
    "permission": "#916D07",
    "permissionShimmer": "#A07A12",
    "remember": "#006267",
    "background": "#006267",
    "success": "#218366",
    "error": "#AC3B32",
    "warning": "#916D07",
    "warningShimmer": "#A07A12",
    "merged": "#B36B51",
    "promptBorder": "#859792",
    "promptBorderShimmer": "#99ABA6",
    "planMode": "#006267",
    "autoAccept": "#B36B51",
    "autoAcceptShimmer": "#BF8671",
    "skill": "#B36B51",
    "bashBorder": "#916D07",
    "ide": "#25629B",
    "professionalBlue": "#25629B",
    "chromeYellow": "#916D07",
    "fastMode": "#885A00",
    "fastModeShimmer": "#A07A12",
    "effortUltra": "#A07A12",
    "diffAdded": "#C5DFD7",
    "diffRemoved": "#E7D3D2",
    "diffAddedDimmed": "#DBEBE7",
    "diffRemovedDimmed": "#F1E5E4",
    "diffAddedWord": "#A6CDC2",
    "diffRemovedWord": "#D9B9B7",
    "userMessageBackground": "#E1E6E5",
    "userMessageBackgroundHover": "#D5DBDA",
    "bashMessageBackgroundColor": "#E5E5DA",
    "memoryBackgroundColor": "#D1E1E0",
    "composerSidebarBackground": "#E1E6E5",
    "selectionBg": "#B0BFBB",
    "rate_limit_fill": "#764C00",
    "rate_limit_empty": "#B0BFBB",
    "briefLabelYou": "#916D07",
    "briefLabelClaude": "#764C00",
    "clawd_body": "#764C00",
    "clawd_background": "#19221E",
    "red_FOR_SUBAGENTS_ONLY": "#AC3B32",
    "blue_FOR_SUBAGENTS_ONLY": "#25629B",
    "green_FOR_SUBAGENTS_ONLY": "#218366",
    "yellow_FOR_SUBAGENTS_ONLY": "#916D07",
    "purple_FOR_SUBAGENTS_ONLY": "#745870",
    "orange_FOR_SUBAGENTS_ONLY": "#764C00",
    "pink_FOR_SUBAGENTS_ONLY": "#B36B51",
    "cyan_FOR_SUBAGENTS_ONLY": "#006267",
    "rainbow_red": "#88251E",
    "rainbow_orange": "#764C00",
    "rainbow_yellow": "#916D07",
    "rainbow_green": "#218366",
    "rainbow_blue": "#006267",
    "rainbow_indigo": "#25629B",
    "rainbow_violet": "#B36B51",
    "rainbow_red_shimmer": "#AC3B32",
    "rainbow_orange_shimmer": "#885A00",
    "rainbow_yellow_shimmer": "#A07A12",
    "rainbow_green_shimmer": "#278D6E",
    "rainbow_blue_shimmer": "#027479",
    "rainbow_indigo_shimmer": "#3D75AD",
    "rainbow_violet_shimmer": "#BF8671"
  }
}
themes/paris-carrelage-terminal.jsonsave as ~/.claude/themes/paris-carrelage-terminal.json
{
  "name": "Paris Carrelage (terminal colors)",
  "base": "light-ansi",
  "overrides": {
    "claude": "#764C00",
    "claudeShimmer": "#885A00",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#25629B",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#3D75AD",
    "text": "#27342F",
    "inverseText": "#EEF2F1",
    "inactive": "#56645F",
    "inactiveShimmer": "#6C7C76",
    "subtle": "#99ABA6",
    "suggestion": "#916D07",
    "permission": "#916D07",
    "permissionShimmer": "#A07A12",
    "remember": "#006267",
    "background": "#006267",
    "success": "#218366",
    "error": "#AC3B32",
    "warning": "#916D07",
    "warningShimmer": "#A07A12",
    "merged": "#B36B51",
    "promptBorder": "#859792",
    "promptBorderShimmer": "#99ABA6",
    "planMode": "#006267",
    "autoAccept": "#B36B51",
    "autoAcceptShimmer": "#BF8671",
    "skill": "#B36B51",
    "bashBorder": "#916D07",
    "ide": "#25629B",
    "professionalBlue": "#25629B",
    "chromeYellow": "#916D07",
    "fastMode": "#885A00",
    "fastModeShimmer": "#A07A12",
    "effortUltra": "#A07A12",
    "diffAdded": "ansi256(158)",
    "diffRemoved": "ansi256(224)",
    "diffAddedDimmed": "ansi256(195)",
    "diffRemovedDimmed": "ansi256(224)",
    "diffAddedWord": "ansi256(152)",
    "diffRemovedWord": "ansi256(181)",
    "userMessageBackground": "#E1E6E5",
    "userMessageBackgroundHover": "#D5DBDA",
    "bashMessageBackgroundColor": "#E5E5DA",
    "memoryBackgroundColor": "#D1E1E0",
    "composerSidebarBackground": "#E1E6E5",
    "selectionBg": "#B0BFBB",
    "rate_limit_fill": "#764C00",
    "rate_limit_empty": "#B0BFBB",
    "briefLabelYou": "#916D07",
    "briefLabelClaude": "#764C00",
    "clawd_body": "#764C00",
    "clawd_background": "#19221E",
    "red_FOR_SUBAGENTS_ONLY": "#AC3B32",
    "blue_FOR_SUBAGENTS_ONLY": "#25629B",
    "green_FOR_SUBAGENTS_ONLY": "#218366",
    "yellow_FOR_SUBAGENTS_ONLY": "#916D07",
    "purple_FOR_SUBAGENTS_ONLY": "#745870",
    "orange_FOR_SUBAGENTS_ONLY": "#764C00",
    "pink_FOR_SUBAGENTS_ONLY": "#B36B51",
    "cyan_FOR_SUBAGENTS_ONLY": "#006267",
    "rainbow_red": "#88251E",
    "rainbow_orange": "#764C00",
    "rainbow_yellow": "#916D07",
    "rainbow_green": "#218366",
    "rainbow_blue": "#006267",
    "rainbow_indigo": "#25629B",
    "rainbow_violet": "#B36B51",
    "rainbow_red_shimmer": "#AC3B32",
    "rainbow_orange_shimmer": "#885A00",
    "rainbow_yellow_shimmer": "#A07A12",
    "rainbow_green_shimmer": "#278D6E",
    "rainbow_blue_shimmer": "#027479",
    "rainbow_indigo_shimmer": "#3D75AD",
    "rainbow_violet_shimmer": "#BF8671"
  }
}
plugin/themes/paris-carrelage-terminal.json
{
  "name": "Paris Carrelage (terminal colors)",
  "base": "light-ansi",
  "overrides": {
    "claude": "#764C00",
    "claudeShimmer": "#885A00",
    "claudeBlue_FOR_SYSTEM_SPINNER": "#25629B",
    "claudeBlueShimmer_FOR_SYSTEM_SPINNER": "#3D75AD",
    "text": "#27342F",
    "inverseText": "#EEF2F1",
    "inactive": "#56645F",
    "inactiveShimmer": "#6C7C76",
    "subtle": "#99ABA6",
    "suggestion": "#916D07",
    "permission": "#916D07",
    "permissionShimmer": "#A07A12",
    "remember": "#006267",
    "background": "#006267",
    "success": "#218366",
    "error": "#AC3B32",
    "warning": "#916D07",
    "warningShimmer": "#A07A12",
    "merged": "#B36B51",
    "promptBorder": "#859792",
    "promptBorderShimmer": "#99ABA6",
    "planMode": "#006267",
    "autoAccept": "#B36B51",
    "autoAcceptShimmer": "#BF8671",
    "skill": "#B36B51",
    "bashBorder": "#916D07",
    "ide": "#25629B",
    "professionalBlue": "#25629B",
    "chromeYellow": "#916D07",
    "fastMode": "#885A00",
    "fastModeShimmer": "#A07A12",
    "effortUltra": "#A07A12",
    "diffAdded": "ansi256(158)",
    "diffRemoved": "ansi256(224)",
    "diffAddedDimmed": "ansi256(195)",
    "diffRemovedDimmed": "ansi256(224)",
    "diffAddedWord": "ansi256(152)",
    "diffRemovedWord": "ansi256(181)",
    "userMessageBackground": "#E1E6E5",
    "userMessageBackgroundHover": "#D5DBDA",
    "bashMessageBackgroundColor": "#E5E5DA",
    "memoryBackgroundColor": "#D1E1E0",
    "composerSidebarBackground": "#E1E6E5",
    "selectionBg": "#B0BFBB",
    "rate_limit_fill": "#764C00",
    "rate_limit_empty": "#B0BFBB",
    "briefLabelYou": "#916D07",
    "briefLabelClaude": "#764C00",
    "clawd_body": "#764C00",
    "clawd_background": "#19221E",
    "red_FOR_SUBAGENTS_ONLY": "#AC3B32",
    "blue_FOR_SUBAGENTS_ONLY": "#25629B",
    "green_FOR_SUBAGENTS_ONLY": "#218366",
    "yellow_FOR_SUBAGENTS_ONLY": "#916D07",
    "purple_FOR_SUBAGENTS_ONLY": "#745870",
    "orange_FOR_SUBAGENTS_ONLY": "#764C00",
    "pink_FOR_SUBAGENTS_ONLY": "#B36B51",
    "cyan_FOR_SUBAGENTS_ONLY": "#006267",
    "rainbow_red": "#88251E",
    "rainbow_orange": "#764C00",
    "rainbow_yellow": "#916D07",
    "rainbow_green": "#218366",
    "rainbow_blue": "#006267",
    "rainbow_indigo": "#25629B",
    "rainbow_violet": "#B36B51",
    "rainbow_red_shimmer": "#AC3B32",
    "rainbow_orange_shimmer": "#885A00",
    "rainbow_yellow_shimmer": "#A07A12",
    "rainbow_green_shimmer": "#278D6E",
    "rainbow_blue_shimmer": "#027479",
    "rainbow_indigo_shimmer": "#3D75AD",
    "rainbow_violet_shimmer": "#BF8671"
  }
}
plugin/settings/paris-carrelage.jsonmerged into ~/.claude/settings.json by /subway-seat:setup
{
  "theme": "custom:subway-seat:paris-carrelage",
  "statusLine": {
    "type": "command",
    "command": "${CLAUDE_PLUGIN_DATA}/subway-seat-statusline",
    "padding": 0,
    "hideVimModeIndicator": true
  },
  "spinnerVerbs": {
    "mode": "replace",
    "verbs": [
      "Reading the plan",
      "Waiting for the correspondance",
      "Changing at Chatelet",
      "Pushing through the portillon",
      "Riding on rubber tyres",
      "Counting the stations",
      "Following the ironwork",
      "Sitting on the strapontin",
      "Watching the doors",
      "Waiting on the quai",
      "Stamping the ticket",
      "Admiring the faience",
      "Descending to the platform",
      "Going towards La Defense",
      "Letting the train pass",
      "Taking the long corridor",
      "Passing Bastille",
      "Reading the enamel plate",
      "Listening for the chime",
      "Holding the rail",
      "Crossing under the river",
      "Checking the next departure",
      "Riding the last one",
      "Counting the arches",
      "Following the green paint",
      "Walking to the exit",
      "Standing at the front",
      "Waiting out the interval",
      "Coming up into daylight",
      "Terminus"
    ]
  },
  "spinnerTipsOverride": {
    "tipsFile": "${CLAUDE_PLUGIN_DATA}/tips.json",
    "label": "Next stop"
  }
}

These are shared by all three flavors.

plugin/.claude-plugin/plugin.json
{
  "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
  "name": "subway-seat",
  "displayName": "Subway Seat",
  "version": "0.3.0",
  "description": "A walnut-brown 1970s NYC subway theme for Claude Code: three flavors, a station-sign status line, subagent rows, 70s spinner verbs and tips, and a relaxed output style.",
  "author": {
    "name": "Oddur Sigurdsson",
    "url": "https://github.com/oddurs"
  },
  "homepage": "https://oddurs.github.io/subway-seat/ports/claude-code",
  "repository": "https://github.com/oddurs/subway-seat",
  "license": "MIT",
  "keywords": [
    "theme",
    "color-scheme",
    "statusline",
    "70s",
    "retro",
    "subway",
    "subway-seat"
  ]
}
plugin/settings.json
{
  "subagentStatusLine": {
    "type": "command",
    "command": "for f in \"${CLAUDE_CONFIG_DIR:-$HOME/.claude}\"/plugins/data/subway-seat-*/subway-seat-subagents; do [ -x \"$f\" ] && exec \"$f\"; done; exit 0"
  }
}
plugin/hooks/hooks.json
{
  "hooks": {
    "SessionStart": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "\"${CLAUDE_PLUGIN_ROOT}/scripts/sync.sh\" \"${CLAUDE_PLUGIN_ROOT}\" \"${CLAUDE_PLUGIN_DATA}\"",
            "timeout": 10
          }
        ]
      }
    ]
  }
}
plugin/scripts/subway-seat-statuslinesave as ~/.claude/subway-seat/subway-seat-statusline
#!/usr/bin/env bash
# Subway Seat — generated from palette.py by build.py. Edit the palette, not this file.
#
# Subway Seat status line for Claude Code: a station sign under the prompt.
#   (O) Opus   ~/Code/project    main !2   load ━━━━──────  42%   $0.84
# Reads Claude Code's status JSON on stdin and needs jq. Segments drop off the
# right end when the terminal is narrow ($COLUMNS, which Claude Code sets).
# SUBWAY_SEAT_FLAVOR=walnut|tunnel|enamel overrides the flavor read from your theme;
# SUBWAY_SEAT_GLYPHS=plain drops the Nerd Font glyphs.

input=$(cat)
if ! command -v jq >/dev/null 2>&1; then
  printf 'Subway Seat: the status line needs jq\n'
  exit 0
fi
settings=
f="${CLAUDE_CONFIG_DIR:-$HOME/.claude}/settings.json"
[ -r "$f" ] && settings=$(<"$f")

# One jq call. Fields are joined with the unit separator (not a tab, which `read`
# would treat as whitespace and collapse), and control characters are stripped.
IFS=$'\037' read -r theme model key letter agent cwd dir pct cost effort rlabel rpct wt wtbranch vim <<EOF
$(jq -r --arg settings "$settings" '
  def clean: tostring | gsub("\\p{Cc}"; "");
  def int: if type == "number" then (. + 0.5 | floor | if . < 0 then 0 else . end) else "" end;
  def cut($n): if length > $n then .[0:$n - 1] + "…" else . end;
  def money: (. * 100 + 0.5 | floor) as $c
    | "\($c / 100 | floor).\($c % 100 | tostring | if length < 2 then "0" + . else . end)";
  def short: (env.HOME // "") as $h
    | (if $h != "" and . == $h then "~"
       elif $h != "" and startswith($h + "/") then "~" + .[($h | length):]
       else . end)
    | (if . != "/" then sub("/+$"; "") else . end)
    | split("/") as $p
    | if ($p | length) > 3 then "…/" + ($p[-2:] | map(cut(24)) | join("/")) else cut(40) end;
  (.model.display_name // .model.id // "Claude" | clean | sub(" *\\([0-9.]+ ?[KkMm] context\\)$"; "")) as $model
  | (.workspace.current_dir // .cwd // "" | clean) as $cwd
  | (.rate_limits // {}) as $rl
  | ([["5h", $rl.five_hour.used_percentage], ["7d", $rl.seven_day.used_percentage]]
     | map(select(.[1] | type == "number")) | max_by(.[1]) // ["", ""]) as $rate
  | [ (($settings | try fromjson catch {}) | .theme // "" | clean),
      $model, ($model | ascii_downcase), ($model | .[0:1] | ascii_upcase), (.agent.name // "" | clean | cut(20)),
      ($cwd | short), $cwd,
      (.context_window.used_percentage | int),
      (if ($rl.five_hour // $rl.seven_day) != null then ""
       elif (.cost.total_cost_usd | type) == "number" then .cost.total_cost_usd | money
       else "" end),
      (.effort.level // "" | clean),
      $rate[0], ($rate[1] | int),
      (.worktree.name // .workspace.git_worktree // "" | clean),
      (.worktree.branch // "" | clean),
      (.vim.mode // "" | clean | ascii_upcase)
    ] | map(tostring) | join("\u001f")' <<<"$input" 2>/dev/null)
EOF

model=${model:-Claude} letter=${letter:-C}

pick_flavor() {
  case ${SUBWAY_SEAT_FLAVOR:-} in walnut | tunnel | enamel) flavor=$SUBWAY_SEAT_FLAVOR; return ;; esac
  flavor=walnut
  case $1 in
    *subway-seat-enamel*) flavor=enamel ;;
    *subway-seat-tunnel*) flavor=tunnel ;;
    *subway-seat*) ;;
    light*) flavor=enamel ;;
    auto)
      case ${COLORFGBG:-} in
        *\;7 | *\;15) flavor=enamel ;;
        *\;*) ;;
        *) case $OSTYPE in darwin*) defaults read -g AppleInterfaceStyle >/dev/null 2>&1 || flavor=enamel ;; esac ;;
      esac ;;
  esac
}
pick_flavor "$theme"

case $flavor in
  tunnel) INK='20;13;7' TEXT='233;216;182' SUB='214;195;160' DIM='170;145;113' FAINT='145;119;89' RAIL='79;57;39' ORANGE='236;127;49' YELLOW='243;191;69' GREEN='173;185;86' SAGE='134;173;149' RED='255;131;115' CLAY='244;168;126' ;;
  enamel) INK='248;239;223' TEXT='62;44;30' SUB='84;64;47' DIM='115;92;68' FAINT='140;114;84' RAIL='186;163;128' ORANGE='160;72;0' YELLOW='151;102;8' GREEN='102;116;15' SAGE='62;113;87' RED='191;66;51' CLAY='132;56;17' ;;
  moquette) INK='18;24;38' TEXT='216;222;234' SUB='193;201;216' DIM='143;154;176' FAINT='115;129;156' RAIL='61;79;114' ORANGE='222;137;70' YELLOW='242;192;63' GREEN='119;197;129' SAGE='84;180;181' RED='254;132;116' CLAY='174;158;220' ;;
  deep) INK='10;14;24' TEXT='212;218;231' SUB='190;198;213' DIM='139;150;172' FAINT='111;124;151' RAIL='48;62;91' ORANGE='222;137;70' YELLOW='242;192;63' GREEN='119;197;129' SAGE='84;180;181' RED='254;132;116' CLAY='174;158;220' ;;
  portland) INK='232;240;255' TEXT='41;48;64' SUB='60;69;87' DIM='85;97;121' FAINT='105;119;148' RAIL='147;167;207' ORANGE='165;67;0' YELLOW='141;108;8' GREEN='13;129;49' SAGE='0;115;118' RED='204;46;37' CLAY='117;95;169' ;;
  guimard) INK='19;26;23' TEXT='217;225;219' SUB='194;203;197' DIM='144;158;150' FAINT='116;133;124' RAIL='62;85;74' ORANGE='202;146;69' YELLOW='241;191;75' GREEN='112;202;169' SAGE='84;155;159' RED='231;135;123' CLAY='250;180;156' ;;
  catacombes) INK='10;16;13' TEXT='212;221;215' SUB='191;200;194' DIM='140;154;146' FAINT='112;129;120' RAIL='49;67;58' ORANGE='202;146;69' YELLOW='241;191;75' GREEN='112;202;169' SAGE='84;155;159' RED='231;135;123' CLAY='250;180;156' ;;
  carrelage) INK='238;242;241' TEXT='39;52;47' SUB='59;71;66' DIM='86;100;95' FAINT='108;124;118' RAIL='153;171;166' ORANGE='118;76;0' YELLOW='145;109;7' GREEN='33;131;102' SAGE='0;98;103' RED='172;59;50' CLAY='179;107;81' ;;
  *) INK='32;22;14' TEXT='237;220;188' SUB='217;198;163' DIM='174;149;117' FAINT='150;123;92' RAIL='99;73;50' ORANGE='236;127;49' YELLOW='243;191;69' GREEN='173;185;86' SAGE='134;173;149' RED='255;131;115' CLAY='244;168;126' ;;
esac

F=$'\033[38;2;' G=$'\033[48;2;' R=$'\033[0m'  # "$F${TEXT}m" is a foreground, "$G${TEXT}m" a background
B=$'\033[1m'
nerd=1; [ "${SUBWAY_SEAT_GLYPHS:-}" = plain ] && nerd=0
CAP_L=$'\xee\x82\xb6' CAP_R=$'\xee\x82\xb4' BRANCH=$'\xee\x82\xa0'  # Nerd Font U+E0B6 U+E0B4 U+E0A0

# Terminal cells in a string: count bytes, less UTF-8 continuation bytes.
w() { local LC_ALL=C; local s=${1//[$'\200'-$'\277']/}; W=${#s}; }

# Segments go left to right until the next one doesn't fit.
cols=${COLUMNS:-0}
case $cols in '' | *[!0-9]*) cols=0 ;; esac
room=100000; [ "$cols" -gt 0 ] && room=$((cols - 4))
out='' used=0 full=''
add() { # $1 = plain text (for measuring), $2 = colored text
  [ -n "$full" ] && return 1
  w "$1"
  local need=$W
  [ -n "$out" ] && need=$((W + 3))
  if [ $((used + need)) -gt "$room" ]; then full=1; return 1; fi
  [ -n "$out" ] && out+='   '
  out+=$2 used=$((used + need))
}

meter() { # $1 = percent, $2 = cells, $3 = color of the filled part
  local fill=$((($1 * $2 + 50) / 100)) i
  [ $fill -gt "$2" ] && fill=$2
  M="$F${3}m"; for ((i = 0; i < fill; i++)); do M+="━"; done
  M+="$F${RAIL}m"; for ((i = fill; i < $2; i++)); do M+="─"; done
  M+=$R; MP=''; for ((i = 0; i < $2; i++)); do MP+="-"; done
}
level() { if [ "$1" -ge 80 ]; then L=$RED; elif [ "$1" -ge 50 ]; then L=$YELLOW; else L=$GREEN; fi; }

# The model as a route bullet: a colored circle with one bold letter.
case $key in
  *opus*) line=$ORANGE ;; *sonnet*) line=$YELLOW ;; *haiku*) line=$GREEN ;; *fable*) line=$SAGE ;; *) line=$CLAY ;;
esac
if [ $nerd = 1 ]; then
  bullet="$F${line}m$CAP_L$R$G${line}m$F${INK}m$B$letter$R$F${line}m$CAP_R$R"
else
  bullet="$G${line}m$F${INK}m$B $letter $R"
fi
chip='' chipw=''
case $vim in
  N*) chip=$YELLOW ;; I*) chip=$GREEN ;; V*) chip=$CLAY ;; R*) chip=$RED ;; ?*) chip=$SAGE ;;
esac
[ -n "$chip" ] && chip="$G${chip}m$F${INK}m$B ${vim:0:1} $R " chipw='    '
as=''; [ -n "$agent" ] && as=" $F${DIM}mas $agent$R"
add "${chipw}xxx $model${agent:+ as $agent}" "$chip$bullet $F${TEXT}m$model$R$as" ||
  { out="$chip$bullet"; full=1; }

# Where we are.
[ -n "$cwd" ] && add "$cwd" "$F${SUB}m$cwd$R"

# Which line: the git branch (or @commit when detached) and a dirty count. In a
# worktree the branch gets a transfer mark instead of the branch glyph.
if [ -n "$dir" ] && [ -z "$full" ]; then
  IFS=$'\037' read -r head oid dirty <<EOF
$(git --no-optional-locks -C "$dir" status --porcelain=v2 --branch 2>/dev/null |
    awk '/^# branch\.head /{h=$3} /^# branch\.oid /{o=$3} !/^#/{n++} END{if (h != "") printf "%s\037%s\037%d", h, o, n}')
EOF
  [ -z "$head" ] && head=$wtbranch
  [ "$head" = "(detached)" ] && head="@${oid:0:7}"
  if [ -n "$head" ]; then

Showing 150 of 179 lines.

plugin/scripts/subway-seat-subagentssave as ~/.claude/subway-seat/subway-seat-subagents
#!/usr/bin/env bash
# Subway Seat — generated from palette.py by build.py. Edit the palette, not this file.
#
# Subway Seat rows for Claude Code's subagent panel: a route bullet colored by
# state, the name, what it's doing, and how full its context is.
# Reads {columns, tasks:[…]} on stdin and prints one {"id","content"} line per task.
# Needs jq; without it Claude Code keeps its own rows.

input=$(cat)
command -v jq >/dev/null 2>&1 || exit 0

pick_flavor() {
  case ${SUBWAY_SEAT_FLAVOR:-} in walnut | tunnel | enamel) flavor=$SUBWAY_SEAT_FLAVOR; return ;; esac
  flavor=walnut
  case $1 in
    *subway-seat-enamel*) flavor=enamel ;;
    *subway-seat-tunnel*) flavor=tunnel ;;
    *subway-seat*) ;;
    light*) flavor=enamel ;;
    auto)
      case ${COLORFGBG:-} in
        *\;7 | *\;15) flavor=enamel ;;
        *\;*) ;;
        *) case $OSTYPE in darwin*) defaults read -g AppleInterfaceStyle >/dev/null 2>&1 || flavor=enamel ;; esac ;;
      esac ;;
  esac
}
pick_flavor "$(jq -r '.theme // empty' "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/settings.json" 2>/dev/null)"

case $flavor in
  tunnel) INK='20;13;7' TEXT='233;216;182' DIM='170;145;113' FAINT='145;119;89' RAIL='79;57;39' YELLOW='243;191;69' GREEN='173;185;86' SAGE='134;173;149' RED='255;131;115' ;;
  enamel) INK='248;239;223' TEXT='62;44;30' DIM='115;92;68' FAINT='140;114;84' RAIL='186;163;128' YELLOW='151;102;8' GREEN='102;116;15' SAGE='62;113;87' RED='191;66;51' ;;
  moquette) INK='18;24;38' TEXT='216;222;234' DIM='143;154;176' FAINT='115;129;156' RAIL='61;79;114' YELLOW='242;192;63' GREEN='119;197;129' SAGE='84;180;181' RED='254;132;116' ;;
  deep) INK='10;14;24' TEXT='212;218;231' DIM='139;150;172' FAINT='111;124;151' RAIL='48;62;91' YELLOW='242;192;63' GREEN='119;197;129' SAGE='84;180;181' RED='254;132;116' ;;
  portland) INK='232;240;255' TEXT='41;48;64' DIM='85;97;121' FAINT='105;119;148' RAIL='147;167;207' YELLOW='141;108;8' GREEN='13;129;49' SAGE='0;115;118' RED='204;46;37' ;;
  guimard) INK='19;26;23' TEXT='217;225;219' DIM='144;158;150' FAINT='116;133;124' RAIL='62;85;74' YELLOW='241;191;75' GREEN='112;202;169' SAGE='84;155;159' RED='231;135;123' ;;
  catacombes) INK='10;16;13' TEXT='212;221;215' DIM='140;154;146' FAINT='112;129;120' RAIL='49;67;58' YELLOW='241;191;75' GREEN='112;202;169' SAGE='84;155;159' RED='231;135;123' ;;
  carrelage) INK='238;242;241' TEXT='39;52;47' DIM='86;100;95' FAINT='108;124;118' RAIL='153;171;166' YELLOW='145;109;7' GREEN='33;131;102' SAGE='0;98;103' RED='172;59;50' ;;
  *) INK='32;22;14' TEXT='237;220;188' DIM='174;149;117' FAINT='150;123;92' RAIL='99;73;50' YELLOW='243;191;69' GREEN='173;185;86' SAGE='134;173;149' RED='255;131;115' ;;
esac

# Route bullets: round with a Nerd Font, square with SUBWAY_SEAT_GLYPHS=plain.
caps=$'\xee\x82\xb6\037\xee\x82\xb4'  # U+E0B6, U+E0B4
[ "${SUBWAY_SEAT_GLYPHS:-}" = plain ] && caps=$'\037'

jq -c --arg ink "$INK" --arg text "$TEXT" --arg dim "$DIM" --arg faint "$FAINT" --arg rail "$RAIL" \
  --arg run "$YELLOW" --arg ok "$GREEN" --arg bad "$RED" --arg idle "$SAGE" --arg caps "$caps" '
  def fg($c): "\u001b[38;2;\($c)m";
  def bg($c): "\u001b[48;2;\($c)m";
  def reset: "\u001b[0m";
  def clean: tostring | gsub("\\p{Cc}"; "");
  def cut($n): if length > $n then .[0:$n - 1] + "…" else . end;
  def k($n): if $n >= 1000000 then "\(($n / 100000 | floor) / 10)M"
             elif $n >= 1000 then "\(($n / 100 | floor) / 10)k" else "\($n | floor)" end;
  def kind: {local_agent: "agent", local_bash: "shell", remote_agent: "remote agent",
             local_workflow: "workflow", in_process_teammate: "teammate"}[.] // .;
  (.columns // 80) as $cols
  | (.tasks // [])[]
  | select(.id != null)
  | ((.status // "") | ascii_downcase) as $s
  | (if ($s | test("fail|error")) then $bad
     elif ($s | test("kill|cancel|stop")) then $faint
     elif ($s | test("complete|done|success|finish")) then $ok
     elif ($s | test("run|progress|active|work")) then $run
     else $idle end) as $line
  | ((.name // .description // (.type // "agent" | kind)) | clean) as $full
  | (.tokenCount // 0) as $tok
  | (if (.contextWindowSize // 0) > 0
     then ($tok * 5 / .contextWindowSize + 0.5 | floor | if . > 5 then 5 elif . < 0 then 0 else . end)
     else null end) as $cells
  | k($tok) as $toks
  | ($cols - 4 - (if $cells != null then 7 else 0 end) - 2 - ($toks | length)) as $avail
  | ((.label // .description // "") | clean | if . == $full then "" else . end) as $doing
  # the name gets the whole row when there is nothing else to say, else up to 28 columns
  | (if $doing == "" or ($full | length) + 2 + ($doing | length) <= $avail then $avail else [28, $avail] | min end
     | if . < 4 then 4 else . end) as $fit
  | ($full | cut($fit)) as $name
  | ($name | .[0:1] | ascii_upcase) as $letter
  | ($avail - ($name | length) - 2) as $room
  | ($doing | if $room < 8 then "" else cut($room) end) as $what
  | {
      id,
      content: (
        (($caps | split("\u001f")) as [$l, $r]
         | if $l == "" then bg($line) + fg($ink) + " \($letter) " + reset
           else fg($line) + $l + bg($line) + fg($ink) + "\u001b[1m" + $letter + reset + fg($line) + $r + reset end)
        + " "
        + fg($text) + $name + reset
        + (if $what != "" then "  " + fg($dim) + $what + reset else "" end)
        + (if $cells != null then "  " + fg($line) + ("━" * $cells) + fg($rail) + ("─" * (5 - $cells)) + reset else "" end)
        + "  " + fg($faint) + $toks + reset
      )
    }
' <<<"$input"
plugin/scripts/sync.sh
#!/bin/sh
# Subway Seat — generated from palette.py by build.py. Edit the palette, not this file.
#
# Copies the status line scripts and tips into the plugin's data folder, which
# keeps its path across plugin updates. Runs at session start; prints nothing,
# since whatever a SessionStart hook prints goes into Claude's context.
root=$1 data=$2
[ -n "$root" ] && [ -n "$data" ] || exit 0
mkdir -p "$data" 2>/dev/null || exit 0
for name in subway-seat-statusline subway-seat-subagents tips.json; do
  src="$root/scripts/$name"
  [ "$name" = tips.json ] && src="$root/tips.json"
  [ -f "$src" ] || continue
  cmp -s "$src" "$data/$name" 2>/dev/null && continue
  rm -f "$data/$name" && cp "$src" "$data/$name" 2>/dev/null
done
chmod +x "$data"/subway-seat-statusline "$data"/subway-seat-subagents 2>/dev/null
exit 0
plugin/scripts/setup.sh
#!/usr/bin/env bash
# Subway Seat — generated from palette.py by build.py. Edit the palette, not this file.
#
# Merges Subway Seat into Claude Code's user settings, or takes it out again.
#   setup.sh check
#   setup.sh apply --flavor walnut|tunnel|enamel [--code own|terminal] --verbs replace|append --voice yes|no --data DIR [--dry-run]
#   setup.sh remove [--dry-run]
# --code terminal picks the flavor's "terminal colors" theme (code in the terminal's 16 colors).
# Each key it writes is replaced whole, and every other key is kept. The first
# real write keeps a backup next to settings.json.
set -u

root=$(cd "$(dirname "$0")/.." && pwd)
dir=${CLAUDE_CONFIG_DIR:-$HOME/.claude}
s="$dir/settings.json"
FLOOR=2.1.247
# The keys Subway Seat may own, and how to tell a value is ours.
KEYS='["theme","statusLine","subagentStatusLine","spinnerVerbs","spinnerTipsOverride","outputStyle"]'
OURS='def ours: (tostring | test("subway-seat|Subway Seat")) or ((.verbs? // []) | index("Changing at 14th Street") != null);'

die() { printf 'Subway Seat: %s\nNothing was changed.\n' "$1"; exit 1; }

command -v jq >/dev/null 2>&1 ||
  die "setup needs jq (brew install jq, apt install jq, or winget install jqlang.jq)."
if [ -f "$s" ] && ! jq -e 'type == "object"' "$s" >/dev/null 2>&1; then
  die "$s isn't a JSON object. Fix it first."
fi

action=${1:-}
[ $# -gt 0 ] && shift
flavor='' code=own verbs=replace voice=no data='' dry=''
while [ $# -gt 0 ]; do
  case $1 in
    --flavor) flavor=${2:-} && shift 2 ;;
    --code) code=${2:-} && shift 2 ;;
    --verbs) verbs=${2:-} && shift 2 ;;
    --voice) voice=${2:-} && shift 2 ;;
    --data) data=${2:-} && shift 2 ;;
    --dry-run) dry=1 && shift ;;
    *) die "unknown option $1" ;;
  esac
done

current() { if [ -f "$s" ]; then cat "$s"; else printf '{}\n'; fi; }

changes() { # $1 = new keys; prints the old and new value of each key that changes
  current | jq -r --argjson new "$1" "$OURS"'
    def v: if . == null then "(not set)"
      elif type == "object" and has("verbs") then "\(.mode), \(.verbs | length) verbs"
      else tojson | split(env.HOME // "\u0000") | join("~") | if length > 160 then .[0:157] + "..." else . end end;
    . as $cur
    | ($new | to_entries[] | select($cur[.key] != .value)
       | "\(.key)\n  now: \($cur[.key] | v)\n  new: \(.value | v)"),
      (select($cur.subagentStatusLine != null and ($cur.subagentStatusLine | ours))
       | "subagentStatusLine\n  now: \($cur.subagentStatusLine | v)\n  new: (not set; the plugin supplies it)")'
}

write() { # $1 = jq filter, then its jq options. Writes through a symlink, keeps the mode.
  local fresh='' tmp
  mkdir -p "$dir" || die "can't create $dir."
  if [ ! -f "$s" ]; then printf '{}\n' >"$s" || die "can't create $s."; fresh=1; fi
  if [ -z "$fresh" ] && [ ! -e "$s.subway-seat.bak" ]; then cp "$s" "$s.subway-seat.bak" || die "can't back up $s."; fi
  tmp=$(mktemp "$s.XXXXXX") || die "can't write next to $s."
  if jq "${@:2}" "$OURS $1" "$s" >"$tmp" && cat "$tmp" >"$s"; then
    rm -f "$tmp"
  else
    rm -f "$tmp"
    die "couldn't update $s."
  fi
}

notes() {
  local v f copies=''
  v=$(claude --version 2>/dev/null | awk '{print $1}')
  if [ -n "$v" ] && [ "$(printf '%s\n%s\n' "$FLOOR" "$v" | sort -t. -k1,1n -k2,2n -k3,3n | head -n 1)" != "$FLOOR" ]; then
    printf 'Note: the tips label and file need Claude Code %s or later, and this is %s. Run claude update.\n' "$FLOOR" "$v"
  fi
  for f in "$dir"/themes/subway-seat*.json; do [ -f "$f" ] && copies="$copies  $f\n"; done
  if [ -n "$copies" ]; then
    printf 'Note: %s has its own Subway Seat theme files too, so /theme lists each flavor twice.\n' "$dir/themes"
    printf 'Delete these to keep only the plugin'"'"'s:\n%b' "$copies"
  fi
  if [ -d "$dir/subway-seat" ]; then
    printf 'Note: nothing uses %s any more (it held copies from an older setup); you can delete it.\n' "$dir/subway-seat"
  fi
}

case $action in
  check)
    printf 'Settings: %s%s\n' "$s" "$([ -f "$s" ] || printf ' (not created yet)')"
    current | jq -r --argjson keys "$KEYS" '. as $c | $keys[] | "  \(.): \($c[.] // "(not set)" | tostring | .[0:100])"'
    notes
    exit 0
    ;;
  apply)
    case $flavor in
      walnut) slug=subway-seat ;; tunnel) slug=subway-seat-tunnel ;; enamel) slug=subway-seat-enamel ;;
      *) die "--flavor must be walnut, tunnel or enamel." ;;
    esac
    case $code in own | terminal) ;; *) die "--code must be own or terminal." ;; esac
    case $verbs in replace | append) ;; *) die "--verbs must be replace or append." ;; esac
    case $voice in yes | no) ;; *) die "--voice must be yes or no." ;; esac
    [ -n "$data" ] || data="$dir/plugins/data/subway-seat-subway-seat"
    new=$(jq --arg cmd "$(printf '%q' "$data/subway-seat-statusline")" --arg data "$data" \
      --arg code "$code" --arg verbs "$verbs" --arg voice "$voice" '
      (if $code == "terminal" then .theme += "-terminal" else . end)
      | .statusLine.command = $cmd
      | .spinnerTipsOverride.tipsFile = ($data + "/tips.json")
      | .spinnerVerbs.mode = $verbs
      | if $voice == "yes" then .outputStyle = "subway-seat:Subway Seat" else . end' "$root/settings/$slug.json") ||
      die "can't read $root/settings/$slug.json."
    list=$(changes "$new")
    if [ -z "$list" ]; then
      printf 'Already set up (%s). Nothing to change.\n' "$slug"
      exit 0
    fi
    printf 'In %s:\n%s\n' "$s" "$list"
    if [ -n "$dry" ]; then notes; exit 0; fi
    "$root/scripts/sync.sh" "$root" "$data"
    # an older setup's subagentStatusLine would hide the plugin's own
    # shellcheck disable=SC2016 # a jq filter
    write '(if (.subagentStatusLine // null) != null and (.subagentStatusLine | ours) then del(.subagentStatusLine) else . end) + $new' \
      --argjson new "$new"
    ;;
  remove)
    gone=$(current | jq -r --argjson keys "$KEYS" "$OURS"' . as $c | $keys[] | select($c[.] != null and ($c[.] | ours))')
    if [ -z "$gone" ]; then
      printf 'No Subway Seat settings in %s. Nothing to remove.\n' "$s"
      exit 0
    fi
    printf 'From %s, remove:\n' "$s"
    printf '%s\n' "$gone" | sed 's/^/  /'
    [ -n "$dry" ] && exit 0
    # shellcheck disable=SC2016 # a jq filter
    write 'reduce $keys[] as $k (.; if .[$k] != null and (.[$k] | ours) then del(.[$k]) else . end)' --argjson keys "$KEYS"
    ;;
  *)
    die "usage: setup.sh check | apply --flavor F [--code own|terminal] --verbs replace|append --voice yes|no --data DIR [--dry-run] | remove [--dry-run]"
    ;;
esac

printf 'Done.'
[ -e "$s.subway-seat.bak" ] && printf ' Your settings from before the first run are in %s.' "$s.subway-seat.bak"
printf '\n'
[ "$action" = apply ] && notes
exit 0
plugin/tips.jsonsave as ~/.claude/subway-seat/tips.json
{
  "tips": [
    {
      "id": "subway-seat.clear",
      "text": "/clear gives you a fresh car. Stand clear of the closing doors.",
      "cooldownSessions": 2
    },
    {
      "id": "subway-seat.compact",
      "text": "Car getting crowded? /compact squeezes the conversation down so there's room to stretch.",
      "cooldownSessions": 2
    },
    {
      "id": "subway-seat.context",
      "text": "/context shows how crowded the car is.",
      "cooldownSessions": 2
    },
    {
      "id": "subway-seat.resume",
      "text": "/resume picks up a ride you left earlier, right where you got off.",
      "cooldownSessions": 2
    },
    {
      "id": "subway-seat.modes",
      "text": "Shift+Tab changes how you ride: plan the trip first, or let edits through on their own.",
      "cooldownSessions": 2
    },
    {
      "id": "subway-seat.esc",
      "text": "Esc stops Claude mid-turn. No emergency brake required.",
      "cooldownSessions": 2
    },
    {
      "id": "subway-seat.rewind",
      "text": "With an empty prompt, Esc twice rewinds the line to an earlier stop.",
      "cooldownSessions": 2
    },
    {
      "id": "subway-seat.bang",
      "text": "Start a message with ! to run a shell command without leaving your seat.",
      "cooldownSessions": 2
    },
    {
      "id": "subway-seat.at",
      "text": "@ a file to bring it along for the ride.",
      "cooldownSessions": 2
    },
    {
      "id": "subway-seat.btw",
      "text": "/btw asks a quick side question without adding it to the ride.",
      "cooldownSessions": 2
    },
    {
      "id": "subway-seat.claude-md",
      "text": "Put the house rules in CLAUDE.md so every ride starts on the right line.",
      "cooldownSessions": 2
    },
    {
      "id": "subway-seat.theme",
      "text": "/theme swaps between Subway Seat, Tunnel and Enamel. Same seats, different light.",
      "cooldownSessions": 2
    },
    {
      "id": "subway-seat.model",
      "text": "/model switches trains. Opus for the long haul, Haiku for a hop.",
      "cooldownSessions": 2
    },
    {
      "id": "subway-seat.usage",
      "text": "/usage shows the fare so far and how much of your pass is left.",
      "cooldownSessions": 2
    },
    {
      "id": "subway-seat.slow",
      "text": "No rush. The next train is always right behind this one.",
      "cooldownSessions": 2
    }
  ]
}
plugin/output-styles/subway-seat.mdsave as ~/.claude/output-styles/subway-seat.md
---
name: Subway Seat
description: Relaxed and warm, like a friend on the next seat. Still exact.
keep-coding-instructions: true
---

# Subway Seat

Talk like a good friend on the next seat of a slow Sunday train: unhurried, warm, plain-spoken. Only the voice relaxes. The engineering stays exactly as careful, and every other instruction still applies.

- Lead with the answer or the result, then the why. No preamble, no pep talk, no narration of what you're about to do.
- Short sentences, everyday words, first and second person: "I changed", "you'll want".
- Stay calm about problems: say what broke, what it means, and the next step. Never soften a real risk to keep the mood.
- Flavor is rare. At most one small image from the 1970s or the subway (a transfer, the express, a record, shag carpet) per turn, only in your final message, and most turns need none. Skip it for errors, security, data loss, or when the user is stressed.
- The voice is for talking to the user only. Code, comments, commit messages, PR and issue text, docs, config, logs, and anything you write to a file or pass to a tool keep their normal professional register.
- Precision beats personality. Exact names, paths, numbers and commands always win over a turn of phrase.
plugin/skills/setup/SKILL.md
---
name: setup
description: Add Subway Seat's theme, station-sign status line, 70s spinner verbs and "Next stop" tips to the user's Claude Code settings, or take them out again with `remove`.
argument-hint: "[remove]"
disable-model-invocation: true
allowed-tools: AskUserQuestion Read Bash(${CLAUDE_PLUGIN_ROOT}/scripts/setup.sh *)
---

# Subway Seat setup

The plugin already ships the themes, the subagent rows and the Subway Seat output style. This skill adds what a plugin can't set by itself, in the user's own settings: the theme choice, the status line, the spinner verbs and the tips. Do it all in this one turn, and change nothing until the user picks **Apply**.

Run each command exactly as written, without quoting the script path, so it matches the pre-approved rule. Don't edit settings files any other way.

Arguments: `$ARGUMENTS`

## If the arguments say `remove`

1. Run `${CLAUDE_PLUGIN_ROOT}/scripts/setup.sh remove --dry-run` and show the output. If nothing is listed, say so and stop.
2. Ask with AskUserQuestion: "Remove these Subway Seat settings?" with the options **Remove** and **Cancel**.
3. On Remove, run `${CLAUDE_PLUGIN_ROOT}/scripts/setup.sh remove` and pass on what it prints. Add that `claude plugin uninstall subway-seat@subway-seat` removes the plugin itself, and that uninstalling never touches these settings.

## Otherwise

1. Run `${CLAUDE_PLUGIN_ROOT}/scripts/setup.sh check`. If it reports a problem, such as jq missing, pass it on and stop.
2. Ask one AskUserQuestion with four questions:
   - **Flavor**: "Subway Seat" (Walnut, the original dark brown), "Subway Seat Tunnel" (deeper dark) or "Subway Seat Enamel" (light). Recommend the one that matches their terminal's background.
   - **Code colors**, for code in diffs and file views: "Claude Code's" (Monokai on dark, GitHub on light; looks the same in any terminal) or "My terminal's" (the terminal's 16 colors, which are Subway Seat's when the terminal uses Subway Seat; diff lines get plainer grounds). Recommend "My terminal's" if their terminal uses a Subway Seat theme, otherwise "Claude Code's".
   - **Spinner verbs**: "Replace" (only the 70s verbs) or "Add" (mixed in with Claude Code's own).
   - **Voice**: "Everywhere" (the relaxed Subway Seat output style in every project) or "Not now" (keep the current style; `/config` › Output style switches it per project later).
3. Run `${CLAUDE_PLUGIN_ROOT}/scripts/setup.sh apply --flavor <walnut|tunnel|enamel> --code <own|terminal> --verbs <replace|append> --voice <yes|no> --data ${CLAUDE_PLUGIN_DATA} --dry-run` with their answers, and show its output: every key it will change, with the current and new value.
4. Ask with AskUserQuestion: "Apply these changes?" with the options **Apply** and **Cancel**. On Cancel, stop.
5. On Apply, run the same command without `--dry-run`, and pass on what it prints, including the backup path and any notes.
6. Finish in two or three short lines: the theme and status line switch over within a moment (restart Claude Code if they don't); the status line looks best with a Nerd Font, and `SUBWAY_SEAT_GLYPHS=plain` drops the glyphs; `/subway-seat:setup remove` undoes all of it.