shoulderv0.1.0

Watch over your agents’ shoulder.

See your coding agents work, live. shoulder follows Claude Code, Codex, Gemini CLI and opencode through your project. It shows the file that each agent reads or edits, the diff against your last commit, and the commands that it runs. It runs in your terminal, in your terminal theme.

go install github.com/bjarneo/shoulder@latest

Then run shoulder in your project. You can also download a binary for Linux or macOS.

Claude simplifies snake.js one line at a time. Codex adds tests in the same project, and the view jumps to its edit. 47 seconds, no sound.

One screen for every agent in the project.

Start your agents as usual. shoulder finds their sessions in the project and shows them side by side. You do not configure anything, and the agents do not know that shoulder is there.

Text uses your default colors and the 16 ANSI colors of your terminal. When you change the terminal theme, shoulder changes with it.

THE SCREENfollow layout
AGENTS
Each agent with its state, its file and line, and how full its context window is.
FILE
The file of the focused agent. A cursor shows where it reads or edits. Old lines show as red, new lines as green.
TERMINAL
The commands of the focused agent and their output.
ACTIVITY
Each read, search, edit, command and reply, with the time.
SPLITS
Press s to see one pane for each agent.

The view goes where the work is.

When an agent edits a file in your project, shoulder jumps to that agent and that file. When the focused agent finishes, shoulder moves to an agent that still works.

shoulder waits 1.5 seconds between two jumps, so the view does not flicker. To keep one agent in view, press 1 to 9. To turn auto focus on again, press a.

MESSAGESauto focus
  1. A2 codex started · Add tests for the snake logic.
  2. → A2 codex edits snake.test.js
  3. A2 codex · node --test → ✓ ok
  4. → A1 claude edits snake.js
  5. A1 claude done · the 4 tests pass

It reads the logs that your agents already write.

shoulder only reads. It does not send input to an agent, it does not change files, and it does not connect to the network.

AgentSession dataDetails
A1Claude Code~/.claude/projects/Main sessions and subagents
A2Codex~/.codex/sessions/Reads with sed -n and cat count as reads
A3Gemini CLI~/.gemini/tmp/Shows when a tool call waits for your approval
A4opencode 2.x~/.local/share/opencode/opencode.dbOpens the database read-only

If your agents keep their data in a different place, shoulder uses CLAUDE_CONFIG_DIR, CODEX_HOME, GEMINI_CLI_HOME and XDG_DATA_HOME.

Install and run.

  1. Install shoulder with Go 1.26 or later:

    go install github.com/bjarneo/shoulder@latest

    Or download a binary for Linux or macOS, on amd64 or arm64:

    $ curl -sL https://github.com/bjarneo/shoulder/releases/latest/download/shoulder-linux-amd64.tar.gz | tar xz
    $ sudo mv shoulder-linux-amd64/shoulder /usr/local/bin/
  2. Run shoulder in the project where your agents work:

    $ cd ~/Code/myproject
    $ shoulder
  3. Start Claude Code, Codex, Gemini CLI or opencode in the same project. Each agent shows up within a few seconds.

--since1hShow sessions with activity in this period, for example 30m or 6h.
--splitsoffStart with one split per agent.
--signsoffShow changes as signs in the gutter, without the deleted lines.
--versionPrint the version.

Keys.

The keys follow Vim. You can also click an agent, a file, a tab or a split.

Keys · watch only? shows them in the app
1 … 9Pin an agent and follow it tabPin the next agent aTurn auto focus on or off f escFree scroll, back to follow j kMove the cursor gg GGo to the top or the bottom ]c [cGo to the next or previous change H LOpen the previous or next file tab sFollow layout or one split per agent dInline diff or signs RRead all sessions again qQuit