How much work is it to run CodeNavi?¶
The honest objection to any self-hosted tool is "someone has to run it." This page answers with the actual commands, one per job, so you can judge the operational cost in a minute. Every command below is the real one from the reference pages, not a summary.
Install: one command¶
On a Linux box with a GPU and Docker (or Podman), the connected install is a single line from your trial or license email:
cd ~ && curl -fsSL https://codenavi.com/trial/install/<your-token> | sh
It detects the GPU before downloading, pulls the matching image, verifies the
signature, writes .env, asks for the path of the codebase to index, and
starts the server. Windows 11 with Docker Desktop is two lines in PowerShell,
no admin. An air-gapped site unpacks the signed package and runs
./setup.sh --airgap instead. macOS runs ./setup.sh and detects the
platform. Details: connected setup,
air-gapped setup, macOS,
Podman.
Verify:
curl -s http://localhost:8765/health | python3 -m json.tool
Index: one command per codebase, then incremental¶
The installer indexes the first codebase. Adding another, or rebuilding one, is one line:
codenavi reindex --full --codebase billing
After that, reindexing is incremental — typically seconds — and can be
triggered by the agent (reindex tool), the web UI, the CLI, or a
webhook from your CI so the index follows main without anyone
remembering to run it.
Connect an agent: one command¶
Every package ships the Claude Code plugin. Two lines, then the agent has the MCP connection, thirteen slash commands and a health hook:
claude plugin marketplace add /path/to/your-codenavi-package/plugins/claude
claude plugin install codenavi@codenavi
Already running CodeNavi and just installed the plugin? /codenavi:doctor
checks the server and writes a correct .mcp.json for the project. For
Codex CLI, Antigravity, VS Code, Zed, OpenCode, Pi and AnythingLLM the
server's own wizard at http://<server>:8765/connect produces the config
block for each client — paste it and you are connected. One server serves
every developer; each machine holds a URL and a token.
Update: one command¶
./update.sh --check # report what's new, apply nothing
./update.sh # download the changed layers, then confirm before applying
Updates are delta packages — usually tens of megabytes, not a fresh image — and the updater verifies the cosign signature before applying and keeps a rollback tag. Air-gapped sites copy the update package in and run the same script. Details: updating CodeNavi.
Watch it: built in¶
/health for the load balancer, Prometheus metrics on :9091, a ready-made
Grafana dashboard, and webhooks for reindex / crawl / scanner events. The
observability quick start is the copy-paste
version. Nothing phones home; you see everything, the vendor sees nothing.
What you own¶
- One box with one GPU. RTX 20-series or newer, or a supported AMD card (GPU matrix). CPU-only indexing works for small repos but is slow; a rented GPU for the initial index is a documented option (rented GPUs).
- A few minutes per release.
./update.sh, read the release note, done. - Nothing per developer. No per-seat provisioning, no accounts to create. The first developer's config block works for the tenth.
What you don't own¶
- No model hosting beyond the container — the embedder is baked in, the reranker downloads once on first start (or ships in the air-gapped package).
- No vector database to operate — LanceDB lives inside the container's data
directory; backup is a snapshot from the UI, CLI or
backuptool. - No cloud account, no API key, no data-processing agreement — unless you choose a cloud LLM for chat, which is an explicit opt-in with a warning.
If the answer to "who runs it?" is still "nobody," the comparison page says plainly when a managed assistant is the better fit.