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.3

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.3
File Actions
snoop_cli-0.3.3-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details for snoop_cli-0.3.3-py3-none-win_arm64.whl
snoop_cli-0.3.3-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details for snoop_cli-0.3.3-py3-none-win_amd64.whl
snoop_cli-0.3.3-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.3-py3-none-manylinux_2_17_x86_64.musllinux_1_1_x86_64.whl
snoop_cli-0.3.3-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.3-py3-none-manylinux_2_17_aarch64.musllinux_1_1_aarch64.whl
snoop_cli-0.3.3-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details for snoop_cli-0.3.3-py3-none-macosx_11_0_arm64.whl
snoop_cli-0.3.3-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details for snoop_cli-0.3.3-py3-none-macosx_10_12_x86_64.whl

Total release size: 14.8 MB

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

Download URL snoop_cli-0.3.3-py3-none-win_arm64.whl
Size 2.4 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
7195715e42f612418956e9fb2206aa7a913b72da6dae5c3136f32b999a0943d6
BLAKE2b-256 checksum
How to use checksums
30f0112e17490d1bbc0bfed3278b9ee6ef972b165d200907d7fc39211250fbe2
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 11, 2026.

Transparency log

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

Download URL snoop_cli-0.3.3-py3-none-win_amd64.whl
Size 2.7 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
a2e07ac7a8b5702b8951e9bf4a33feafc7779cec4a4a6a65ce48e40a6479a1c0
BLAKE2b-256 checksum
How to use checksums
3df38138f4dbc3d0c582e6f9a8df50f93595a1975d4fc475aa0311a356a86929
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 11, 2026.

Transparency log

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

Download URL snoop_cli-0.3.3-py3-none-manylinux_2_17_x86_64.musllinux_1_1_x86_64.whl
Size 2.6 MB
Tags Linux glibc 2.17+ x86-64 Linux musl 1.1+ x86-64 Python 3
SHA-256 checksum
How to use checksums
19aed8b8f3c3491e190bfa3be41da49551332fadbe2545eece1984f5b1d86dcb
BLAKE2b-256 checksum
How to use checksums
5b1bdbc1009f9f6179a7474c968d3ac73cd0fb70b81c45be914b9eb5449c3984
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 11, 2026.

Transparency log

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

Download URL snoop_cli-0.3.3-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
b9fbff6000d31c399cf5642fe3c179ebe8fc01525fe4aaa97fe5ee6fcf2f654d
BLAKE2b-256 checksum
How to use checksums
fcecb611a1f1184428f89c93aaea03adacf8591ea21a41279d6b7ccdbc85cef9
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 11, 2026.

Transparency log

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

Download URL snoop_cli-0.3.3-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
f12b458285f5fe310cbc3f6f9c80b010d9ae92b1c4ea3fdb5b1529044e9eeb60
BLAKE2b-256 checksum
How to use checksums
53dea0cab41bcc3a1c62ed7831870854c1355051a477a36fa0e8360b82ba8592
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 11, 2026.

Transparency log

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

Download URL snoop_cli-0.3.3-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
f7072ee9a8d54678c2713654fca1359bfff493d9ad64a4b5b67c203b2326dee4
BLAKE2b-256 checksum
How to use checksums
1386f0348d1c4b96f8ebe0d8be8d1e1123513a3be948a4364d6c788c404fd3bd
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 11, 2026.

Transparency log

Security for snoop-cli 0.3.3

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.3-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 11, 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