Skip to main content

snoop

A terminal viewer that keeps an eye on your Claude Code agents. Watch every running session from one board, answer their permission prompts, comment on their diffs, and see what each prompt cost, without switching terminals.

snoop showing the summary across sessions, a session's timeline with a turn's waterfall, an expanded subagent, the Files tab and Stats

Install

It runs on macOS, Linux and Windows, and every install method delivers the same prebuilt binary.

With Homebrew, on macOS or Linux:

brew install jzills/tap/snoop

Or the install script, which checks the build against the release's checksums and installs it without sudo:

curl -fsSL https://jzills.github.io/snoop/install.sh | sh

Or from npm or PyPI, where the package is snoop-cli and the command is snoop:

npm install -g snoop-cli
pipx install snoop-cli

On Windows, use npm, PyPI or the PowerShell script:

irm https://jzills.github.io/snoop/install.ps1 | iex

See the install guide for more.

Follow a session

Keep it open in a second terminal next to claude, and every prompt, reply, thinking block and tool call appears as it happens. The right pane shows the selected item in full: the command, the diff, the subagent's prompt and result.

snoop --follow    # the newest session in this directory, live
snoop             # pick any past session

Each prompt shows its tokens, estimated cost and duration, and the header shows how full the context window is. Selecting a prompt shows where its turn's time went, in a waterfall where parallel calls overlap. Press x on an Agent call to expand its subagent's work inline, live while it runs.

See the following guide for more.

Watch every agent at once

The live board lists every session at work across your projects, with the ones waiting on you first.

The live board with one session asking to run a command, one whose turn ended and one working

snoop --live --notify    # every running session, with desktop notifications

When a session asks for permission, the request appears in full under the list. Press A to allow it once, Y to always allow it, or D to deny it with a reason Claude sees. When a session's turn ends, press R to reply, and the agent carries on as if you'd typed it in its terminal.

See the live board guide for more.

Review and comment

The Diff tab shows what a session changed, either since the last commit or across its whole branch. Leave comments on a line, a range or a file, and press S to send them all to the agent, which picks them up mid-turn or keeps going after it finished.

The Diff tab with a comment under one line of a file's diff

Replies, comments and answers to permission prompts reach the agent through Claude Code hooks, which you add once:

snoop hooks install

See the review guide for more.

Cost, files and time

The Stats tab breaks a session down by prompt, tool and model, and the Files tab lists every file it read or changed, each with its history as diffs. In the session picker, press s for totals across sessions and a daily cost chart, or f to find sessions by a file they changed, a command they ran or a prompt.

See the cost and context guide for more.

Alerts

While a session runs, the header flags a failed tool call, a stalled one, a finished turn, a compaction, a nearly full context or a permission request. With --notify, the same alerts arrive as desktop notifications through your terminal or the system, over SSH and in WSL too. With --cost-alert 5 and --long-turn 15m, a runaway session gets flagged as well.

See the alerts reference for more.

Copy and export

Press y to copy the selected command, diff or message, over SSH too, or e to export the timeline to Markdown. From the shell, snoop export <session> writes the whole session to stdout.

See the export guide for more.

Notes

  • It reads the transcripts Claude Code already writes and sends nothing anywhere. The only change it makes to Claude Code's settings is the hooks, which snoop hooks uninstall removes.
  • The transcript format is undocumented, and testing covers Claude Code 2.1.280 through 2.1.310. Unknown records are ignored, so a new version may show less rather than break, and an issue helps when something goes missing.
  • A 75 MB transcript opens in about 150 ms.
  • This independent project isn't affiliated with or endorsed by Anthropic. Claude and Claude Code are trademarks of Anthropic.

Contributing

Run go run ./cmd/probe to parse every local transcript and report timings. The demo GIF and the site's screenshots are rendered from fictional sessions by demo/render.sh and demo/shots.sh, which need vhs.

License

Released under the MIT License.

Metadata

