obsidian-second-brain turns an Obsidian vault into persistent, searchable memory for Claude Code and other command-line coding agents, storing knowledge as linked Markdown notes. It is for developers, founders, writers, and researchers who want agents to retain project context across sessions. Its catalogue entries provide commands, hooks, a plugin, a skill, and instructions for capturing, finding, and maintaining that memory.
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.
git clone --depth 1 https://github.com/eugeniughelbur/obsidian-second-brainWrote 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/commands/eugeniughelbur/obsidian-second-brain/obsidian-checkin)<a href="https://agentmods.dev/commands/eugeniughelbur/obsidian-second-brain/obsidian-checkin"><img src="https://agentmods.dev/badge/commands/eugeniughelbur/obsidian-second-brain/obsidian-checkin/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/commands/eugeniughelbur/obsidian-second-brain/obsidian-checkin"><img src="https://agentmods.dev/badge/commands/eugeniughelbur/obsidian-second-brain/obsidian-checkin.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.00033 | $0.01963 |
| Opus 5.5 | $0.00013 | $0.00785 |
| Sonnet 5.5 | $0.00007 | $0.00393 |
| Haiku 4.5 | $0.00003 | $0.00196 |
Grade A, and why
obsidian-checkin 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 today.
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 — 70 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Use the obsidian-second-brain skill. Execute /obsidian-checkin $ARGUMENTS:
A fact check compares notes with other notes, so news that never reached the vault (a bill settled, a move, a new job) leaves a note stale and no lint can see it. The owner is the only source. This command asks them, a few notes at a time, and saves what they answer.
The argument picks the mode: ask (default), nudge, answer <the owner's reply>, or status. The deterministic work lives in scripts/checkin.py (run it from the skill root: its absolute path was given at session start as Skill root; substitute it for SKILL_ROOT). Every call takes --path <vault>. The open questions live in <vault>/.checkin.json, never in the chat, so a question the host drops is sent again on the next run until it is answered.
- Read
_CLAUDE.mdfirst if it exists in the vault root, for the vault path and privacy rules.
Mode: ask (once a day)
- Run
uv run --directory "SKILL_ROOT" scripts/checkin.py --path <vault> pick. It returns up to 3 notes whose facts are older than 14 days (--days Nto change), never more than 3 open at once (--max-open N). People taggedfamily,relationship: strongandcheckin: prioritycome first, then active projects, then the most linked notes. Notes with a closedstatus,checkin: never, an open card, or a skip in the last 14 days are left out. An empty list means nothing is due: send nothing and stop. - For each picked note, read the note itself (the
excerptis a hint, not the source) and write 1 to 3 facts:- One short line each, under 140 characters, in plain words.
- Taken from the note only. Never add, guess, or round a fact. Keep dates and amounts exactly as written.
- Prefer facts that can change: job, where they live, status, money, health, who they are with. Skip timeless ones like a birth date.
- Open each card:
checkin.py --path <vault> ask --note "<path>" --fact "..." --fact "...". - Run
checkin.py --path <vault> messageand send its output to the owner verbatim, as one message. Do not add commentary, a summary, or a second message. A host may put its own marker (for example a notification emoji) in front.
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.
- today First seen · 70 lines · 33 tokens per session scan A 447fb59ba2b4
obsidian-checkin is a command published in the GitHub repository eugeniughelbur/obsidian-second-brain (4,880 stars, last pushed yesterday), licensed MIT. It adds 33 tokens to every session and 1,963 once invoked, about $0.0001 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-10-25.
Other commands, from other repositories
patterns
Scan recent sessions for recurring patterns and turn them into captures (rules, concept notes, writing seeds).
curate
A command for maintaining a file-based knowledge wiki. It can review pages, shorten overlong material, manage page lifecycles, find possible contradictions, and rebuild weak connections between notes.
ingest
A command for adding information to a file-based knowledge wiki from web pages, files, or text notes. It classifies the material, updates or creates wiki pages, and adds links between related pages.
onboard
An interview-based setup command for an LLM Wiki, a notes system designed for use with language models. It asks about your wiki, files, working mode, and personal context, then fills in the setup details.
refresh-context
Re-snapshot Core Context.md from (optional) mothership system files + key personal essays. Run when mothership files change, when new essays signal philosophy shift, or when snapshot is older than 30 days.
wiki-req
Capture and decompose a concept into atomic, traceable wiki requirements. Clarifies ambiguous requirements, splits them into atomic pieces, and persists them as wiki/requirements/ pages with status tracking.