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
00The goldfish problem

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.

01

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.

02

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.

03

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.

04

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.

01The turn — in 8 slides
01 · the problem, literally

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

02The lifecycle

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)

01 / 10

SessionStart

A Claude Code session begins (startup, resume, clear, or after a compaction).

ensure-obsidian.js

Detects 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.js
compact

On a post-compaction SessionStart, re-injects the critical context captured by the pre-compact snapshot so work survives compaction.

session-auto-track.js

In 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.mjs
async

Regenerates the Brainy settings + usage-analytics dashboard HTML without blocking session start.

check-beads-init.js

In 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.js

Surfaces the ready / in-progress beads queue (and a TUI banner) at session start for a genuine code session only.

check-git-init.js

Detects whether the project has git and guides initialization, degrading gracefully when git is absent rather than failing.

check-testing-setup.js

Nudges toward the recommended testing stack when no test setup is present; silent once testing is configured.

02 / 10

PreToolUse

Before a tool call runs — used here to gate git operations.

check-no-main-push.js
Bash

Blocks pushes to main/master before they happen, enforcing the branch-first workflow.

if: Bash(git push *)

check-no-main-push.js
Bash

Blocks pushes to main/master before they happen, enforcing the branch-first workflow.

if: Bash(git commit *)

check-no-main-push.js
Bash

Blocks pushes to main/master before they happen, enforcing the branch-first workflow.

if: Bash(git checkout *)

check-no-main-push.js
Bash

Blocks pushes to main/master before they happen, enforcing the branch-first workflow.

if: Bash(git switch *)

branch-name-check.js
Bash

Validates the branch name against the feature/ fix/ chore/ convention when pushing.

if: Bash(git push *)

03 / 10

SessionEnd

The Claude Code session terminates.

session-end.js
async

Finalizes and closes the session at SessionEnd as part of the session lifecycle.

04 / 10

UserPromptSubmit

Every time the user submits a prompt, before the model processes it.

memory-reminder.js

Injects the persistent-memory reminder so prior sessions and vault knowledge are searched before the model assumes or guesses.

beads-nudge.js

Reminds the agent to track code work in beads whenever a codebase is present at or above the cwd.

05 / 10

Stop

The agent finishes responding (turn ends) — session wind-down checks.

session-auto-close.js

Auto-updates the active session note on stop, extracting goal and outcome from the transcript.

session-export-qmd.js
async

Exports the session transcript to an Obsidian markdown recap and re-indexes it in QMD.

session-stop-check.js

Verifies the session note was updated and nudges if progress or decisions were not logged.

beads-stop-check.js

Checks for open / in-progress beads issues at stop and reminds to close completed work.

task-completion-check.js

Checks for unfinished tracked tasks before the turn ends.

06 / 10

PreCompact

Immediately before Claude Code compacts the conversation context.

pre-compact-snapshot.js

Snapshots critical context (goal, decisions, open work) before compaction so it can be restored afterward.

07 / 10

PostCompact

Immediately after a compaction completes.

post-compact.js

Reinjects the pre-compact snapshot after compaction so the agent keeps its working context.

08 / 10

PostToolUse

After a tool call completes — drives the beads/TaskNotes/session mirrors.

memory-index-sync.js
Write

Keeps the MEMORY.md index in sync whenever a memory file is written.

session-note-nudge.js
Write|Edit|Bash

Nudges to append progress and decisions to the active session note after meaningful work.

statusline-state.js
asyncWrite|Edit|Bash

Updates the status-line state with current session and beads information.

commit-cadence-nudge.js
asyncBash

After 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.js
asyncBash

When a beads issue is claimed, creates or switches to a matching feature branch.

if: Bash(bd update * --claim) || Bash(bd claim *)

beads-status-sync.js
asyncBash

Mirrors beads state changes into TaskNotes in the vault so tasks stay three-way synced.

if: Bash(bd *)

beads-todo-reminder.js
Bash

Emits 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.js
asyncBash

Refreshes the beads dashboard after any bd command.

if: Bash(bd *)

mtn-to-beads-sync.js
asyncBash

Syncs TaskNotes (mtn) completions back into beads to close the task-mirror loop.

if: Bash(mtn complete *) || Bash(mtn done *)

09 / 10

TaskCreated

A Claude Code task is created.

task-created-check.js

Reconciles a newly created Claude Code task with beads tracking.

10 / 10

TaskCompleted

A Claude Code task is marked complete.

task-completed-check.js

Reconciles a completed Claude Code task with its corresponding beads issue.

03Finding things

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

brainy — interactivelive
brainy ❯
type a command, or press / for the menu
1 / 1or press / to search ·

✓ with Brainy

brainy — interactivelive
brainy ❯
type a command, or press / for the menu
1 / 1or press / to search ·

The grep side is illustrative; the right side is real qmdoutput — the actual RSC-bug fix recovered from this site's own session transcript.

04Picking back up

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

brainy — interactivelive
brainy ❯
type a command, or press / for the menu
1 / 1or press / to search ·

✓ with Brainy

brainy — interactivelive
brainy ❯
type a command, or press / for the menu
1 / 1or press / to search ·

The right side is real bd output from this repository's own tracker.

05The vocabulary

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

brainy — interactivelive
brainy ❯
type a command, or press / for the menu
1 / 1or press / to search ·

✓ with Brainy

brainy — interactivelive
brainy ❯
type a command, or press / for the menu
1 / 17or press / to search ·

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 backlinks
06How it fits

Two 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 agent

Emits 10 lifecycle events as you work — SessionStart through TaskCompleted.

hooks listen · skills extend · agents dispatch

Brainy

orchestration

The layer this whole site is about. Hooks fire on every event; skills add slash commands; agents take heavy jobs.

reads context · writes durable knowledge

Obsidian

the brain

Sessions, decisions, memory, tasks — structured markdown that outlives every session.

QMDsemantic + BM25 search
beadsDolt issue tracker
TaskNotesvault-native tasks

6 agents Brainy can dispatch

daily-plannerhaiku

Runs the morning or evening ritual for the vault owner

knowledge-researchersonnet

Searches the vault from multiple angles and synthesizes what is known about a topic

project-onboardersonnet

Creates the full vault presence for a new project or client engagement

vault-compileinherit

Process unprocessed Inbox items into structured wiki notes

vault-curatorsonnet

Expert at organizing the Obsidian vault using PARA methodology

vault-lintinherit

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

beads-dashboard.jsprd-audit.mjsprd-seed.mjsqmd-wrapper.mjstasknotes.mjsvault-query.mjshook-watcher
07The difference

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

brainy — interactivelive
brainy ❯
type a command, or press / for the menu
1 / 1or press / to search ·

✓ with Brainy

brainy — interactivelive
brainy ❯
type a command, or press / for the menu
1 / 1or press / to search ·

The right side is real bd output captured from this repository while building it.

08Why Brainy exists

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.

Get Brainy on GitHub →