Claude Code plugin · v1.30.1
Claude Code forgets
everything.
Every session starts from zero. No memory of yesterday, nothing to pick back up. Brainy gives it a second brain — scroll on, and watch how.
- 17
- skills
- 34
- hooks
- 10
- CC events
- 6
- agents
Brilliant. And amnesiac.
Four things break the same way for everyone using Claude Code. Brainy quietly fixes each one — nothing to remember, it just happens while you work.
Context dies between sessions
Close the terminal and yesterday's work is gone. You re-explain the project every morning.
Next time you open Claude, it already has your last note, your branch, and where you left off — before you type a word.
No persistent memory
Claude relearns your preferences, decisions, and conventions every single time.
Brainy keeps a memory of your decisions and how you like to work, and reminds Claude to check it before it guesses.
Knowledge goes nowhere
Good decisions and research evaporate into a transcript you'll never read again.
Every session is saved to your own Obsidian vault and stays searchable forever — by you, and by Claude.
Task continuity breaks
What was I doing? Which branch? What's blocked? Multi-session work falls apart.
Your tasks live in one place that always knows the answer — and it survives even a context wipe mid-session.
Today the loop is broken.
Close the terminal and the thread is cut. Tomorrow you re-explain everything from zero.
$ claude — without Brainy
context: (empty)
memory: (none)
“what were we doing?”
→ re-explain the project
$ claude — with Brainy
✓ session note loaded
✓ branch + 3 prior sessions
✓ memory searched first
→ resume mid-thought
← → · drag · dots — 8 slides, each one moves
Watch a session fire.
Claude Code emits 10 lifecycle events as you work. Brainy listens to every one — 34 hooks, grounded in the real hooks.json. Scroll down a single session and watch them fire in order.
A day with Brainy — what fires, when
09:00
Morning
You open Claude Code and it's already caught up — your note, your branch, yesterday's thread, all there before you type. (SessionStart)
11:30
Deep work
You pick up a task and it auto-branches; every change is tracked in three places, with a gentle nudge to commit at a healthy pace.
15:00
Compaction
The context window fills and resets — Brainy saves your goal and open work, then hands it right back. Nothing is lost mid-thought.
18:00
EOD
You stop for the day; Brainy closes the session note with the outcome and saves the whole thing — searchable tomorrow. (SessionEnd)
SessionStart
A Claude Code session begins (startup, resume, clear, or after a compaction).
ensure-obsidian.jsDetects the OS-specific Obsidian path and launches the app if it is not running, polling until the vault CLI responds; a clean no-op when Obsidian is already up.
reinject-after-compact.jsOn a post-compaction SessionStart, re-injects the critical context captured by the pre-compact snapshot so work survives compaction.
session-auto-track.jsIn a recognized code project, finds or auto-creates the session note under 2. Areas/Sessions/<Project>/, detects the git branch, and injects the active note plus recent transcript context.
settings-viewer/generate.mjsRegenerates the Brainy settings + usage-analytics dashboard HTML without blocking session start.
check-beads-init.jsIn a genuine code project, nudges to initialize beads (auto-runs `bd init` when .beads is missing); stays completely silent in a vault / non-code session.
beads-work-surface.jsSurfaces the ready / in-progress beads queue (and a TUI banner) at session start for a genuine code session only.
check-git-init.jsDetects whether the project has git and guides initialization, degrading gracefully when git is absent rather than failing.
check-testing-setup.jsNudges toward the recommended testing stack when no test setup is present; silent once testing is configured.
PreToolUse
Before a tool call runs — used here to gate git operations.
check-no-main-push.jsBlocks pushes to main/master before they happen, enforcing the branch-first workflow.
if: Bash(git push *)
check-no-main-push.jsBlocks pushes to main/master before they happen, enforcing the branch-first workflow.
if: Bash(git commit *)
check-no-main-push.jsBlocks pushes to main/master before they happen, enforcing the branch-first workflow.
if: Bash(git checkout *)
check-no-main-push.jsBlocks pushes to main/master before they happen, enforcing the branch-first workflow.
if: Bash(git switch *)
branch-name-check.jsValidates the branch name against the feature/ fix/ chore/ convention when pushing.
if: Bash(git push *)
SessionEnd
The Claude Code session terminates.
session-end.jsFinalizes and closes the session at SessionEnd as part of the session lifecycle.
UserPromptSubmit
Every time the user submits a prompt, before the model processes it.
memory-reminder.jsInjects the persistent-memory reminder so prior sessions and vault knowledge are searched before the model assumes or guesses.
beads-nudge.jsReminds the agent to track code work in beads whenever a codebase is present at or above the cwd.
Stop
The agent finishes responding (turn ends) — session wind-down checks.
session-auto-close.jsAuto-updates the active session note on stop, extracting goal and outcome from the transcript.
session-export-qmd.jsExports the session transcript to an Obsidian markdown recap and re-indexes it in QMD.
session-stop-check.jsVerifies the session note was updated and nudges if progress or decisions were not logged.
beads-stop-check.jsChecks for open / in-progress beads issues at stop and reminds to close completed work.
task-completion-check.jsChecks for unfinished tracked tasks before the turn ends.
PreCompact
Immediately before Claude Code compacts the conversation context.
pre-compact-snapshot.jsSnapshots critical context (goal, decisions, open work) before compaction so it can be restored afterward.
PostCompact
Immediately after a compaction completes.
post-compact.jsReinjects the pre-compact snapshot after compaction so the agent keeps its working context.
PostToolUse
After a tool call completes — drives the beads/TaskNotes/session mirrors.
memory-index-sync.jsKeeps the MEMORY.md index in sync whenever a memory file is written.
session-note-nudge.jsNudges to append progress and decisions to the active session note after meaningful work.
statusline-state.jsUpdates the status-line state with current session and beads information.
commit-cadence-nudge.jsAfter a beads issue is closed, nudges to commit at a healthy cadence.
if: Bash(bd close *) || Bash(bd update * --status closed)
beads-claim-to-branch.jsWhen a beads issue is claimed, creates or switches to a matching feature branch.
if: Bash(bd update * --claim) || Bash(bd claim *)
beads-status-sync.jsMirrors beads state changes into TaskNotes in the vault so tasks stay three-way synced.
if: Bash(bd *)
beads-todo-reminder.jsEmits a reminder to mirror the bd state change into the live todo list the user sees.
if: Bash(bd create *) || Bash(bd update * --claim) || Bash(bd update * --status *) || Bash(bd close *)
beads-dashboard-refresh.jsRefreshes the beads dashboard after any bd command.
if: Bash(bd *)
mtn-to-beads-sync.jsSyncs TaskNotes (mtn) completions back into beads to close the task-mirror loop.
if: Bash(mtn complete *) || Bash(mtn done *)
TaskCreated
A Claude Code task is created.
task-created-check.jsReconciles a newly created Claude Code task with beads tracking.
TaskCompleted
A Claude Code task is marked complete.
task-completed-check.jsReconciles a completed Claude Code task with its corresponding beads issue.
grep is dead.
Asking 'where did we cover that?' the old way is slow and noisy. Brainy answers it in seconds — a few ranked passages instead of a wall of files. Same question, both ways.
✗ without Brainy
✓ with Brainy
The grep side is illustrative; the right side is real qmdoutput — the actual RSC-bug fix recovered from this site's own session transcript.
It keeps the thread.
Come back to a project after a few days. Without anything tracking it, you rebuild the picture from scratch. With Brainy, it just tells you where you were.
✗ without Brainy
✓ with Brainy
The right side is real bd output from this repository's own tracker.
17 skills for the moments you know.
Slash commands that drive the vault. Each flagship below is real captured output from running that skill against this very site while building it — then scan the full set.
✗ without Brainy
✓ with Brainy
The right side is real bd / qmd output captured from this repository while building it.
All 17 · generated from the installed plugin
/brainy:clientsClient relationship management. Look up client context, log engagement notes, track status, and prep for meetings/brainy:dailyOpen, create, or update today's daily note. Review yesterday, plan today, log progress/brainy:excalidrawCreate Excalidraw diagrams in Obsidian using the ExcalidrawAutomate (EA) API. Generates .excalidraw files saved directly to the vault — no external tools needed, Obsidian renders them natively. Two modes: (1) Single diagram on demand for any workflow, architecture, process, or data model — trigger on "diagram this", "draw a flowchart", "create an architecture diagram", "visualize this", "make an Excalidraw". (2) Full codebase walkthrough — autonomously reads a codebase and produces a complete visual system documentation (architecture, data flow, sequence, ER) plus interlinked Markdown notes — trigger on "document this codebase", "walk through this system", "diagram this app", "map out this repo", "create documentation for this project"/brainy:healthRun a Brain Check — audit your second brain across Setup, Connections, Memory, and Inbox/brainy:obsidian-basesCreate and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries/brainy:obsidian-cliInteract with Obsidian vaults using the Obsidian CLI to read, create, search, and manage notes, tasks, properties, and more. Also supports plugin and theme development with commands to reload plugins, run JavaScript, capture errors, take screenshots, and inspect the DOM/brainy:obsidian-markdownCreate and edit Obsidian Flavored Markdown with wikilinks, embeds, callouts, properties, and other Obsidian-specific syntax/brainy:prdAuthor and manage Product Requirements Documents (PRDs) under "2. Areas/Product Manager/PRDs/". Scaffolds new PRDs against the brainy schema, audits existing ones, and seeds beads issues from the Acceptance Criteria section/brainy:querySearch your vault using QMD (semantic + BM25). Find notes, decisions, resources, and connections/brainy:recallLoad context from previous Claude Code sessions and vault notes. Temporal queries scan JSONL session files by date. Topic queries use QMD BM25 search with query expansion. Every recall ends with "One Thing" — the single highest-leverage next action/brainy:session-backfillBackfill structured session summaries from Claude Code .jsonl transcripts into the vault's per-project Sessions folder. Distills each CC session into TL;DR / Goal / Outcome / Decisions / Blockers / Next / References — agent- and human-searchable, not raw transcripts/brainy:sessionsExport Claude Code sessions to Obsidian markdown. Sync, list, resume, annotate sessions/brainy:settings-viewerOpens a live visual dashboard of your Claude Code configuration and usage analytics/brainy:setupSecond brain onboarding wizard. Scaffolds PARA vault structure, company knowledge base, detects git projects from the filesystem, seeds company notes from the web, installs Obsidian plugins, initializes Git/Beads/QMD, and writes CLAUDE.md/brainy:tasksCreate, complete, list, and query tasks via Obsidian TaskNotes/brainy:vault-queryThis skill should be used when the user asks about vault session management, project context loading, session lifecycle, or mentions 'vault-query', session start/close/list, or project context aggregation/brainy:zettelkastenCreate, find, and link atomic notes in your Zettelkasten. Distill insights into permanent notes with backlinksTwo modes. One brain.
Brainy works in two contexts — out of your vault, and inside a project. It detects which from the project itself (no flag), and the hooks fire accordingly. Underneath, it's one layer between Claude Code and your brain.
Vault mode
You're in Obsidian
Where you keep what you know — domains, research, clients, meetings, summaries, whatever you want. It's also where Brainy writes for you: a session record for every project Claude Code works on, your settings as they change, and Claude's auto-memory.
- Brainy drives
- daily · recall · zettelkasten · clients · knowledge · prd
- Hooks that fire
- session note · memory reminder · QMD index · vault agents
- Stays quiet
- beads init, git guards, code-project hooks — all silent
Project mode
You're in a ~/code git repo
An actual codebase you're building in — apps, websites, dashboards, internal tools, whatever you ship. Brainy tracks the work, guards the git workflow, and writes the session down so the next one picks up clean.
- Brainy drives
- beads tracking · branch-on-claim · commit cadence · session export
- Hooks that fire
- everything in vault mode, plus the code lifecycle below
- Stays quiet
- nothing held back — the full set fires
same Brainy · same vault · it just knows which mode you're in
The layer underneath both
Claude Code
the agentEmits 10 lifecycle events as you work — SessionStart through TaskCompleted.
Brainy
orchestrationThe layer this whole site is about. Hooks fire on every event; skills add slash commands; agents take heavy jobs.
Obsidian
the brainSessions, decisions, memory, tasks — structured markdown that outlives every session.
6 agents Brainy can dispatch
Runs the morning or evening ritual for the vault owner
Searches the vault from multiple angles and synthesizes what is known about a topic
Creates the full vault presence for a new project or client engagement
Process unprocessed Inbox items into structured wiki notes
Expert at organizing the Obsidian vault using PARA methodology
Vault health audit and healing. Finds stale sessions, unprocessed Inbox items, missing note sections, orphaned projects, and recurring themes that should become wiki articles. Run periodically or when the vault feels messy.
6 scripts · 1 monitor
Same morning. With Brainy, and without.
Time off, then back to brainy-web. On the left, a normal Claude Code session. On the right, the same thing with Brainy — real output from this site's own tracker. That's the whole pitch.
✗ without Brainy
✓ with Brainy
The right side is real bd output captured from this repository while building it.
One stubborn problem. One fix.
Brainy is what happens when an educator, a consultant, and a developer are the same person — and all three keep hitting the same wall.
End of context
Give your Claude Code
a memory.
Free, open Claude Code plugin. Install it once — the lifecycle hooks do the rest, every session after.