Six tools. One radical reduction.
Each tool replaces multiple native Claude calls with a single efficient one. Together, they cut 40–70% of your token spend.
37 supported languages
AST Symbol Index
270× less tokens270× fewer tokens. Every symbol, instantly.
The AST Symbol Index builds a local tree-sitter powered map of every symbol in your codebase. When Claude needs to find a function or type, instead of reading entire files (8,000+ tokens each), it queries the index and gets back exactly what it needs in ~30 tokens.
Tree-sitter parses your code at the AST level — not just text search. This means it understands scope, knows the difference between a definition and a usage, and handles complex syntax across all 37 supported languages. The index is rebuilt incrementally as files change.
// Before: read entire file to find a type
Read("src/auth/types.ts") // 8,200 tokens
// After: query the index directly
Sql({ op: "search", name: "AuthUser", type: "interface" })
// → returns: file:line, body, references. ~30 tokensSmart Search
7 calls → 1Ripgrep + AST in one round-trip. Delta mode for re-reads.
Smart Search merges ripgrep (fast regex over files), AST symbol lookup, and file reading into a single tool. You get matches, file content, and symbol maps in one call — what used to take 5–7 separate tool calls.
Delta mode is a game-changer for re-reads: when Claude reads the same file twice in a session, the second call returns only the lines that changed since last read (a unified diff). This cuts re-read costs by 80–95% on files that barely changed.
// Before: separate grep + read loop
grep("useAuth") // call 1
Read("src/hooks.ts") // call 2
Read("src/context.tsx") // call 3
// After: one call with everything
Search({
content_regex: "useAuth",
output_mode: "file_paths_with_content",
summary: true
})Batch Edit
5 calls → 1All your edits in one atomic roundtrip.
Batch Edit replaces the Read-Edit-Read-Edit loop with a single call that applies all changes atomically. Every write is backed up before modification. Multi-file refactors that used to cost 20+ round-trips now cost 1.
The pre-write backup system stores a snapshot of each file before modification. If something goes wrong mid-edit, you can restore from the snapshot. This makes batch edits as safe as they are fast.
// Before: read every file before editing
Read("src/a.ts") // 8,200 tokens
Edit("src/a.ts")
Read("src/b.ts") // 6,100 tokens
Edit("src/b.ts")
// After: one atomic call
Edit({ edits: [
{ file: "src/a.ts", old_string: "...", new_string: "..." },
{ file: "src/b.ts", old_string: "...", new_string: "..." },
]})