Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add instructions/core0-io/nio/claude-mdgit clone --depth 1 https://github.com/core0-io/nioWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/core0-io/nio/claude-md)<a href="https://agentmods.dev/instructions/core0-io/nio/claude-md"><img src="https://agentmods.dev/badge/instructions/core0-io/nio/claude-md.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.03473 | $0.03473 |
| Opus 5 | $0.01736 | $0.01736 |
| Sonnet 5 | $0.00695 | $0.00695 |
| Haiku 4.5 | $0.00347 | $0.00347 |
Grade B, and why
nio CLAUDE.md scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
- `plugins/codex/` — Codex CLI plugin. Repo layout is flat (parallels cc/openclaw/hermes): manifest at `.codex-plugin/plugin.json` (with `interface{displayName,category,…}`); hooks at `hooks/hooks.json`; skills under `sk How it starts
The opening of the file, as written. The whole thing — 111 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Nio
Execution assurance and observability for autonomous AI agents. Provides code scanning, runtime guard, and OTEL collector.
Skill
This project provides a unified Claude Code skill: /nio
/nio scan <path> — Scan code for execution risks (15 static + 7 behavioural rules)
/nio action <description> — Evaluate runtime action safety (allow/deny/confirm)
/nio report — Agent execution audit log + diagnostics summary
/nio doctor — Validate config + dry-run OAuth/LLM connectivity
/nio config <level> — Set protection level (strict/balanced/permissive)
/nio external-score — Snapshot current scores from external scoring endpoints
Alongside the unified /nio, each capability is also exposed as a focused single-purpose skill for sharper passive (natural-language) discovery on the LLM-driven platforms (Claude Code, Codex, Pi, and opencode — OpenClaw/Hermes keep the unified /nio): nio-scan, nio-action, nio-report, nio-config, nio-doctor, nio-external-score. Source of truth: plugins/shared/skills/<name>/SKILL.md (synced by scripts/sync-shared.js). These are pure LLM-driven skills (no command-dispatch/command-tool); script-running ones (action/config/doctor/external-score) sibling-reference the kept nio skill's bundled scripts via ../nio/scripts/<cli>.js rather than duplicating the bundle.
Project Structure
plugins/shared/— Shared config + skill source of truth. All skill sources live underskills/<name>/: the unified umbrellaskills/nio/(SKILL.md+README.md) plus the focused per-capability skills (skills/nio-scan/,skills/nio-action/, …). Rule docs are owned by their capability —SCAN-RULES.mdinskills/nio-scan/,ACTION-POLICIES.mdinskills/nio-action/;sync-shared.jsborrows a copy of each into the umbrella's dest dir (whoseSKILL.mdlinks them)plugins/claude-code/— Claude Code plugin (hooks,skills/nio/synced from shared, setup)plugins/codex/— Codex CLI plugin. Repo layout is flat (parallels cc/openclaw/hermes): manifest at.codex-plugin/plugin.json(withinterface{displayName,category,…}); hooks athooks/hooks.json; skills underskills/nio/;setup.shat root. No marketplace.json in the repo — codex 0.128 schema requiressource.pathto be a non-empty./<subdir>and our flat layout has no such subdir, sosetup.shgenerates a valid marketplace.json at install time instead. Subscribes to SessionStart / UserPromptSubmit / PreToolUse / PostToolUse / Stop; PermissionRequest is deferred to phase 2. Skill content synced fromplugins/shared/skills/nio/viascripts/sync-shared.js; scripts mirrored fromplugins/claude-code/skills/nio/scripts/byscripts/build.js. Codex CLI does not support custom slash commands —/niois exposed only via$nioskill trigger or natural-language match. Adapter atsrc/adapters/codex.tswithname='codex'and defaultnative_tool_mapping = { Bash: exec_command }(Codex's only first-party tool; writes/reads/fetches go through shell).setup.shperforms a full nuke + cp install on every invocation (nocodex plugin installCLI exists in 0.128): wipes and rewrites$CODEX_HOME/plugins/cache/nio/nio/<version>/from$SCRIPT_DIR; wipes and rebuilds a Codex-valid marketplace catalog under$NIO_HOME/codex-marketplace/; writes ahooks.jsonwith absolute paths into the cache dir (Codex runs hook commands withcwd=session-cwd, so plugin-relative paths can't resolve); edits~/.codex/config.tomlto register the marketplace, enable the plugin, and set both[features] codex_hooks = true(stable) and[features] plugin_hooks = true(under-development; required for plugin-bundled hooks to fire). Samesetup.shworks whether invoked from the repo or an extracted release zip. Hook scripts (guard-hook.js/collector-hook.js/scanner-hook.js) accept--platform codexto thread the platform tag through Phase 0–6 and the audit log; default platform staysclaude-codefor cc.plugins/pi/— Pi extension. The release zip is itself a valid pi package (package.jsonwith thepimanifest key and thepi-packagekeyword), sosetup.shpreferspi install "$SCRIPT_DIR"and falls back to copying the bundle into~/.pi/agent/extensions/nio/plus an explicit path entry insettings.json. Subscribestool_call(blocking) /tool_result/input/session_start/session_shutdown/agent_end/message_end/user_bash./niois a real slash command viapi.registerCommand, bypassing the LLM. Pi is the only platform with an interactive channel, so aconfirmverdict opens a realctx.ui.confirmdialog with a timeout (pi -pprint mode hasctx.hasUI === falseand folds to the two-state behaviour). Pi has no subagent concept, so no Task spans are emitted. Pi core has no MCP either, but the third-partypi-mcp-adapterpackage adds it and is the de-facto default for Pi users, soparseMcpToolNamecarries apibranch (Task 11b): the proxy toolmcpresolves its target from thetool/serverparameters, anddirectToolsmode is matched as<server>_<tool>/mcp__<server>_<tool>against servers read from$PI_CODING_AGENT_DIR/mcp.json(else~/.pi/agent/mcp.json).toolPrefix: "none"is undetectable by design.setup.shexportsPI_CODING_AGENT_DIR="$PI_HOME"before shelling out so--pi-homeactually binds thepiCLI. Adapter atsrc/adapters/pi.ts; binding atsrc/adapters/pi-plugin.ts.plugins/opencode/— opencode plugin. No plugin-install CLI exists, sosetup.shdoes an idempotent nuke + copy into~/.config/opencode/(plugins/nio.js,commands/nio.md,skills/). Hooks:tool.execute.before(throwsNioBlockedErrorto block) /tool.execute.after/chat.message/permission.ask/event/dispose.tool.execute.afterdoes not fire when a tool throws, so thesession.idlebranch ofeventdoubles as the safety net that reclaims the pending span. No plugin API for slash commands, so/niois acommands/nio.mdtemplate that instructs the model to call the plugin-registerednio_commandtool. MCP tool names are<sanitize(server)>_<sanitize(tool)>, handled by the two-tieropencodebranch inparseMcpToolName.setup.shwrites the{"type":"module"}ESM sentinel into$OC_HOME/plugins/only when that shared directory holds no sibling plugin and no pre-existingpackage.json; it drops a.nio-esm-sentinelownership marker at the same time, and--uninstallremoves the pair only when that marker is present. Adapter atsrc/adapters/opencode.ts; binding atsrc/adapters/opencode-plugin.ts.plugins/openclaw/— OpenClaw plugin (plugin/subdir holds manifest + bundledplugin.js;skills/nio/synced from shared; setup.sh orchestrates both)plugins/hermes/— Hermes integration. Two surfaces:- Shell-hooks (upstream PR #13296):
setup.sh+install-hook.pymerge 7 lifecycle event entries into~/.hermes/config.yaml— all pointing at the same self-containedscripts/hook-cli.js, which internally dispatchespre_tool_callto the guard pipeline (Phase 0–6) andpost_tool_call/pre_llm_call/post_llm_call/on_session_start/on_session_end/subagent_stopto the collector pipeline (OTEL traces + metrics + logs). /nioslash command via a tiny Python plugin (plugins/hermes/python-plugin/):setup.shdropsplugin.yaml+__init__.py+ bundledscripts/nio-cli.jsinto~/.hermes/plugins/nio/and addsnioto the user'splugins.enabledopt-in list. The plugin'sregister(ctx)hooks/niostraight into Hermes's slash dispatch — bypasses the LLM, mirrors OpenClaw'scommand-dispatch: toolroute. No pip install / wheel; Hermes auto-discovers any directory under~/.hermes/plugins/<name>/. Bothscripts/hook-cli.jsandscripts/nio-cli.jsare built bybuild.jsas single-file bundles (splitting: false) so a Hermes-only release zip (nio-hermes-vX.zip) has no dependency on the Claude Code plugin.
- Shell-hooks (upstream PR #13296):
src/— TypeScript source (scanner, analysers, runtime guard, adapters).src/adapters/plugin-runtime.tsholds the sharedInProcessPluginRuntimethat OpenClaw, Pi, and opencode all sit on: it owns config, the three OTEL providers, per-session collector state, guard-decision → span-attribute translation, orphan-span compensation on the block path, and turn flushing. Platform bindings only translate their host's event shapes into its semantic methods. Despite its name,src/adapters/openclaw-dispatch.tsis the shared/niosub-command router and doctor implementation for every in-process platform — the Pi and opencode doctor probes live there.dist/— Compiled JavaScript output (npm library export)scripts/— Build and release scripts
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 111 lines · 3,473 tokens per session scan B 1b3907c570b5
nio CLAUDE.md is an instructions file published in the GitHub repository core0-io/nio (19 stars, last pushed 13d ago), licensed Apache-2.0. It adds 3,473 tokens to every session, about $0.0174 per session on Opus 5. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other instructions, from other repositories
CORE CLAUDE.md
Claude Code instructions for DariuszNewecki/CORE, covering claude.md — core, what core is, and what you are, source layout, how to work in this repo and governed and prohibited surfaces.
TitanClip AGENTS.md
AGENTS.md instructions for CES-Ltd/TitanClip, covering titanclip — agent context (repository), quick facts and do not conflate.
orloj AGENTS.md
Instructions for OrlojHQ/orloj, covering orloj agent instructions, must-follow sync rules and working style.
leashd CLAUDE.md
Instructions for vmehera123/leashd, covering claude.md, commands, install dependencies, run tests (single file / specific test / all) and run tests with coverage.
template-repo copilot-instructions.md
Instructions for AndrewAltimit/template-repo, covering project context for ai code review, project overview, ai agent ecosystem, core design principles and 1. container-first philosophy.
ATF-AI copilot-instructions.md
Instructions for agronetlabs/ATF-AI, covering atf-ai repository instructions for github copilot, governance boundary, core vs. adapter changes, rwa privileged actions and security.