navi install links the
interop skill under .agents/skills/ and adds a project-local launcher under
.agents/bin/; OpenCode already discovers project skills
there. OpenCode 1.17.13’s
skill scanner follows symlinks.
You need macOS or Linux, Node.js 22.13 or newer, and
ripgrep. Git is also required for
revision-aware checks and flows that inspect a diff.
1
Install Navi in the project
2
Verify the connection
3
Configure both model connections
OpenCode and Navi make separate model calls. Authenticate OpenCode with its
normal setup:Then give Navi a provider key. For example:Navi also reads these values from the project’s
.env file.
Keep .env ignored, never paste a credential into an OpenCode or Navi
prompt, and load keys without echoing them before recording a terminal.4
Ask OpenCode to consult Navi
Use OpenCode’s non-interactive OpenCode loads the skill, calls the project-local
run command:.agents/bin/navi
launcher, and returns Navi’s answer. If Navi asks for a deeper read, OpenCode
can run the continuation command and keep the evidence in the same session.A verified interop result
This run used OpenCode 1.17.13 and the public@machinepath/navi@0.1.0 package in a clean repository. DeepSeek was the only
model provider passed to the isolated process. OpenCode loaded the skill, Navi
settled the question in one pass, and Git stayed clean.
/usr/bin/script. Normalization removed terminal
control bytes, replaced the temporary repository path with <project>, and
replaced the elapsed milliseconds with <timing>; it did not change model
wording. Read the
complete normalized recording.
Use the OpenCode TUI
Start OpenCode from the project:If OpenCode does not call Navi
- Restart OpenCode after
navi install. - Run
./.agents/bin/navi --versionto verify the project launcher. - Check that your OpenCode permissions allow both the
skillandbashtools. - Keep OpenCode authentication and Navi’s provider key separate.