by bjarneo
Watch over your agents' shoulder. A TUI that shows Claude Code, Codex, Gemini CLI and opencode work in your project, live.
# Add to your Claude Code skills
git clone https://github.com/bjarneo/shoulderSee how shoulder compares with popular alternatives.
shoulder is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by bjarneo. Watch over your agents' shoulder. A TUI that shows Claude Code, Codex, Gemini CLI and opencode work in your project, live. It has 53 GitHub stars.
shoulder's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/bjarneo/shoulder" and add it to your Claude Code skills directory (see the Installation section above).
shoulder is primarily written in Go. It is open-source under bjarneo on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh shoulder against similar tools.
No comments yet. Be the first to share your thoughts!
Available after the catalog security scan passes.
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
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.
To see the 47-second demo, open the website or download shoulder-demo.mp4.
Install shoulder with Go 1.26 or later:
go install github.com/bjarneo/shoulder@latest
Or download a binary from the latest release. There are binaries for linux-amd64, linux-arm64, darwin-amd64 and darwin-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/
To verify a download, compare it with checksums.txt in the release:
sha256sum -c checksums.txt --ignore-missing
With Nix, run shoulder from the flake, or enter a shell with Go and its tools for development:
nix run github:bjarneo/shoulder
nix develop
Run shoulder in the project where your agents work:
cd ~/Code/myproject
shoulder
Then start your agents in the same project. Each agent shows up within a few seconds. To watch a different project, give its path:
shoulder ~/Code/myproject
shoulder watches the git top level of the directory. It shows the sessions that started there or in a subdirectory.
| Flag | Default | Description |
|---|---|---|
--since |
1h |
Show sessions with activity in this period, for example 30m or 6h |
--splits |
off | Start with one split per agent |
--signs |
off | Show changes as signs in the gutter, without the deleted lines |
--version |
Print the version |
shoulder reads the session logs that the agents already write. You do not configure the agents.
| Agent | Session data | To use another location, set |
|---|---|---|
| Claude Code, with subagents | ~/.claude/projects/ |
CLAUDE_CONFIG_DIR |
| Codex | ~/.codex/sessions/ |
CODEX_HOME |
| Gemini CLI | ~/.gemini/tmp/ |
GEMINI_CLI_HOME |
| opencode 2.x | ~/.local/share/opencode/opencode.db |
XDG_DATA_HOME |
shoulder only reads. It does not send input to an agent, it does not change files, and it does not connect to the network. It opens the opencode database read-only.
● A1 editing, show where the agent works.d to show the changes as signs in the gutter.s for the split layout. Each agent gets a pane with its file and its activity log.The bar under each agent shows how full its context window is.
Auto focus is on when shoulder starts. The view jumps to the work of the agents:
shoulder waits at least 1.5 seconds between two jumps, so agents that work at the same time do not make the view flicker. In free scroll, the view does not jump.
To keep the focus on one agent, select it with 1 … 9, tab or a click. This pins the agent and turns auto focus off. To turn auto focus on again, press a. The status line shows auto or pinned.
● The agent runs a tool or writes a reply.○ The agent waits for you. It asked a question, or a tool call needs your approval.✓ The turn ended. The state is idle when the agent had no activity for 10 minutes.Gemini CLI logs when a tool call waits for approval. For the other agents, shoulder assumes approval when a file tool has no result after 20 seconds.
| Key | Action |
|---|---|
1 … 9 |
Pin an agent and follow it |
tab, shift+tab |
Pin the next or the previous agent |
a |
Turn auto focus on or off |
f |
Toggle follow and free scroll |
esc |
Go back to follow |
j, k |
Move the cursor |
ctrl+d, ctrl+u |
Move half a page down or up |
gg, G |
Go to the top or the bottom of the file |
]c, [c |
Go to the next or the previous change |
H, L, gT, gt |
Open the previous or the next file tab |
s |
Toggle the follow layout and the split layout |
d |
Toggle the inline diff and the signs |
R |
Read all sessions again |
? |
Show all keys |
q |
Quit |
You can also click an agent, a file, a tab or a split pane.
shoulder uses the colors of your terminal theme. Text uses the default colors and the 16 ANSI colors, so it changes when you change the theme.
The panel shades and the line highlights are mixed from the colors that the terminal reports. shoulder asks the terminal again every 3 seconds, so a theme change shows while shoulder runs. If your terminal does not report its colors, the panels use the terminal background and the change signs show the diff.
In tmux, shades show correctly only when tmux supports true color. To turn it on, add set -as terminal-features ",*:RGB" to your tmux configuration.
In a git repository, shoulder compares each file with HEAD. Outside git, it compares each file with the first content that it read.
part tables of opencode 1.x.go test ./...
go build -o shoulder .
The code has three packages:
internal/watch reads the session logs of each agent and turns them into one event model.internal/repo reads the project files and compares them with the last commit.internal/ui draws the TUI with Bubble Tea.To record the demo video again, run demo/record.py. The script header lists what it needs.
MIT. See LICENSE.