Plugins¶
Every agent connects to CodeNavi over MCP; that alone gives it the tools. A plugin adds the parts that make the agent use them without being told: usage rules, commands, and hooks. The plugins are MIT-licensed, carry nothing secret, and your CodeNavi server hands them out itself.
This page is the overview. The install steps live on each agent's page, linked from the table below.
What a plugin adds¶
| Part | What it does |
|---|---|
| MCP connection | Wires the agent to the server — on the agents where the plugin can carry it (see the table below). |
using-codenavi skill |
Teaches the agent the search rules: CodeNavi before blind greps and file reads, one GPU search at a time, codebase= on every call. |
compliance-check skill |
The engine behind the compliance command — see Compliance gap analysis. |
| Commands | search, overview, review, status, codebases, reindex, compliance, doctor, setup, crawl, and a project-summary generator. |
| Session-start hook | Tells the agent at the start of every session that the index is up and, on a multi-codebase server, which codebase this repo is indexed as. When the licence has run out it says so, and names the way back. |
| Grep hook | When the agent greps an indexed tree, the hook answers from the index first. See Grep hook. |
| Statusline | A prompt badge: index coverage of the current repo (✦) and whether CodeNavi was used this turn. See Statusline. |
Which agents get one¶
| Agent | Plugin | What it ships | Install |
|---|---|---|---|
| Claude Code | Yes | MCP connection, 12 /codenavi: commands, both skills, both hooks, statusline |
Claude Code |
| OpenAI Codex CLI | Yes | 11 task skills ($codenavi:<name>), both skills, both hooks. No statusline: Codex cannot run an external one yet. The MCP connection is written by connect-codenavi.sh. |
Codex |
Google Antigravity CLI (agy 1.3.2+) |
Yes | 12 /codenavi: commands, both skills, both hooks, statusline. The MCP connection is written by connect-codenavi.sh. Older agy: the skill only. The Antigravity IDE and desktop app get the MCP connection only — they read the same mcp_config.json. |
Antigravity |
| GitHub Copilot CLI | The Claude Code plugin | Both skills and the session-start hook. It does not connect the server — run copilot mcp add first. Commands and the grep hook are untested there. |
Copilot CLI |
| Claude Desktop, OpenCode, Pi, VS Code, Zed, AnythingLLM, CI bots | No | MCP config only. Give the agent the usage rules by hand: Rules for your agent. | Connect your agent |
Where to get them¶
Your server serves each plugin at two read-only URLs. They need no token:
http://<server>:8765/plugins/claude.git # also .zip
http://<server>:8765/plugins/codex.git # also .zip
http://<server>:8765/plugins/antigravity.git # also .zip
Use localhost when the agent runs on the server machine. No git on the client? The .zip unpacks to codenavi-plugin-<agent>/. Client that cannot reach the server at all? Every package ships the same plugins under plugins/<agent>/.
Updates¶
The served plugin is always the one your server version ships, so update the server first, then the plugin:
| Agent | After a server update |
|---|---|
| Claude Code | claude plugin marketplace update codenavi (Claude Code also does this in the background) |
| Codex | codex plugin marketplace upgrade codenavi && codex plugin add codenavi@codenavi, then trust the hooks again with /hooks |
| Antigravity | git pull the bundle (or fetch the .zip again) and re-run connect-codenavi.sh — agy cannot follow a custom marketplace, and its statusline is a copy |
Grep hook¶
When the agent runs grep or rg over an indexed tree, the hook answers from the index first: the symbol's definition and callers, or the top semantic hits. Set its mode with CODENAVI_HOOK_GREP:
| Value | Effect |
|---|---|
| (unset) | Hint — the index answer is shown and the grep still runs |
block |
The grep is denied when the index already answers it, and the agent is told which tool to use instead (semantic_search, grep_search or read_file, with codebase= filled in) |
off or 0 |
The hook does nothing |
Where to set it:
- Claude Code — in the
envblock of~/.claude/settings.json.python3 <plugin>/statusline/install.py env CODENAVI_HOOK_GREP=blockwrites it for you and refuses unknown values. - Codex —
export CODENAVI_HOOK_GREP=blockin the shell that starts Codex. - Antigravity — in agy's environment.
In block mode, the prefix CODENAVI_HOOK_GREP=hint grep … runs one raw grep anyway — use it for files the index skips (dotfiles, lockfiles, vendored trees).
The hook never intercepts a grep over named files, or a path held in a shell variable it cannot see. It only acts on an indexed tree: inside a git repo, the repo's name must match a codebase name exactly. Outside a repo, a folder named after the codebase counts, and so does name-something — unless a folder named exactly name sits next to it.1
Statusline¶
The badge shows the current repo's index coverage (✦), or "uncovered", or a server-down marker, and whether CodeNavi was used this turn. A trial licence near its end adds an expiry badge.
- Claude Code —
/codenavi:status-line enable(alsodisable,status). - Antigravity —
connect-codenavi.shinstalls it;--no-statuslineskips it,python3 statusline/install.py disablerestores your previous one. - Codex — not possible yet; see Codex → Statusline.
Server on another machine¶
The plugin, the badge and the hooks find the server through CODENAVI_HOST, CODENAVI_PORT and CODENAVI_AUTH_TOKEN. On Claude Code, put them in the env block of ~/.claude/settings.json — /codenavi:doctor writes it for you. On Codex and Antigravity, pass --host <server-ip> to connect-codenavi.sh. Details: Remote access.
-
Vendor change reference CN-819. ↩