Launched this week

recon
35× fewer tokens for AI coding agents
19 followers
35× fewer tokens for AI coding agents
19 followers
Local-first MCP server for AI coding agents. A 24 MB Rust binary that replaces Read, Grep, and Glob with 12 symbol-aware tools — 15–35× token reduction, 8 ms queries on 320K symbols. Your code never leaves your machine.









Hey Product Hunt 👋
Most AI coding agents burn 95% of their context window on Read, Grep, and Glob. They read entire files, grep across the whole repo, and glob every match — when all you needed was one function.
23,838 tokens to find one function. The same answer fits in 681.
I built recon to fix this. It's a 24 MB local-first MCP server in Rust that gives your agent twelve symbol-aware tools — find_symbol, outline, skeleton, repo_map, etc. — instead of bulk file reading. Tree-sitter for parsing, Tantivy for search, SQLite for the index. p99 query latency is ~8 ms on 320K symbols.
Setup is three steps:
1. Sign in with GitHub
2. recon login
3. recon init --mcp <ide> // claude , opencode , cursor , windsurf
Then your agent does the rest — recon writes the MCP config for whichever IDE you use and adds a strict policy file telling the model to prefer the symbol-aware tools.
Now available on Claude Code, opencode, Cursor, and Windsurf.
Why it matters:
- Code never leaves your machine. Your repo is indexed locally; only license validation hits the cloud.
- 9 languages indexed (Rust, TS, JS, Python, Go, Java, C/C++, Ruby) via tree-sitter.
- File save → queryable in <1 s.
- Free tier: 1 repo, 250 files, 10K LOC. Pro: 10 repos, 5,000 files/repo, 200K LOC. No credit card to start.
Honest first-launch admission: the .pages.dev URL is on the Cloudflare shared-subdomain TLD, which some link previewers (LinkedIn especially) flag defensively. A custom domain is in flight. If a link warns you, copy it into the address bar.
Try it: https://mcprecon.pages.dev/ Genuinely curious what breaks for you. The hardest part of building this was making sure the agent actually reaches for the symbol-aware tools instead of falling back to its trained Read/Grep prior— would love to hear how it lands in your IDE.
— bravo1goingdark