High-performance local search and indexing engine for large codebases
Project description
Sari - Local MCP Code Search + Daemon + Dashboard
Sari is a local-first MCP server for large codebases. It provides:
- Fast local indexing/search
- Multi-workspace registration
- Daemon lifecycle management
- Web dashboard for runtime/index visibility
Your code stays on your machine.
Quick Start
1. Install
Recommended:
uv tool install sari
Check install path:
which sari
2. Start daemon
sari daemon start -d
3. Register workspaces to index
sari roots add /absolute/path/to/repo-a
sari roots add /absolute/path/to/repo-b
sari roots list
4. Open dashboard
Default URL:
http://127.0.0.1:47777/
The dashboard shows status, health, workspace list, and per-workspace indexed file counts.
5. Verify runtime
sari daemon status
sari status
MCP Setup
Minimal MCP server configuration (recommended):
Codex CLI (~/.codex/config.toml)
[mcp_servers.sari]
command = "sari"
args = ["--transport", "stdio", "--format", "pack"]
Gemini CLI (~/.gemini/settings.json)
{
"mcpServers": {
"sari": {
"command": "sari",
"args": ["--transport", "stdio", "--format", "pack"]
}
}
}
You can also generate host-specific config snippets:
sari --cmd install --host codex --print
sari --cmd install --host gemini --print
Workspace Registration Model
Sari uses config roots (not per-CLI hardcoded workspace env).
Primary commands:
sari roots add /abs/path
sari roots remove /abs/path
sari roots list
Config location resolution:
<workspace>/.sari/mcp-config.jsonif present- Fallback:
~/.config/sari/config.json
Daemon Lifecycle (Current Policy)
- Sari runs a single daemon endpoint per target host/port.
- If version mismatch is detected, daemon is replaced on same endpoint.
- Daemon autostop is session-aware:
- If at least one active client session exists, daemon stays alive.
- If active sessions drop to 0, daemon stops after grace period.
- Orphan index workers are handled with two safety layers:
- Worker self-termination when parent daemon is gone.
sari daemon stoporphan sweep.
Useful commands:
sari daemon start -d
sari daemon ensure
sari daemon status
sari daemon stop
sari daemon refresh
Dashboard and HTTP Endpoints
When daemon HTTP is up, these endpoints are available:
/: Dashboard UI/health: Liveness/status: Runtime/index/system summary/workspaces: Registered workspace state/search?q=...&limit=...: HTTP search/rescan: Trigger rescan/health-report: Extended diagnostics
Example:
curl "http://127.0.0.1:47777/status"
curl "http://127.0.0.1:47777/workspaces"
Common Operations
Force rescan
sari --cmd index
Doctor
sari doctor
Show active config
sari --cmd config show
Data Paths
- DB:
~/.local/share/sari/index.db - Registry:
~/.local/share/sari/server.json - Logs:
~/.local/share/sari/logs/ - Global config:
~/.config/sari/config.json - Workspace config:
<workspace>/.sari/mcp-config.json
Troubleshooting
Dashboard shows CJK tokenizer dictionary error
If the environment was installed before the dependency update, install or upgrade:
uv pip install lindera-python-ipadic
Port conflict
sari daemon stop
sari daemon start -d --daemon-port 47789
CLI updated but daemon still old
sari daemon refresh
Upgrade / Remove
uv tool upgrade sari
uv tool uninstall sari
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sari-0.6.23.tar.gz.
File metadata
- Download URL: sari-0.6.23.tar.gz
- Upload date:
- Size: 370.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ccd8d8a5c52b25178e88d5f2899e2a852b75986d1cafd7e662d3f76e69d3b81e
|
|
| MD5 |
1d9f8b7f3338f35c89b3eb177a8fa0b2
|
|
| BLAKE2b-256 |
3cc21c8a996a47fb77e7d447c8dcf536d875cb818b483d0d295ad4d6248e8ccf
|
File details
Details for the file sari-0.6.23-py3-none-any.whl.
File metadata
- Download URL: sari-0.6.23-py3-none-any.whl
- Upload date:
- Size: 333.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b15636dacb5ceb48214a88a38344d5844024624671d8173580aa8a85f239a86
|
|
| MD5 |
acf09022aa85ba38f34ff8491a2d74ac
|
|
| BLAKE2b-256 |
eb69294d837a6a265bdd381b4dbe743db80d19ff9d69a44ef0b89c7b474bc6ac
|