open sourceLocal context engineContext engine for AI coding agents

Save up to 30% of your AI coding tokens.

uv tool install scubiee

Scubiee indexes your repository on your machine and hands your coding agent focused, ranked context, so it spends tokens writing code, not finding it.

Fewer tokens, on average
30%
Three-turn coding-agent test, in some of the harnesses we tried
Less context overhead
60–70%
Same three-turn experiment
Index, retrieval, and source stay on your machine
Local
Network is used to install and to download the embedding model
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.”
  1. 01$ grep "resource" .search
  2. 02↳ 142 matchesnoise
  3. 03$ rg "resourceManager"search
  4. 04↳ 17 matchesnoise
  5. 05$ cat src/runtime/manager.tsread
  6. 06$ rg "session" src/search
  7. 07$ read session.tsread
  8. 08$ inspect related filesfollow
  9. 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.

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?"
  1. 1src/http/limits.tsrateLimit()
  2. 2src/http/middleware.tsapplyLimits()
  3. 3config/limits.yamldefault_window
  4. 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.

callercallercalleesiblingsymbol

Focused context

Read only what matters.

Return focused context instead of large, token-heavy file dumps.

Incremental sync

Stay up to date.

Refresh changed files incrementally as your codebase evolves.

changed

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. 1
    status(root=".")once per session

    → managed: true · ok: true

  2. 2
    map find(query="resource management")don't know where

    → ranked locations + relevant code inline

  3. or
    map focus(names="ResourceManager")or: know the name

    → full body + callers/callees + siblings

  4. 3
    editact on the first good answer

    → agent's native edit tools

  5. 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

  • Continue

    scubiee connect --continue

  • Zed

    scubiee connect --zed

  • OpenCode

    scubiee connect --opencode

  • Amp

    scubiee connect --amp

  • Pi

    scubiee connect --pi

  • 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.

Native search only

Without Scubiee

  1. 1grep "resource"
  2. 2rg "resourceManager"context
  3. 3read manager.tscontext
  4. 4grep "session"context
  5. 5read session.tscontext
  6. 6inspect related filescontext
  7. 7code

Scubiee MCP

With Scubiee

  1. 1status
  2. 2map find("resource management")
  3. 3ranked files + inline code
  4. 4edit

More room left for actual coding.

7 → 4 stepsfrom question to edit

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.

  • Open source · Apache 2.0
  • Runs on 127.0.0.1
  • Works with 13 coding tools

Four commands

Python 3.11+ · uv

  1. 01Install

    uv tool install scubiee
  2. 02Set up your machine

    scubiee setup
  3. 03Connect your agent

    scubiee connect --cursor
  4. 04Index your repo

    scubiee init .

connect wires your IDE once; init indexes each repo. Swap --cursor for your tool on the install page.