Skip to main content
Open Source · Apache-2.0

indexio Code Search

A code search engine for AI coding agents. One Rust binary indexes every repository in your organization and answers in milliseconds — no database, no external service.

CORE_CAPABILITIES

Your Codebase, Queryable

Lexical, semantic, and structural questions — answered from one local index

Millisecond Answers

A trigram index with regex and exact-identifier search answers a query the moment it is asked. The index is a set of files in one directory — copy it to another machine and it just works.

Three Query Modes

Lexical, semantic, or hybrid — lexical, BM25, and vector results fused by Reciprocal Rank Fusion. The built-in Random Indexing model learns your organization's vocabulary on CPU.

Symbols & Call Graph

indexio knows where every function, struct, class, and trait is defined, who calls it, and what breaks if you change it — across every repository in the index.

TOKEN_SAVINGS_MEASURED

Measured, Not Marketing

Same tasks, same repositories, counted with tiktoken — the built-in tools of a coding agent against indexio

−97%

Tokens Across All Tasks

1,579,270 tokens of built-in tool output vs 50,212 through indexio, on identical agent tasks.

−90%

Reading One Function

Outline plus the exact span, instead of the whole file — 41,612 tokens instead of 419,380.

−99.8%

Answering a Question

1,883 tokens of fused, ranked hits instead of 1,144,842 tokens of raw grep and read output.

54%

Fewer Tokens Than JSON

Dense plain-text rows — grouped repo:path and line: snippet — beat compact JSON for the same hits.

Benchmarks from the repository's bench suite — 44 repositories, 10 symbols and 3 file types per repository, questions written by a model.

INSTALL

One Binary, Every Surface

No service to run, no database to manage, no model download. The index is files in a directory.

Command Line

A single binary via curl, npm, pip, or cargo. Index a folder of repositories and search it in three commands.

Features

indexio add ~/code — every repo, any depth
indexio sync — incremental, cron-friendly
indexio stats, usage — index and token reports
git on PATH, nothing else required
curl -fsSL .../install.sh | sh

MCP Server

Thirteen tools over stdio — search, symbols, call graph, impact analysis, and recall across past sessions.

Features

code_search, code_grep, semantic_search
find_symbol, who_calls, impact_of_symbol
file_outline + read_span replace whole-file reads
recall — searchable session transcripts and logs
indexio mcp

HTTP API

indexio serve on http://127.0.0.1:7717. Bearer-token or per-repository ACL auth; loopback is the default.

Features

/search, /symbol, /calls, /impact endpoints
ACL tokens scoped to repo patterns
Non-loopback bind refused without auth
GET /health always open
indexio serve --auth-token $(openssl rand -hex 32)
MCP_INTEGRATION

Native Claude Code Integration

Register the server, install the hooks, and every read and grep of an indexed file routes through the index — automatically

Setup Instructions

1

Install the binary — curl, npm, pip, or cargo

2

Run indexio add ~/code to index your repositories

3

Run indexio setup claude, then indexio hook install

4

Restart the agent session and verify with indexio search

What The Hooks Do

Whole-file reads route to outline + span
Greps of indexed files answer from the index
Long outputs stay out of context via indexio run
Session transcripts become searchable recall
.mcp.json
{
    "mcpServers": {
        "indexio": {
            "command": "indexio",
            "args": ["mcp"]
        }
    }
}

Hook Installation Note

Scripts and builds still run as typed — the hooks only redirect file reads and searches of indexed files. Add # raw to run a refused command as typed.

SECURITY

Private by Design

Nothing is uploaded anywhere. The index lives in one local directory, and sensitive content never enters it.

Credentials Never Indexed

.env files, private keys, certificates, netrc, npmrc, and Terraform state are skipped — and a credential file indexed by an earlier version is removed by the next sync.

Redacted Recall

Session transcripts and run logs are redacted before storage: secret-looking settings, passwords in URLs, API keys, bearer tokens, and JWTs become <redacted>.

Loopback by Default

serve binds to 127.0.0.1 and refuses an open bind without a bearer token or ACL file. Per-token repository scoping keeps hits inside allowed patterns.

GET_STARTED

Get indexio

Open source under Apache-2.0. One binary, one command, and your organization's code is queryable in milliseconds.