Release files for snoop-cli 0.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for snoop-cli 0.3.2
File Actions
snoop_cli-0.3.2-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details for snoop_cli-0.3.2-py3-none-win_arm64.whl
snoop_cli-0.3.2-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details for snoop_cli-0.3.2-py3-none-win_amd64.whl
snoop_cli-0.3.2-py3-none-manylinux_2_17_x86_64.musllinux_1_1_x86_64.whl Python 3 none Linux musl 1.1+ x86-64, Linux glibc 2.17+ x86-64 Details for snoop_cli-0.3.2-py3-none-manylinux_2_17_x86_64.musllinux_1_1_x86_64.whl
snoop_cli-0.3.2-py3-none-manylinux_2_17_aarch64.musllinux_1_1_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64, Linux musl 1.1+ ARM64 Details for snoop_cli-0.3.2-py3-none-manylinux_2_17_aarch64.musllinux_1_1_aarch64.whl
snoop_cli-0.3.2-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details for snoop_cli-0.3.2-py3-none-macosx_11_0_arm64.whl
snoop_cli-0.3.2-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details for snoop_cli-0.3.2-py3-none-macosx_10_12_x86_64.whl

Total release size: 14.7 MB

Release files / snoop_cli-0.3.2-py3-none-win_arm64.whl

Download URL snoop_cli-0.3.2-py3-none-win_arm64.whl
Size 2.4 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
811c4762a6e087c46b18f4a0daa3ddfb92debc303e65a79337735af254a108f3
BLAKE2b-256 checksum
How to use checksums
fb89e1300868427b2794f46e0ac65fa7706090c3f3a784a619ac7b522c3ec983
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / snoop_cli-0.3.2-py3-none-win_amd64.whl

Download URL snoop_cli-0.3.2-py3-none-win_amd64.whl
Size 2.6 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
388bdfb010dc03a5e88d6e560f21b1fe2cc95ce760fa655f7d13f5d55d0986a5
BLAKE2b-256 checksum
How to use checksums
0d23799c7ee4e6c37ed25887978e9cd20090c75ce86271b2656a07eb852e7398
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / snoop_cli-0.3.2-py3-none-manylinux_2_17_x86_64.musllinux_1_1_x86_64.whl

Download URL snoop_cli-0.3.2-py3-none-manylinux_2_17_x86_64.musllinux_1_1_x86_64.whl
Size 2.5 MB
Tags Linux glibc 2.17+ x86-64 Linux musl 1.1+ x86-64 Python 3
SHA-256 checksum
How to use checksums
f5aad70acc35b866ce1548dbe8532295642e86623fd5e3e275c199b8c349d1f1
BLAKE2b-256 checksum
How to use checksums
9fbf9b58a6ad34bec63c224a4fb7485fb4a1823d778fb486132d13801563a985
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / snoop_cli-0.3.2-py3-none-manylinux_2_17_aarch64.musllinux_1_1_aarch64.whl

Download URL snoop_cli-0.3.2-py3-none-manylinux_2_17_aarch64.musllinux_1_1_aarch64.whl
Size 2.3 MB
Tags Linux glibc 2.17+ ARM64 Linux musl 1.1+ ARM64 Python 3
SHA-256 checksum
How to use checksums
968f2880dd0396a3557405df99d4499f323982eaba08c003fe79ab85286717ec
BLAKE2b-256 checksum
How to use checksums
4be5c0867c1020163e2cc440e3d54f2b19fd24d7da31ba535c710d20df4e3152
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / snoop_cli-0.3.2-py3-none-macosx_11_0_arm64.whl

Download URL snoop_cli-0.3.2-py3-none-macosx_11_0_arm64.whl
Size 2.4 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ba69ab653758045c1ef04cb6d435305fa0f82842ec6e18f2afe3f527645c0127
BLAKE2b-256 checksum
How to use checksums
1329f9db391c58a8c62cc9c2997eb6acf784680e39c1a6a4bfd3281414d0e1ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / snoop_cli-0.3.2-py3-none-macosx_10_12_x86_64.whl

Download URL snoop_cli-0.3.2-py3-none-macosx_10_12_x86_64.whl
Size 2.6 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
2744561ca90c7ab832dfc61c89615b337a8d92d01ee270f16690ab7a100d1e6b
BLAKE2b-256 checksum
How to use checksums
1a40ddb711a1d48ddfa9484d3b5f495c4ac02dc5855edbc81bc757ceb92acf2b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Security for snoop-cli 0.3.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 6 files in this release have been uploaded with provenance metadata.

Select from 6 files

Attestation for snoop_cli-0.3.2-py3-none-win_arm64.whl

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page