| Crates.io | gabb-cli |
| lib.rs | gabb-cli |
| version | 0.7.6 |
| created_at | 2025-12-16 16:14:33.62875+00 |
| updated_at | 2025-12-16 18:28:53.968747+00 |
| description | Fast local code indexing CLI for TypeScript, Rust, and Kotlin projects |
| homepage | https://github.com/gabb-software/gabb-cli |
| repository | https://github.com/gabb-software/gabb-cli |
| max_upload_size | |
| id | 1988208 |
| size | 505,484 |
Gabb is a Rust CLI that builds a local code index so editors and AI coding assistants can answer questions like "where is this implemented?" without shipping your sources to a remote service. It includes an indexing daemon that stays in sync with filesystem changes.
gabb daemon start/stop/restart/status, gabb symbols, gabb symbol, gabb implementation, gabb usages, gabb definition, gabb duplicates, gabb mcp-server# 1) Build (or install) the CLI
cargo build # or: cargo install --path .
# 2) Start the daemon in background from your project root
gabb daemon start --background
# 3) Query the index
gabb symbols --kind function --limit 10
gabb symbol --name MyClass
gabb usages --file src/main.rs:10:5
The daemon will crawl your workspace, index all supported files, and keep the SQLite database up to date as files change. Use -v/-vv to increase logging.
Query commands (symbols, usages, etc.) will auto-start the daemon if it's not running.
cargo install --path .
cargo build
gabb daemon start --root <workspace> --db <path/to/index.db> [--rebuild] [--background] [-v|-vv]
gabb daemon stop [--root <workspace>] [--force]
gabb daemon status [--root <workspace>]
gabb symbols --db <path/to/index.db> [--file <path>] [--kind <kind>] [--limit <n>]
gabb symbol --db <path/to/index.db> --name <name> [--file <path>] [--kind <kind>] [--limit <n>]
gabb implementation --db <path/to/index.db> --file <path[:line:char]> [--line <line>] [--character <char>] [--limit <n>] [--kind <kind>]
gabb usages --db <path/to/index.db> --file <path[:line:char]> [--line <line>] [--character <char>] [--limit <n>]
gabb mcp-server --root <workspace> --db <path/to/index.db>
Flags:
--root: workspace to index (defaults to current directory)--db: SQLite database path (defaults to .gabb/index.db)--rebuild: delete any existing DB at --db and perform a full reindex before watching-v, -vv: increase log verbosity
Symbols command filters:--file: only show symbols from a given file path--kind: filter by kind (function, class, interface, method, struct, enum, trait)--limit: cap the number of rows returned
Implementation command:--file and --line/--character or embed the position as --file path:line:charUsages command:
Symbol command:
What gets indexed:
*.ts, *.tsx, *.rs, *.kt, *.ktsGabb includes an MCP (Model Context Protocol) server that exposes code indexing tools to AI assistants like Claude. This allows Claude to search symbols, find definitions, usages, and implementations in your codebase.
| Tool | Description |
|---|---|
gabb_symbols |
List or search symbols in the codebase |
gabb_symbol |
Get detailed information about a symbol by name |
gabb_definition |
Go to definition for a symbol at a source position |
gabb_usages |
Find all usages/references of a symbol |
gabb_implementations |
Find implementations of an interface, trait, or abstract class |
gabb_daemon_status |
Check the status of the gabb indexing daemon |
Add the following to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"gabb": {
"command": "gabb",
"args": ["mcp-server", "--root", "/path/to/your/project"]
}
}
}
Replace /path/to/your/project with your workspace path. The MCP server will auto-start the daemon if needed.
Add the following to your Claude Code MCP settings:
{
"mcpServers": {
"gabb": {
"command": "gabb",
"args": ["mcp-server", "--root", "."]
}
}
}
Using --root . means gabb will use the current working directory as the workspace root.
src/main.rs: CLI entrypoint and logging setupsrc/daemon.rs: filesystem watcher and incremental indexing loopsrc/indexer.rs: full/index-one routines and workspace traversalsrc/languages/: language parsers (TypeScript, Rust, Kotlin) built on tree-sittersrc/store.rs: SQLite-backed index storesrc/mcp.rs: MCP server implementation for AI assistant integrationARCHITECTURE.md: deeper design notescargo fmt && cargo clippy --all-targets --all-featurescargo testcargo doc --openIssues and PRs are welcome. Please:
feat: ..., fix: ...)cargo fmt, cargo clippy, and cargo test before submitting