Tools
The CLIs, MCP servers, other agents, and hooks around Claude Code on my laptop.
Programs that run next to the agent. Most are wired in through hooks, so they apply without me asking.
Context savers
rtk: a CLI proxy that filters and summarises command
output before it reaches the model. rtk git status or rtk grep -rn returns the
useful part instead of hundreds of lines. It is wired in as a PreToolUse hook on Bash.
I skip it when exact bytes matter, for example a diff I am about to apply.
codegraph: indexes a repo into a SQLite graph of symbols, call edges, and files.
One codegraph_explore call returns the source of the relevant symbols plus the call
paths between them, which replaces a grep-then-read loop. It runs as an MCP server, and
a UserPromptSubmit hook injects graph context for the prompt. It only applies in
repos that have a .codegraph/ directory. Elsewhere, the agent ignores it.
Gates
- no-mistakes: a local git proxy. Pushing through it runs code review, tests, lint, and docs checks before anything reaches the real remote.
- CodeRabbit CLI: a second, independent code review from the terminal.
Proof
proving-it-works: a
Claude Code plugin that records a narrated movie proving a change works, from a browser,
terminal, desktop app or stills. Its movie check gate fails a movie whose picture
freezes while narration keeps going, never changes, or has silent audio: defects that
per-frame checks miss. I use it for the GIF/video evidence on frontend PRs.
Review surface
lavish-axi: turns an HTML page the agent wrote into a review surface. I annotate elements in the browser, queue comments, and the agent picks them up. Good for plans and comparisons that are painful to read in a terminal.
Other agents
- Codex CLI and Cursor agent: second opinions. A different model reviewing the first one's work catches things a self-review does not.
- Ollama: local models, for work that should not leave the laptop.
Workspace glue
- herdr: a terminal workspace manager for coding agents. A
SessionStarthook reports each agent's state to it. - iTerm status hooks: every lifecycle event (
Stop,Notification,PermissionRequestand the rest) calls one small script that updates the tab badge, so I can see which session is waiting on me. - Status line: directory, branch or worktree, model, context used, rate limit used.
Config snippets
Hooks in ~/.claude/settings.json
The three hooks that do real work. Every other lifecycle event calls the iTerm status script.
{
"hooks": {
"SessionStart": [
{ "hooks": [{ "type": "command", "command": "lavish-axi", "timeout": 10 }] }
],
"UserPromptSubmit": [
{ "hooks": [{ "type": "command", "command": "codegraph prompt-hook" }] }
],
"PreToolUse": [
{ "matcher": "Bash", "hooks": [{ "type": "command", "command": "rtk hook claude" }] }
]
}
}codegraph MCP server
{
"mcpServers": {
"codegraph": { "type": "stdio", "command": "codegraph", "args": ["serve", "--mcp"] }
}
}