Spend tokens on coding, not searching.
4.2–5.9× better search → 94–98% fewer tokens spent on retrieval.curl -fsSL https://install.noodlbox.io | bashnbx search "auth refresh flow"Build a semantic map of your codebase
nbx init resolves the repository into symbols, relationships, communities, and workflows — one local graph every command can reuse.
nbx initSearch code by structure, not strings
nbx search follows calls and workflows to return the symbols, definitions, and communities that belong in the task's context.
nbx search "auth refresh flow"- Seed
- Follow
- Group
- Deliver
Models should reason about code, not how to find it.
Compute retrieval. Reason over results.
Symbol 360°
nbx def returns the definition, callers, callees, references, and functional community for one symbol.
nbx def refreshToken --file auth/session.ts{
"status": "found",
"symbol": {
"uid": "8f3c91d1c9f6f9c9e5e9c6a91f3b52e22ca89b771d2c1f0d30f70b13ea80264a",
"name": "refreshToken",
"kind": "Function",
"file_path": "auth/session.ts",
"start_line": 84,
"start_column": 0,
"end_line": 98,
"signature": "async function refreshToken(session: Session)"
},
"incoming": {
"calls": [
{
"symbol_uid": "2a29a1ee41b5c933",
"name": "retryOn401",
"file": 1,
"line": 121,
"kind": "Function"
},
{
"symbol_uid": "317fe15d507be34a",
"name": "warmSessions",
"file": 2,
"line": 63,
"kind": "Function"
}
]
},
"outgoing": {
"calls": [
{
"symbol_uid": "74c5b0129a32dc41",
"name": "rotateStore",
"file": 0,
"line": 103,
"kind": "Function"
},
{
"symbol_uid": "be91f97031140120",
"name": "persistSession",
"file": 0,
"line": 118,
"kind": "Function"
}
]
},
"files": [
"auth/session.ts",
"web/api-client.ts",
"jobs/session-warmer.ts"
],
"community": {
"community_uid": "auth-session-43",
"label": "Auth & Session",
"size": 43
},
"documents": []
}Cypher Queryable
nbx query traverses symbols and typed relationships directly for precise structural questions.
Graph schema and supported Cypher →nbx query '
MATCH (caller)-[r:CALLS]->(target)
WHERE target.name = "refreshToken"
RETURN caller.name AS caller,
type(r) AS relationship
'[
{
"caller": "retryOn401",
"relationship": "CALLS"
},
{
"caller": "warmSessions",
"relationship": "CALLS"
}
]How much of the relevant code does your agent actually find?
One query, capped at 8K tokens: how much of the code that matters makes it into window.
See full results and methodology →Based on SWE-bench Lite · 39 tasksat 8K: 83.3% vs ripgrep 14.1%if ripgrep keeps hunting: 447K tokens median
Context HubAlpha
Popular repositories, already compiled into public boxes.
QUERY IT LIKE ANY BOX
nbx search "router cache" --hub github:vercel/next.js--hub and the command reads your local box.PREVIEW AGENT INSTRUCTIONS ↗The engine
Fast, deterministic context for the code you are editing.
FAQ
What runs locally, what reaches the agent, and where the free line sits.
What is a code context compiler?
It resolves source code into stable symbols, relationships, communities, and workflows, giving agents better search across definitions and execution paths without discovering the repository from scratch.
How is this different from grep or vector search?
Grep matches strings and vector search matches similarity. Noodlbox also follows resolved symbol identity and typed code relationships, so a query can return the definitions and execution paths that belong together rather than a pile of nearby text.
Does private source code leave my machine?
No. Private source and its compiled graph stay local. Repository registration sends a hash of the remote identity so Noodlbox can issue a signed allowance; it does not store the private repository URL or its code.
Which coding agents can use Noodlbox?
Any coding agent that can run the local CLI. The setup prompt installs the nbx skill for Claude Code, Cursor, Codex, and OpenCode; other agents can invoke the same commands directly.
Which languages are supported?
TypeScript, JavaScript, and Python are stable. Go is in beta, and Rust is in preview.
What is free?
Public boxes are unlimited, and your first private box is free forever. There is no timed trial or query cap. Basic unlocks unlimited private boxes.
Can one box contain more than one repository?
Yes. A box can compile several related repositories into one context boundary. If any repository in that box is private, the box counts as private.