Claude Code Tools

pith

github

Pith is the hook that makes Claude Code sessions last 3x longer.

Stars
⭐ 96
License
MIT
Last Updated
2026-05-20
Source
github

Pith

GitHub Stars

Status: stable — not actively adding features. Bug fixes welcome via issues.

Token compression hooks for Claude Code. Install once, works in every session, zero config.

bash <(curl -s https://raw.githubusercontent.com/abhisekjha/pith/main/install.sh)

How it works

Four hooks attach to Claude Code’s lifecycle. Every session, every project, automatically.

  • PostToolUse — compresses file reads, bash output, and grep results before they hit context
  • UserPromptSubmit — runs /pith commands, enforces token ceiling if set
  • SessionStart — restores compression mode, injects cache-locked rules
  • Stop — records token usage for status and report

The PostToolUse hook is where most savings happen — file reads alone account for 30–50% of context in a typical coding session.

Tool outputWhat happensTypical saving
File readsskeleton only — imports, signatures, types−88% per read
Bash / builderrors + summary, verbose logs discarded−91% per run
Grep resultscapped at 25 matchesprevents runaway searches
Large payloadsoffloaded to ~/.pith/tmp/, pointer left in contextprevents bloat

Core features

1 — Auto compression (zero config)

Runs automatically. No commands needed. Every file read, bash run, and grep gets compressed on the way back to Claude.

Real session numbers:

Read large-service.ts  →  1,800 tokens baseline  →  210 tokens compressed  (−88%)
npm install output     →    940 tokens baseline  →   80 tokens compressed  (−91%)

2 — Output modes

Control how Claude writes back to you.

/pith           → lean: drop filler, short synonyms, fragments OK
/pith ultra     → maximum: abbreviate, arrows, tables
/pith precise   → tight but full sentences
/pith off       → disable output compression

Auto-escalation kicks in as context fills — no manual switching needed:

50% fill → LEAN
70% fill → ULTRA
85% fill → dynamic token ceiling

3 — Token status

/pith status    → ASCII flow chart — baseline vs compressed vs output + plain-English savings
/pith report    → interactive HTML dashboard (auto-refreshes every 30s)

/pith status — token flow chart, compression ratio, cost breakdown

4 — Smart file focus

Load only the sections of a file relevant to your current question. Saves re-reading large files.

/focus src/services/auth.ts

Returns the 5 most relevant sections with a structure overview. Works on any file type.

5 — Symbol extraction

Pull exact function or class definitions without reading the whole file.

/pith symbol src/auth.ts handleLogin      → exact 30–50 lines (~95% vs full file)
/pith symbol --list src/auth.ts           → all symbols with line numbers

Install

# One-liner
bash <(curl -s https://raw.githubusercontent.com/abhisekjha/pith/main/install.sh)

# From source
git clone https://github.com/abhisekjha/pith
bash pith/install.sh

Hooks install globally into ~/.claude/hooks/. Active in every session from that point on.

Update:

/pith update    → git pull + re-sync hooks, commands, settings

Uninstall:

/pith uninstall

Advanced features

All present and functional. Not the daily workflow, but there when you need them.

FeatureCommandWhat it does
Project wiki/pith ingest <file>Extract entities, claims, decisions into wiki/
URL ingestion/pith ingest --url <url>Fetch and ingest a web page
Wiki query/pith wiki "question"Search wiki with citations
Wiki synthesis/pith compileRe-synthesize all sources into wiki pages
Wiki lint/pith lintFind contradictions, gaps, missing pages
Knowledge graph/pith-graphVisual graph of wiki entities in browser
jCodeMunchauto on code filesStructure-aware ingest — skeleton not full source
Token ceiling/budget 150Hard token cap, enforced every prompt
Structured formats/pith debug / review / arch / plan / commitOutput templates
Tour/pith tour7-step interactive walkthrough
Health check/pith healthDiagnose hook and config issues
Evalspython evals/harness.pyRun compression benchmark (needs API key)

Honest numbers

Estimates against real usage — not against “no system prompt.”

Before Pith:  Read large-service.ts → 1,800 tokens
After Pith:   Read large-service.ts →   210 tokens   (−88%)

Before Pith:  npm install output    →   940 tokens
After Pith:   errors + summary      →    80 tokens   (−91%)

Session from real use:

  • 19.9k input tokens (237.9k baseline without Pith)
  • 218k tokens saved — 92% compression ratio
  • $0.07 actual vs $3.33 without Pith — 47× cost ROI

See BENCHMARKS.md for methodology and raw numbers.


Multi-model pricing

Pith detects the model automatically and applies correct rates. No config needed.

ModelInput ($/MTok)Output ($/MTok)
Claude Opus 4.7 / 4.6 / 4.5$5.00$25.00
Claude Sonnet 4.6 / 4.5 / 4$3.00$15.00
Claude Haiku 4.5$1.00$5.00
Claude Haiku 3.5$0.80$4.00

Falls back to Sonnet 4.6 rates if model can’t be determined.


Star History

Star History Chart


License

MIT