Three-turn coding-agent test, in some of the harnesses we tried
context
Less context overhead
60–70%
Same three-turn experiment
privacy
Index, retrieval, and source stay on your machine
Local
Network is used to install and to download the embedding model
on your machine
tools
Coding tools wired with one command
13
scubiee connect: Cursor, Claude Code, Codex, and more over MCP
The problem
Where do those tokens go?
Before your agent can write code, it spends context searching, opening files, and following connections.
01
Finding the code
The agent searches broadly before it knows where to work.
Task“Add resource management.”
01$ grep "resource" .search
02↳ 142 matchesnoise
03$ rg "resourceManager"search
04↳ 17 matchesnoise
05$ cat src/runtime/manager.tsread
06$ rg "session" src/search
07$ read session.tsread
08$ inspect related filesfollow
09finally codeedit
02
Understanding the connections
One useful file leads to the related code the change depends on.
session.ts
createSession()
middleware.ts
requireAuth()
user.ts
type User
token.ts
verify(jwt)
store.ts
readSession()
auth.ts
no references
01
Repeated searching
Broad grep and rg passes return far more matches than the task needs, and the agent reads through them.
02
Redundant file reads
Whole files land in context just to locate one function.
03
Connections by hand
Imports and callers get traced one tool call at a time before the first edit.
How it works
Index once. Ask by meaning.
Three simple steps, plus a refresh loop: Scubiee builds a local index of your code and its relationships, then answers each agent query with focused context.
Build a local repository index on your machine.
scubiee init .
Tree-sitter parses each file into symbols across languages.
Imports and calls become graph edges between files.
Symbol-oriented chunks are embedded with CodeRankEmbed, on GPU when available.
Vectors, a lexical index, the graph, and chunks are stored under ~/.scubiee.
Build · scubiee init / sync
Your repository
source files on disk
Merkle scan
Parse & graph
Tree-sitter AST
imports · calls
Chunk & embed
symbol chunks
CodeRankEmbed
Query · every agent call
Coding agent
Cursor, Claude Code,
Codex, OpenCode…
map over MCP
find · focus
gate / status
Retrieve & fuse
BM25 · semantic · graph
RRF fusion
Local index
~/.scubiee/projects/<id>
FAISS vectors
lexical index
code graph
chunks + manifest
Both lanes share one local index. The build lane runs when you index or sync; the query lane runs on every agent call.
Capabilities
It helps your AI find the right code.
Scubiee gives coding agents focused repository context before they start writing.
Semantic retrieval
Find the right code.
Search by meaning and surface the files that matter to the task, ranked, with the relevant code inline.
BM25 lexical
CodeRankEmbed semantic
imports · calls graph
RRF fusion
map find"where are request limits enforced?"
1src/http/limits.tsrateLimit()
2src/http/middleware.tsapplyLimits()
3config/limits.yamldefault_window
4src/http/limits.test.tsdescribe("rateLimit")
Illustrative query · results ranked by fused relevance
Code relationships
Understand the codebase.
Follow relationships between files without opening the whole repository.
Focused context
Read only what matters.
Return focused context instead of large, token-heavy file dumps.
whole-file reads
the code the task needs
Incremental sync
Stay up to date.
Refresh changed files incrementally as your codebase evolves.
Local-first
Run locally.
Keep your repository index and source code on your machine.
engine on 127.0.0.1:8765
Agent-native
Built for agents.
Connect to the coding tools you already use through MCP. CUDA, DirectML, Apple MLX, or CPU: the right embedding profile is detected at setup.
MCPCUDADirectMLMLXCPU
MCP tools
What your agent actually calls.
Scubiee exposes one tool, map, with two configs. Pick by what you know; act on the first good answer and stop.
agent session · scubiee MCP
recommended flow
1
status(root=".")once per session
→ managed: true · ok: true
2
map find(query="resource management")don't know where
→ ranked locations + relevant code inline
or
map focus(names="ResourceManager")or: know the name
→ full body + callers/callees + siblings
3
editact on the first good answer
→ agent's native edit tools
4
scubiee sync .if needed
→ refresh changed files
map find“Where is X handled?”
You don't know where the code is. One query → ranked locations with the relevant code inline. Also orients a wide/unknown area and pulls code near a chunk you already hold.
map focus“Show me this handler and how it's wired.”
You know the symbol name. Returns its full body + callers/callees + sibling symbols in one unit, so you can edit straight from it.
gate / status“Is this repo ready?”
One health check at session start: managed, warming, or needs init/connect.
Partners with native tools
map partners with your agent's native Grep/Read: a known literal or exact path stays with the native tool.
Integrations
Use it where you already code.
Connect Scubiee to compatible coding agents through the Model Context Protocol. One command wires each of the 13 supported tools; reload MCP and you're done.
Cursor
scubiee connect --cursor
Claude Code
scubiee connect --claude-code
Codex
scubiee connect --codex
Kiroper project
scubiee connect --kiro
Windsurf
scubiee connect --windsurf
GitHub Copilotper project
scubiee connect --copilot
Clineper project
scubiee connect --cline
Roo Codeper project
scubiee connect --roo-code
Co
Continue
scubiee connect --continue
Ze
Zed
scubiee connect --zed
OpenCode
scubiee connect --opencode
Amp
scubiee connect --amp
Pi
Pi
scubiee connect --pi
MCP
Any MCP client
if it supports MCP
Compatibility is provided through MCP and does not imply endorsement by, or partnership with, any agent provider. Tools marked (per project) read workspace-local MCP config, so run connect inside each project.
Before and after
Less searching. More building.
Give your agent a shorter path from a question to the code it needs.
Illustrative workflow for the same task, “Add resource management.” It shows the shape of the change, not measured data. Measured results are below.
Measured · three-turn experiment
Less context. Same job.
What we measured when the same coding tasks ran with and without Scubiee.
60–70%
fewer context tokens
than the comparison workflow
30%
fewer tokens on average
in some of the agent harnesses tested
Context used for the same task
Comparison workflowbroad context
Scubieefocused context
Bars are a visual aid, scaled to the measured 60–70% range.
In our three-turn coding-agent experiment, Scubiee used about 60–70% fewer context tokens than the comparison workflow, and about 30% fewer tokens overall on average in some of the agent harnesses we tested. These are experiment results, not guarantees. Results vary by agent, repository, and task.
Local-first
Your code stays on your machine.
Scubiee builds and uses its repository index locally, so your source code does not need to leave your computer.
Your machine
Network, one time: package from PyPI · embedding model download at setup
Your repository
source stays in place
<repo>/.scubiee/id.json
scubiee CLI
setup · init · connect · sync
Scubiee engine
background daemon
127.0.0.1:8765
Local index
~/.scubiee/projects/<id>
vectors · graph · chunks
scubiee-mcp
spawned by your IDE
forwards map calls
Coding agent
Cursor, Claude Code,
Codex, and more
On your machine, the scubiee CLI and your repository feed the Scubiee engine, a background daemon on 127.0.0.1 that keeps the local index under ~/.scubiee. Your IDE spawns scubiee-mcp, which forwards the coding agent's map calls to the engine. The network is used once to install the package from PyPI and download the embedding model.
Index and retrieval run locally
Parsing, embedding, search, and ranking happen in the engine on your computer.
Data lives on your disk
The index sits under ~/.scubiee. Wiping a repo removes its enrollment and index, never your source code.
Smaller context, same agent
Your coding agent still sends the context it chooses to its model provider. Scubiee keeps that context focused.
Ready when you are
Start using Scubiee.
Less searching. Better context. More building. Free, open source, and running on your machine.