Nothing is collected. Here is exactly what moves, and where.
This covers the sawbuck CLI, the
promptwheel and
@promptwheel/logbook engines, the
sawbuck-reins plugin for Claude Code (Codex
untested), and this website. Last updated 2026-11-05.
No telemetry, no accounts, no analytics
None of the packages phone home. There is no usage reporting, no crash reporting, no account,
and no identifier of any kind. The check runs on your machine and writes its record into the
repo you attached it to: .sawbuck/ (verdicts,
state, steer scores) and a cache of your repo's own git history
(events.jsonl,
LOGBOOK.md), which includes the commit author
names already in your git log. All of it is kept out of
git status and none of it is transmitted.
sawbuck detach removes what it wired, the rules files stay because they are
yours to review, and --purge deletes the record.
To verify a change, the check runs your repo's own test or metric command (the one in
promptwheel.config.json, or the detected test
script) in throwaway git worktrees, exactly as you would run it yourself.
The only things that can leave your machine
-
The live steering readout (the live judge), on by default. The Claude
Code plugin makes one small classify call per turn through Claude Code's own model API, on
your own plan, containing the agent's last answer and your reply. It goes where your Claude
Code traffic already goes, and nowhere else. It runs in repos where Sawbuck is attached and in sessions outside any repo, not in other repos. When a reply is scored as a steer, a few-word summary is kept in Claude Code's plugin store on your machine, with the repo name and date, and goes nowhere else.
judge: offstops it. -
Your rules, shape and audit, only when you run them.
/sawbuck-reins:rulesand/sawbuck-reins:shapegather what you typed to Claude Code on your machine, leave out copies and text that looks like a secret, and send it to the model once, through your own Claude Code session./sawbuck-reins:shapealso sends short excerpts of up to 120 past turns. The gathered messages, the excerpts and what the model wrote from them sit in~/.sawbuck/during the run and are deleted when the check finishes. What stays there: the totals of each shape run, the shape card, and the rules you chose to keep, in the file you chose. Secret filtering is by pattern and can miss one./sawbuck-reins:auditreads your agent files the same way, once:CLAUDE.md,AGENTS.md,.cursorrulesand~/.claude/CLAUDE.md. -
Scoring with your own model instead. This is optional, through the
reinscommand line tool (@sawbuck/reinson npm). The same pair goes to the judge you configured withSAWBUCK_JUDGE: a local ollama model (nothing leaves your machine) or your own API key (to that provider). - What a judge call contains. Both modes send a bounded pair, never the whole conversation: at most the first 600 characters of the agent's last answer and the first 800 characters of your reply. Nothing else from the session goes with it.
-
The cue harvest, on demand only.
reins wizardandreins cuesread your own local Claude Code or Codex session transcripts on your machine to find the cues you keep giving. With a local ollama judge nothing leaves the machine; with a hosted judge each bounded pair goes to that provider, and the command asks for confirmation first. The result is a short list of cue phrases in.sawbuck/cues.jsoninside the repo, which you can read, edit, or delete. -
npm. Installing or running through
npxfetches the packages from the npm registry, like any npm package.
The check itself never calls a model and never makes a network request.
This website
Static pages with two small inline scripts for the theme and the mobile menu, no cookies, and no tracking scripts. The host (Vercel) keeps ordinary server request logs as part of serving the site; we do not add anything to them.
Questions
Open an issue at github.com/sawbuck-ai/sawbuck/issues. The source for every claim above is public: the plugin's README lists every program it runs, every file it writes, and every call it makes.