60-70% Token Savings
AST-based parsing returns only signatures — no function bodies, imports, or noise. Your AI agent reads less and responds faster.
60-70% Token Savings
AST-based parsing returns only signatures — no function bodies, imports, or noise. Your AI agent reads less and responds faster.
17 languages
Go, TypeScript, Python, Rust, Java, C#, Dart, Kotlin, Swift, Ruby, and more — via go/ast, tree-sitter, and line-based parsers.
Any AI Tool
Works with Cursor, Claude Code, Antigravity, Windsurf, Cline, Continue, Aider, Copilot, Zed, and your own scripts. No vendor lock-in.
Local & Private
Zero network access, no telemetry, no data collection. All parsing happens on your machine. Fully offline after install.
Given a Go project with thousands of lines, asking “where is the login handler?” traditionally means grepping or reading entire files. vfs gives you just the signatures:
$ vfs . -f logininternal/handlers/auth.go:23: func HandleLogin(w http.ResponseWriter, r *http.Request)internal/services/auth.go:10: func ValidateToken(token string) (*Claims, error)internal/middleware/jwt.go:45: func RequireLogin(next http.Handler) http.HandlerEach line tells you the file, line number, and full signature — no function bodies, no imports, no noise. You (or your AI agent) can then read only the exact lines needed.
Self-benchmark on this repository (pattern "Extract", 4,178 lines of source):
| Read all files | grep | vfs | |
|---|---|---|---|
| Output size | 101.9 KB | 13.8 KB | 1.5 KB |
| Lines | 4,178 | 148 | 15 |
| Est. tokens | 26,079 | 3,537 | 373 |
See the full Benchmark page for details and how to run your own.