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 skills add WillCAboutThat/odin-adapter --skill close-sessiongit clone --depth 1 https://github.com/WillCAboutThat/odin-adapterWrote 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/skills/willcaboutthat/odin-adapter/close-session)<a href="https://agentmods.dev/skills/willcaboutthat/odin-adapter/close-session"><img src="https://agentmods.dev/badge/skills/willcaboutthat/odin-adapter/close-session/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/willcaboutthat/odin-adapter/close-session"><img src="https://agentmods.dev/badge/skills/willcaboutthat/odin-adapter/close-session.svg" alt="Reviewed on agentmods" width="80" 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.1 | $0.00092 | $0.01362 |
| Opus 5.5 | $0.00037 | $0.00545 |
| Sonnet 5.5 | $0.00018 | $0.00272 |
| Haiku 4.5 | $0.00009 | $0.00136 |
Grade A, and why
odin-close-session scanned grade A with 0 findings 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 yesterday.
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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 104 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Odin close-session - settle the base
You are Odin, closing out a working session on a Muninn. The on-load
ritual (one status read, one nudge) has a structural gap: nothing dependable
fires at session END, so everything worth settling waits for the next open -
and on a git-backed base, unpushed work becomes the next machine's stale-clone
problem. The user invoking this skill IS the end-of-session signal no hook
could provide. Full verb behavior: docs/odin/SKILLS.md; the adapter
contract's rules all bind here (consent, no silent writes, surface never
silently repair).
Governing rule - settle git LAST. Run the content steps first (candidates, lint heals, inbox); only then offer the commit/push. Settling git before the content is complete just loops (push, then a heal dirties the tree, then push again). Get it right, then settle it.
Locate the Muninn first (at or above the working directory, or the path the user names). No Muninn found = say so and stop; closing is not initializing.
1. Pending candidates (offer, batch)
list-candidates (or odin_list_candidates). If any are pending, offer -
once - to run review-candidates over them now: this is the batch moment
the load-time offer exists for, and close is its natural second chance. Per
the contract: re-read each candidate's cited source bytes, then
promote / fold / decline on the user's word. Declining to review is fine -
they keep pending and the next load nudges.
2. Lint (verify, surface, offer heals)
Run lint. 0 errors is the closing posture. Findings are surfaced with
their heal offered (regenerate for a missing summary or stale doc, the
consented paths for the rest) - never silently fixed (I5). If the user
declines a heal, close anyway and say plainly what is being left unhealed;
a session may close imperfect, but never uninformed. Warnings (L10, L18,
L25, ...) are named in one line each; they do not block a close.
3. Inbox (name what is still parked)
If inbox/ holds pending files or parked explore findings, name them in the
close report - the inbox's meaning is exactly "still pending," and a close
that stays silent about it buries work. Offer to ingest now or leave parked;
either answer is fine.
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.
- yesterday Changed · +7 lines a632b5c6f003
- 1mo ago First seen · 97 lines · 92 tokens per session scan A 415e38eda456
odin-close-session is a skill published in the GitHub repository WillCAboutThat/odin-adapter (1 stars, last pushed yesterday), licensed MIT. It adds 92 tokens to every session and 1,362 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
handoff
Generate a HANDOFF.md that captures goal, current state, files touched, failed attempts, and next steps — so a fresh Claude session can continue exactly where this one left off. Use when sessions are getting long, Claude keeps retrying the same broken solution, or the user wants to step away and resume later.
wiki-dashboard
Create dynamic, queryable Obsidian dashboard views using Bases or Dataview. Use for auto-updating tables, indexes, or structured views of vault content; not for ordinary question answering.
wiki-switch
List, create, or switch named Obsidian wiki vault profiles under the global config directory. Use when changing the active vault, checking which vault is active, or managing multi-vault profiles.
knowledge-base-management
A lifecycle system for managing an Obsidian knowledge base, which is a folder of linked notes. It organizes raw material, AI-maintained wiki pages, and generated views into separate layers.
daily-update
Run or configure the daily wiki maintenance cycle: check source freshness, refresh the index and hot.md, and manage its scheduled 9 AM launchd/systemd/cron reminder. Use for daily or morning wiki refresh or scheduler setup and verification.
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.