Skip to content

Repository files navigation

Nika

nika-agents · the Nika plugin marketplace

gate skills.sh

Teach your agent to hand repeatable work to Nika: a plain-text workflow it can check before a token is spent and verify after.
One Add installs the whole suite: 4 skills · 3 subagents · 6 slash commands · 3 hooks · the read-only MCP oracle (9 tools: nika_check · nika_explain · nika_schema · nika_examples · nika_template · nika_canon · nika_catalog · nika_tools · nika_inspect).

A fresh machine: nika wire all creates the MCP config for fifteen agent clients in one command, then nika welcome confirms every editor wired, local models first, zero keys needed · the one-command wiring story, recorded against the released binary

Pick your door

The binary first, everywhere: brew install supernovae-st/tap/nika (other paths). Then one Add for your client:

# Claude Code · updating is TWO rungs (clone, then install, then restart)
claude plugin marketplace add supernovae-st/nika-agents
claude plugin install nika@nika
# Codex · the per-version cache refreshes on your next run
codex plugin marketplace add supernovae-st/nika-agents
codex plugin add nika@nika
# Grok Build · reads the Claude Code kit natively; --trust activates hooks + MCP
grok plugin marketplace add supernovae-st/nika-agents
grok plugin install nika@nika --trust
# OpenClaude · its loader reads the same marketplace layout, unported
openclaude plugin marketplace add supernovae-st/nika-agents
openclaude plugin install nika@nika
# Hermes, or any skills.sh-compatible client
npx skills add supernovae-st/nika-agents

Cursor · search "nika" in Settings → Plugins, one Add installs the full bundle (a manual drop into ~/.cursor/plugins/local/ loads MCP + skills ONLY · until the listing serves you, nika init equips the repo fully). Everyone else (opencode · Kimi Code · Gemini CLI · Zed · Cline · Copilot CLI · Amp · Warp · 30+ clients): nika init equips the repo, nika wire <client> wires the machine, and the read-only oracle rides any MCP client. Every door on one page: docs.nika.sh/integrations/everywhere.

Your first minute

Once installed, paste one of these into your agent:

Turn this repeatable task into a checked Nika workflow.

Validate this .nika.yaml file and repair every finding.

Diagnose this failed Nika run from its trace.

The plugin proposes the command; you type it. Spend is capped at the call that would cross the cap, the effect boundary is declared in the file and reviewable in a diff, and every run leaves a hash-chained trace you can verify afterwards. Running stays yours:

nika check audits the workflow (plan, permits, cost, secrets, types, the lethal-trifecta gate), then nika run executes it locally and seals the hash-chained trace · the audit-then-run story

Proven where you work

Coverage is a machine-checked contract, not a claims list: clients.yaml tracks 31 clients across 9 component classes (CI-gated both ways against the shipped binary). The proven rows, each with a deterministic receipt:

Client The receipt
Claude Code full suite loads in-session: skills · subagents · /nika:* · hooks · oracle
Codex marketplace page live (interface block · try-now prompts) · plugin cache enabled
Grok Build grok inspect --json lists every component with origins · grok mcp doctor --json: handshake OK, 9 tools (fiche)
Kimi Code a stream-json run emits tool_calls: mcp__nika__nika_canon · the oracle loaded AND called (fiche)
opencode opencode mcp list✓ nika connected (fiche)
Hermes / skills.sh e2e-proven skill pack, listed live (skills.sh)
Any MCP client the containerized oracle answers initialize + tools/list on every CI run (integrations/mcp)

One-click MCP wiring where the client supports it (binary still required):

Install in VS Code Install MCP Server

Keeping the suite fresh

Every surface invokes the binary and the plugin kits ride its release train, but no surface updates another: brew never touches a plugin, a marketplace never touches the binary.

Surface Update gesture
Binary brew upgrade nika
Claude Code plugin claude plugin marketplace update nika then claude plugin update nika@nika (two rungs · restart after)
Codex plugin codex plugin marketplace upgrade nika
Every surface at once scripts/update-mirrors.sh (--check reports drift read-only, CI-able)

nika doctor is the coherence oracle: it reads what each client actually loads, names any kit lagging the binary's train, and prints the exact per-client fix. Drift is advisory (warn · exit 0).

How the pieces fit (the three layers)

ENGINE  supernovae-st/nika              the source of truth
  ├─ .agents/plugins/nika/              THE plugin kit (skills · subagents ·
  │    3 manifests: claude · codex ·     commands · rules · hooks · MCP · logo)
  │    cursor                            · mirrored HERE, byte-pinned
  ├─ nika init                          per-REPO scaffold (AGENTS.md ·
  │                                      .cursor/{rules,mcp.json} · .vscode ·
  │                                      copilot brief · CLAUDE.md · skill)
  └─ nika wire <client>                 per-MACHINE wiring (cursor · zed ·
                                         cline · continue · claude · …)

THIS REPO  supernovae-st/nika-agents    the install surface (light clone —
                                         marketplaces clone their target)
   Claude Code · Codex · Cursor ·        the mirrored plugin, one Add each
   Grok Build · OpenClaude
   Hermes / skills.sh · opencode ·       kit-native integrations
   Kimi Code · MCP registries

