I noticed a Stop hook in ~/.claude/settings.json that points at Navide, and lsof shows my OpenCode pane listening on a local port. I did not configure either. What are they for, and can I turn them off?
They are push channels: for some CLIs, Navide delivers inter-CLI messages through a way in that is not the terminal input box, and falls back to typing when that does not work out. Everything here is on this machine.
| CLI | Channel | What it needs at launch |
|---|---|---|
opencode |
tui-http — POST /tui/append-prompt then /tui/submit-prompt |
--port <free port> --hostname 127.0.0.1 |
kilo |
tui-http, same paths |
the same, plus KILO_SERVER_PASSWORD |
qwen |
input-file — one appended JSONL record |
--input-file <per-pane file> |
claude |
Stop hook as a turn ends; rewake hook while idle |
nothing; the installed hook arms it |
Every other CLI is typed into as before.
What the Claude hook does. When a Claude pane’s turn ends with a message waiting, the hook’s answer is the message — it becomes the agent’s next instruction without touching the input box. While the pane sits idle, a parked hook wakes it with the message as a system reminder (shown under Claude Code’s Stop hook feedback label). Capped at 5 in a row per pane; anything else falls back to typing.
The trade-offs, stated plainly.
- An
opencodepane’s port carries no password, because that CLI’s own TUI cannot authenticate against its own server; anything running as you can drive that pane. It is bound to127.0.0.1. Kilo’s port is protected by a per-pane secret. - A
qwenpane’s watch file holds each message in the clear until the pane closes; leftovers from a killed backend are swept at the next start. - The Claude hook carries a secret kept in an owner-only file in Navide’s app data directory; it marks the hook as one this machine installed and never leaves the machine.
- A pane you launched with your own
--portis left alone.
Switching one off: Settings → CLI Agents → Push channels. Messages to those panes are then typed in, taking effect on running panes without a restart. Claude’s switch rewrites ~/.claude/settings.json immediately; a Claude pane already open keeps the hooks it started with until its next start.
Source: docs/en-US/inter-cli-messaging.md, docs/en-US/privacy.md