nika doctor reads your machine —
offline, presence-only — and prints the exact command that closes every
gap it finds.
- Presence, never values. A key is reported set or unset — the value is never read into a variable, so it can never reach your terminal, a log, or a trace.
- Offline by default. The base run touches nothing on the network.
--ping(opt-in) TCP-probes your local ports only — never a vendor endpoint, and nothing is ever sent on the socket. - Diagnose-only. Doctor prints fixes, it never runs them. Your shell,
your
PATH, your configs stay untouched (nika wireis the explicit, idempotent mutator when you want one).
A fresh machine, honestly
Captured verbatim againstnika 0.97.0 on a machine with no keys, no
configs, no editors wired — the worst case, and every line hands over:
fix: line. Warnings are advisory: with no workflow in
hand, doctor cannot know which provider you need, so an unset key is never
an error.)
Read it in one pass:
| Row | What it tells you |
|---|---|
binary | The engine is self-contained — spec, schema, examples, templates all embedded. No install step is missing. |
agent | Which editors/agent clients have MCP wiring to the real oracle. Every unwired row prints its own nika wire <client>. |
local | The keyless, sovereign path — these providers need a running server, not an account. |
provider | Cloud keys by presence (local-first ordering; set only the ones you’ll use). |
image · tts | The media planes — mock always works, so media workflows are testable with zero keys too. |
Probe the local ports
The local providers row says « needs a running server » —--ping answers
whether one is actually there (loopback connect, 300 ms cap, nothing sent):
For scripts and agents
Every fact above ships as JSON — agents and CI branch onsummary.fail
instead of parsing glyphs:
The fix that mutates, explicitly
Doctor never edits configs. When a row saysfix: nika wire cursor, that
command — and only that command — writes the MCP wiring, idempotently,
preserving whatever other servers the config already carries:
Next
First workflow
Your first run needs none of the keys above —
mock/echo is free and offline.Local models
Turn the
local row into a running, keyless inference path.Editors
What the wired editor actually does (diagnostics · canvas · time-travel).
Agents
nika init briefs your agents; nika wire points them at the oracle.