nika-vscode  supernovae-st/nika-vscode  the IDE product (compiled extension:
                                         LSP · live DAG canvas · replay
                                         debugger · runs view · VS Code ·
                                         Cursor · Windsurf, one build)

Three mechanisms, no overlap: the plugin teaches any agent the language (per-agent) · nika init equips one repository (per-repo) · nika wire configures one machine's clients (per-machine). The extension is not a plugin: it is the full IDE surface, and on Cursor it nudges you to the plugin for the agent side.

Why a separate repo

plugin marketplace add clones its target. The engine repo carries the full Rust workspace and media; this repo carries the plugin only, so the install is instant. The files are mirrored verbatim from the engine's .agents/plugins/. File issues and PRs against supernovae-st/nika.

The city · where this repo sits

📜 nika-spec ──── the civil code · the law tables, the corpus, the exam
    │ sync-pack: byte-gated mirror        │ projectors: drift-gated
    ▼                                     ▼
⚙️ nika ───────── the engine + the catalog (the yellow pages)
    │ the release train                  🖥️ nika.sh · 📖 nika-docs
    ▼                                     the showroom · the manual
📦 homebrew-tap · npm · Docker ── the docks
🔌 nika-client · 🎨 nika-vscode · 🤖 nika-agents · ⚡ gh-nika ── the doors   ◀── you are here
🏭 nika-action · 🧪 nika-actions-starter ── the CI district
🏪 nika-registry ── the market · 🏛 nika-estate ── the land registry

This building · THE AI KIT · agents learn the language here (the authoring skill · the MCP oracle · commands).

Root · neither · this building teaches the LANGUAGE. Its corpus is a sha256-pinned mirror of nika-spec and its commands are probed against the released engine · nothing authoritative is typed here.

Consumes · the engine's .agents/plugins/ (mirrored byte-pinned · the heal follows the release train).

Serves · Claude Code · Codex · Cursor · Grok Build sessions, one Add each (OpenClaude rides the same layout).

Truth lives · everything here is a MIRROR · file issues and PRs against the engine.

All the buildings: nika-spec · nika · nika.sh · nika-docs · nika-client · nika-vscode · nika-agents · gh-nika · homebrew-tap · nika-action · nika-actions-starter · nika-registry · nika-estate

Every fact has one home · everything else is a gated projection. The living map: nika.sh/map.

What's inside

.agents/plugins/marketplace.json      Codex marketplace manifest
.agents/plugins/nika/                 the plugin (the full suite, one bundle)
  .codex-plugin/plugin.json           Codex manifest
  .claude-plugin/plugin.json          Claude Code manifest
  .cursor-plugin/plugin.json          Cursor manifest (logo + all components)
  skills/{nika-authoring,nika-debugging,nika-operating,nika-migration}/
                                      author · run forensics · day-2 ops · script porting
  agents/{nika-author,nika-debugger,nika-migrator}.md
                                      the three subagents (write · root-cause · port)
  commands/{check,explain,new,trace,permits,doctor}.md
                                      the /nika:* slash commands
  hooks/{cursor,claude}-hooks.json    the three seatbelts, one file per dialect:
                                      session map · check-on-edit · guard-run (a nika
                                      run must pass nika check · the deny teaches)
  rules/nika-workflow-language.mdc    the language rule (the init template, verbatim)
  rules/nika-delegation.mdc           WHEN to propose a workflow, WHICH surface to use
  assets/nika-logo.png                the marketplace logo
  .mcp.json                           the read-only oracle wiring
.claude-plugin/marketplace.json       Claude Code marketplace manifest
.cursor-plugin/marketplace.json       Cursor marketplace manifest
clients.yaml                          the client × component matrix (the coverage SSOT)
skills/autonomous-ai-agents/nika/     the Hermes delegation skill (kit-native)
integrations/{grok-build,kimi-code,opencode,openclaude,mcp}/
                                      per-client fiches · live-verified, version-pinned
integrations/description-bank.md      the words every listing copies
listings.yaml                         the public submissions ledger
mirror.json                           the drift contract (classes + pins)

Two content classes, one contract (mirror.json): engine-mirror files are byte-identical projections of the engine repo, pinned by sha256 at the engine SHA they were proven against: a pin mismatch means corruption (hard fail), upstream movement means a re-sync is due. kit-native files are owned here and proven against the latest released binary instead: the gate asserts every taught nika <subcommand> and every advertised nika_* tool actually ships. The oracle is read-only by design: threat model.

Add your client · ask for a workflow

You want to support Nika in your client? Copy the matching integrations/ folder: each one is self-contained, version-pinned, and gate-checked against the live binary. Missing a workflow for your use case? Ask for one · the answer ships as a checked file, receipts included.

Start from a template: nika-actions-starter (workflow + editor wiring + CI receipts)
Docs: docs.nika.sh · Engine (AGPL-3.0): nika · 🦋 SuperNovae Studio · Paris