Small, sharp, local-first tools for people who ship agents and need to see what they're actually doing.
Sharp, local-first tools β lint your tools, capture a run, replay it, and fix what's slow.
| what it does | |
|---|---|
| π§Ή toollint Β |
Linter for tool / function-calling schemas β catches the mistakes that make agent tool-calls silently fail. Anthropic + OpenAI dialects, zero deps. |
| π° llmtap Β |
Transparent proxy β record every Anthropic API call with zero code change (one env var). Streaming-aware, live cost/cache dashboard. |
| βͺ rewind Β |
Time-travel debugger β inspect any step of a recorded run, then fork & replay it with edits to ask "what if?" |
| π cachelens Β |
Prompt-cache doctor β finds why your cache isn't hitting and how much it's costing you. |
| π§ trickle Β |
Best-effort parser for partial / streaming JSON β read tool-call fields as they stream in, before the closing brace. Zero deps. |
| βοΈ ctxfit Β |
Trim conversation history to a token budget without breaking it β never orphans a tool_use/tool_result pair. Zero deps. |
| β
msglint Β |
Pre-flight validator for the Anthropic Messages API β catches the structural bugs that cause 400s (bad alternation, dangling tool_use, system-in-messages) before you send. Zero deps. |
| πΆοΈ cloak Β |
Reversibly redact secrets & PII from prompts before they leave your machine β keys, emails, cards, IPs β stable placeholders, restored when the model echoes them back. Zero deps, offline. |
| π spincheck Β |
Catch an agent stuck in a loop β repeats, A-B-A-B cycles, low-novelty churn β before it burns your token budget. Watches the tool-call stream, trips with a reason. Zero deps. |
| π§ coax Β |
Repair & coerce tool-call arguments to match your JSON Schema β "5"β5, "yes"βtrue, stringified-JSONβobject, scalarβarray, wrong-case enums. Fixes the type wobble that throws in your handler, with an audit trail. Zero deps. |
| π₯« canned Β |
Deterministic, offline test double for the Anthropic Messages API β script replies (tool calls included), drop the stub in where your code wants a client, assert on what the agent did. No API key, no network. Zero deps. |
| πΌ streamfold Β |
Reconstruct the final Anthropic message from a recorded SSE stream β folds text/tool_use/thinking deltas + usage back into one message, and flags truncated or corrupt streams. Offline, zero deps. |
| π§Ύ tariff Β |
Cost calculator for Anthropic API usage logs β turns logged usage into dollars with the cache tiers done right (read 0.1Γ, write 1.25Γ/2Γ, batch 0.5Γ). Digs records out of messy logs, groups by model. No key, offline, zero deps. |
| 𧬠schemize  |
Infer a JSON Schema from example JSON values β feed it a sample tool output or API response and get a clean draft-2020-12 schema for your tool params / structured outputs. Merges examples (required vs optional, null/number unions), detects formats. Offline, zero deps. |
| π transmute Β |
Convert chat payloads between OpenAI and Anthropic β moves the system prompt, rewrites tool_callsβtool_use, role:"tool"βtool_result, images and tool defs, and fixes role alternation so the other provider just accepts it. Both directions, offline, zero deps. |
| π¬ promptdiff Β |
Structure-aware diff of two Anthropic Messages API requests β skips the JSON-formatting noise and shows what actually changed: model/params, tools added/removed/retyped, a word-level system-prompt diff, and message inserts/edits. Offline, zero deps. |
llmtap (capture) β rewind (replay) β cachelens (optimize)