odin

odin is a skill for Claude Code from WillCAboutThat/odin-adapter. It costs 93 tokens per session (6,145 once invoked), scanned B, original, MIT.

A knowledge-base interface for saving documents with their sources and asking questions across the saved information. It calls the knowledge base a Muninn.

In plain words
What is it for?
Use it to ingest documents, search what has been saved, record decisions, check sources, and manage the knowledge base.
Why use it?
It keeps organizational knowledge available and traceable instead of leaving important decisions and documents buried in separate files or conversations.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin. Also seen: reads .claude/ paths; mentions subagents; mentions Claude Code.

Part of the odin plugin — 2 skills, 5 agents, 3 hooks, 1 MCP server shipped together

Good fit Use it to ingest documents, search what has been saved, record decisions, check sources, and manage the knowledge base.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/willcaboutthat/odin-adapter/odin
Install

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.

Any agent
npx skills add WillCAboutThat/odin-adapter --skill odin
Clone the repo
git clone --depth 1 https://github.com/WillCAboutThat/odin-adapter

Made for: Claude Code.

Or install odin, the plugin that ships this one along with the rest of its 2 skills, 5 agents, 3 hooks, 1 MCP server.

Wrote 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.

agentmods badge for odin

README.md
[![agentmods](https://agentmods.dev/badge/skills/willcaboutthat/odin-adapter/odin.svg)](https://agentmods.dev/skills/willcaboutthat/odin-adapter/odin)
Your own site
<a href="https://agentmods.dev/skills/willcaboutthat/odin-adapter/odin"><img src="https://agentmods.dev/badge/skills/willcaboutthat/odin-adapter/odin.svg" alt="Measured on agentmods" height="20"></a>
Per session 93 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 6,145 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00093 $0.06145
Opus 5 $0.00046 $0.03073
Sonnet 5 $0.00019 $0.01229
Haiku 4.5 $0.00009 $0.00615

Measured 7d ago against content hash 0604ec04ba60, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-07, from the pricing page.

Security

Grade B, and why

odin 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 7d 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.

Asks for rootmediumPrivilege escalation

A mod that escalates privileges can change anything on the machine, not only the project.

(e.g. `sudo -u odin python3 … muninn_core.py <op> …`). Expect a bare write to be
odin/skills/odin/SKILL.md · 364 lines

How it starts

The opening of the file, as written. The whole thing — 364 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Odin — the reference adapter

You are Odin, the interface to an organizational knowledge system. You supply judgment; a deterministic Core (Python) does every write and guarantees the invariants. Your job is to turn documents into durable, inspectable knowledge and never to violate the rules the Core and linter enforce.

Read the tool-neutral contracts for full behavior: docs/odin/SKILLS.md (what each verb does), docs/muninn/SPEC.md (the format), and the base's own MUNINN.md.

Setup (host bindings)

  • Core transport — prefer the MCP tools when present (T-076). When the bundled odin-core MCP server is available (the plugin install ships it), drive the Core through its odin_* tools — odin_init, odin_read, odin_capture, odin_dedup_check, odin_source_status, odin_derive, odin_index, odin_find, odin_project, odin_resolve, odin_record_decision, odin_fingerprint, odin_lint, odin_lint_ack, odin_lint_unack, odin_stamp, odin_reproject, odin_capture_repo, odin_connectors, odin_repo_coverage, odin_usage, odin_stage_candidate, odin_list_candidates, odin_promote_candidate, odin_decline_candidate, odin_status, odin_reindex, odin_search, odin_retrieve, odin_usage_log, odin_refresh, odin_query (structured + full-text catalog queries — type/kind/cites filters, ADR-0047; degrades to find mechanically) — every CLI verb has its MCP tool (T-113: one op registry generates both). This is how a plugin install with no checkout and no pip install reaches the Core, so prefer it. They are the same ops with structured args: a body the CLI takes via --file/stdin becomes the body param, --source-file becomes the source_file path, and every other flag maps to the same-named param. The two transports are byte-identical (ADR-0022; test_mcp_server.py) — so each … <op> command below maps 1:1 to odin_<op>; fall back to the CLI only when the MCP server isn't present.
  • Core CLI (the fallback + canonical op reference): odin <op> … when the Core is installed (pip install -e . from the project-odin checkout — not on PyPI; T-058), or python <ODIN>/tools/muninn_core.py <op> … from a checkout at <ODIN>. Either way the in the commands below stands for that prefix. Ops: init, capture, dedup-check, source-status, derive, index, find, project, resolve, record-decision, fingerprint, lint, lint-ack, lint-unack (hyphens here; the MCP tools use underscores). Bodies come from --file or stdin.
  • Connectors / fetch (explore): reaching an external target is done through whatever MCP/tool you already have — there is no ODIN connector registry and Odin holds no credentials (ADR-0020). fetch (get one named target's bytes) is this adapter-side capability; the Core never fetches.
  • Python: needs pyyaml. Optional extractors add text for more formats (pypdf → PDF, python-docx → .docx, openpyxl → .xlsx/.xlsm; HTML + .csv/.tsv need no dep). A format with no extractor still captures bytes-only. If python isn't found, use the interpreter the project uses.
  • Reading base content without a filesystem (T-159). Where you have file tools, read sources/docs directly as ever. Where you have ONLY the op surface (the web chat adapter, any MCP-only host), … read <root> <id> / odin_read returns any doc's stored text verbatim, paged (offset/limit; a source returns the same text find/derivation use) — this is how you ground summaries, quote sources, and re-read for review/challenge there. text_form: "none" = a bytes-only source: say so and model-read the original bytes if your host can, never guess from the filename.
  • The Muninn is separate from this tool (ADR-0002). Never write knowledge into the project-odin repo.
  • Hardened bases (T-155). If status reports caller_can_write: false, the base is ownership-hardened (docs/odin/HARDENING.md): your context reads freely, and every write op must be invoked through the deployment's privileged wrapper (e.g. sudo -u odin python3 … muninn_core.py <op> …). Expect a bare write to be permission-denied — that is the posture working, not an error to work around; never attempt to bypass it.

Read the full file on GitHub · 364 lines

Changes

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.

  1. 7d ago First seen · 364 lines · 93 tokens per session scan B 0604ec04ba60

Subscribe to this mod's changes

odin is a skill published in the GitHub repository WillCAboutThat/odin-adapter (1 stars, last pushed 13d ago), licensed MIT. It adds 93 tokens to every session and 6,145 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it B with 1 finding (asks for root). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

marm-init

Guided MARM MCP setup. Invoke after running marm-memory init on the CLI to configure MARM memory across your agent. Drives transport choice, runtime choice, MCP config writing, multi-agent linking, and server start. Works on Claude, Codex, Gemini, Qwen, Cursor, VS Code, and other MCP-capable agents.

Lyellr88/marm-memory · 75 tokens

neo4j-agent-memory-skill

Authoritative reference for the neo4j-agent-memory Python package — a graph-native memory system for AI agents built on Neo4j — and for the hosted service (NAMS) at memory.neo4jlabs.com. Use this skill whenever the user mentions neo4j-agent-memory, agent memory with Neo4j, context graphs, the POLE+O model…

neo4j-contrib/neo4j-skills · 223 tokens

forgetful-encode-repo

Encode a repository into the Forgetful knowledge base — bootstrap the project, its entities, memories, and documents from the codebase itself. Use when bringing a new repo under Forgetful or refreshing a stale encoding. Re-encoding is an update pass: query-before-create makes it supersession, not duplication.

ScottRBK/forgetful · 68 tokens

memory

Activate this skill when starting a new session, beginning a new task, saving knowledge, recalling past decisions, or after completing significant work. Also activate on errors to log them for pattern analysis. Relevant when the user asks about memory, past context, lessons learned, decisions history, project…

vbcherepanov/total-agent-memory · 65 tokens

tfx-index

A project indexer that scans a software project and creates a compact map of its files and metadata. The map can be read later instead of repeatedly examining the whole project.

tellang/triflux · 80 tokens

retro

Record durable lessons, null results, and footguns after hard work or debugging. Use when the user asks for a retro, dead ends need preserving, a task disproves an approach, or "จดบทเรียน". Keep repo knowledge separate from machine-local memory.

ohm41321/luciazero · 55 tokens