Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add commands/omrikais/cctally/doctorgit clone --depth 1 https://github.com/omrikais/cctallyWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/omrikais/cctally/doctor)<a href="https://agentmods.dev/commands/omrikais/cctally/doctor"><img src="https://agentmods.dev/badge/commands/omrikais/cctally/doctor.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00000 | $0.09650 |
| Opus 5 | $0.00000 | $0.04825 |
| Sonnet 5 | $0.00000 | $0.01930 |
| Haiku 4.5 | $0.00000 | $0.00965 |
Grade A, and why
doctor scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 266 lines — stays where its author put it; the contents beside it link to each section on GitHub.
cctally doctor
Read-only diagnostic. Answers the question: "why is my cctally data stale or broken?" by running every passive check across install, hooks, OAuth, database, data freshness, pricing coverage, and safety config, then emitting a severity-ranked report.
Modes
| Mode | What it does |
|---|---|
cctally doctor |
Human-readable report |
cctally doctor --json |
Machine-readable JSON to stdout |
cctally doctor --quiet / -q |
Human mode; hide OK rows |
cctally doctor --verbose / -v |
Human mode; include per-check details blocks |
--quiet and --verbose are mutually exclusive.
Exit codes
| Code | Meaning |
|---|---|
| 0 | All checks are OK or WARN |
| 2 | Any check is FAIL |
Loose mapping (WARN doesn't cause non-zero) makes cctally doctor
usable as a healthcheck without false-positive noise:
cctally doctor || alert-me.
Severity model
| Level | Meaning |
|---|---|
OK |
Healthy. No user action needed. |
WARN |
Degraded but functional. Data still flowing; user may want to act. |
FAIL |
Broken. Data is wrong, or a critical workflow won't work. |
Check inventory
Ten categories. Each check has a stable id (used as the
JSON key), a one-line summary, and a remediation hint shown when
severity != OK.
Install
install.symlinks— WARN when any cctally-* command is unavailable. Reports "N/M available", countingavailable = ok + stale. PATH-aware: a command is counted available when its~/.local/bin/symlink is present, or when the command is reachable on$PATHvia another install channel (e.g. a Homebrew<prefix>/bin/install), so it no longer false-warns purely because~/.local/bin/lacks the link. A leftover link to an old Homebrew keg (<prefix>/Cellar/cctally/) or the npm shim, whose command is still reachable elsewhere, is reported as a cleanablestalestate (counted available, listed in the new--jsondetails.stalearray) rather than a generic failure — the summary appends "N stale link(s) to clean" and the remediation isRun cctally setup to clean stale links. A wrong-target / dangling / non-symlink slot still counts as missing (wrong). One pinned-only-path case is special-cased: when cctally is reachable only through a legacy~/.local/bin/link to a keg (socctally setupdeliberately won't remove the only working copy), the remediation switches to a PATH-fix hint ("Put<prefix>/binon your PATH (e.g.eval "$(brew shellenv)"), then runcctally setupto remove the legacy link"). The--jsondetailskeyspresent/total/missingare unchanged (missingspanswrong + missing);details.staleis additive.install.path— availability-aware: OK whenever cctally is reachable on$PATHvia any channel (Homebrew<prefix>/bin/, an npm prefix, or source~/.local/bin), summarycctally reachable on $PATH. WARN (cctally not reachable on $PATH) only when no channel makes it reachable; the remediation is channel-aware — a Homebrew keg is pointed ateval "$(brew shellenv)"(it owns no~/.local/binsymlinks per the #119 policy), while source / npm installs get theexport PATH="$HOME/.local/bin:$PATH"+cctally setupfix.install.update_channel— reports the configured update (release) channelcctally updatetracks (stable|beta), distinct from the previewchannel(prod|preview) ininstall.mode. OK for stable, or beta on npm/source. WARN on the beta+brew mismatch — Homebrew tracks the stable channel only (a beta opt-in silently resolves stable); the remediation points at npm/source orcctally config set update.channel stable. Never FAIL, so it doesn't affect the exit code.install.legacy_snippet— WARN when an old status-line snippet is detected.install.legacy_bespoke_hooks— WARN when the legacy hand-installed hooks are present.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today Changed · +1 lines 8aef9469d93a
- 5d ago First seen · 265 lines · 0 tokens per session scan A 1dafbed0aba8
doctor is a command published in the GitHub repository omrikais/cctally (5 stars, last pushed yesterday), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 9,650 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other commands, from other repositories
review-renovate
Review and merge renovate PRs with automerge configuration updates.
monitor-ci
Monitors pull request CI checks until they are resolved (pass or fail).
plan-regression-tests
Plan regression tests for existing code with it.skip statements.
init
Initialize configurations for Supabase local development.
volume-admin-set-status
Changes the operational status of a named volume.
database-setup
Use when a project needs to store data and has no database yet. Setting up Supabase, creating tables, writing queries, and connecting them to the frontend. Written for designers.