VSCode workflow¶
The Murmurent repo ships a launcher + workspace config so VSCode opens in a consistent 4-quadrant layout with live agent reporting.
Working on a remote server through VS Code?
This page covers the local 4-quadrant editor layout. To view a remote server's dashboard, including the VS Code Remote-SSH auto-forward route, see Remote dashboard access.
Opening a project¶
scripts/open_murmurent.sh # opens murmurent itself
scripts/open_murmurent.sh ~/repos/<other> # opens another repo
The launcher (macOS only) enumerates displays via
AppKit.NSScreen. If a second monitor is attached, VSCode opens
there; otherwise on the laptop screen. Either way the window is
sized to 80% of the chosen display, centred. Subsequent opens
restore VSCode's persisted layout: arrange the quadrants once
and they persist across opens.
The dashboard's open workspace button calls the same launcher
(see src/murmurent/dashboard/server.py
workspace_launch local branch).
Quadrant layout¶
| Pane | Contents |
|---|---|
| TL | Claude Code (VSCode extension) |
| TR | Editor area |
| BL | tmux shell |
| BR | tail -F ~/.murmurent/agents.log: live subagent reporter |
One-time setup per project:
- Open four terminals (Cmd+Shift+
); they open in the editor area thanks toterminal.integrated.defaultLocation: editor`. - Drag them into a 2×2 split.
- In BL: any tmux shell.
- The BR
tail -F ~/.murmurent/agents.logstarts automatically: a murmurent-ready repo carries a.vscode/tasks.jsonagents.logtask withrunOn: folderOpen(andtask.allowAutomaticTasks: on), so opening the folder drops you straight into the live subagent feed — no manualtail. Drag that terminal into the BR quadrant. - VSCode persists this editor-group state per folder.
Title bar + chrome¶
Each project's .vscode/settings.json (written by
bootstrap_local) wires:
window.title→Murmurent — <repo> · <active editor> · <dirty>workbench.activityBar.location→end(right side)workbench.sideBar.location→rightterminal.integrated.defaultLocation→editor
VSCode has no native bold/large title font (that is controlled by the operating system's window chrome); only the text can be configured.
Live agent reporter (BR pane)¶
User-global hooks in ~/.claude/settings.json invoke
scripts/murmurent_log_agent_event.sh
on:
PreToolUse(Agent)→ writes<agent>: starting — <description>in a deterministic colour per agent.SubagentStop→ writes<agent>: <verdict>(first line of the agent's reply, ≤200 chars).
BR pane runs tail -F ~/.murmurent/agents.log. Same log across every
project on this machine, so you see all subagent activity in one
place.
Known limit: CC subagents return one final message rather than a live stream of their thinking. The reporter shows agent start/end boundaries with the verdict line rather than granular progress. This is a constraint of the CC architecture.
Tmux copy-paste¶
~/.tmux.conf includes:
set -g mouse on
set -g set-clipboard on
bind -T copy-mode MouseDragEnd1Pane send -X copy-pipe-and-cancel "pbcopy"
bind -T copy-mode-vi MouseDragEnd1Pane send -X copy-pipe-and-cancel "pbcopy"
bind -T copy-mode y send -X copy-pipe-and-cancel "pbcopy"
bind -T copy-mode-vi y send -X copy-pipe-and-cancel "pbcopy"
Drag-to-select inside a tmux pane copies to the system clipboard. Cmd+V pastes anywhere.