Generated banner for Agent Brain
Generated logo for Agent Brain

Agent Brain

Starter kit

First committed by Railly

Published in Railly/agent-brain. Publisher page

22 GitHub stars

What it is

An agent-powered knowledge system built on Obsidian + Claude Code + Codex
— the description by Railly

AutoGineer overview, from the brain’s own files

Agent Brain is a structured template designed to eliminate cold starts for AI coding agents by providing a persistent, local-first knowledge base. Built on Obsidian and Markdown, it organizes personal and professional context into a seven-folder vault structure. The system uses a canonical skill architecture where workflows are defined once and mirrored across different agent runtimes, such as Claude Code and Codex. It includes a suite of 15 predefined workflows covering daily planning, knowledge management, content creation, and reflection, all driven by explicit configuration files that define user identity, goals, stack preferences, and recurring failure patterns.

How it works

Memory model: Markdown vault

AutoGineer overview, from the brain’s own files

The system organizes information into seven specific folders: Inbox for raw captures, Journal for daily logs, Garden for evergreen notes, Projects for active work, Areas for ongoing context, Content for drafts, and System for configuration. Workflows are defined as canonical markdown files in a central directory and synchronized to specific agent-compatible folders. Users interact with these workflows via slash commands. The system maintains context through dedicated files that agents read to understand the user's identity, technical stack, and communication preferences.

Folders
FolderRoleFiles
.claudeagent-config30
docsdocs8
examplesexamples4
scriptsscripts2
.agentsfolder15
vaultfolder22

Requirements

Runtimes: Node.js

Works with: Claude Code, OpenAI Codex, GitHub Copilot, Cursor, Kiro, OpenCode, Amp, Cline, JetBrains Junie, Devin (ex-Windsurf)

Set it up

  1. Download the brain as a ZIP and unzip it where you keep your notes or project: https://mp-staging.autogineer.com/agent-brains/railly/agent-brain/download
  2. Claude Code reads CLAUDE.md from this folder automatically.

  3. cd agent-brain && claude

  4. AutoGineer scanned these files at commit 7e27fe3.

  5. Not scanned by AutoGineerThe author’s README also describes installing it from a clone of its repository. Read its install section: AutoGineer did not scan that path. https://github.com/Railly/agent-brain/blob/7e27fe39db729f6c45411b4cbf00767ea87b58a7/README.md#quick-start
  6. First committed by Railly. Published in Railly/agent-brain. Licence: MIT License.

Usage

AutoGineer overview, from the brain’s own files

  • Automating daily stand-ups and planning
  • Managing project context and technical documentation
  • Processing web research into atomic notes
  • Reflecting on recurring work patterns to improve performance
“/morning”
The agent provides a briefing including calendar events, tasks, and Most Important Tasks (MITs) for the day.
“/ship”
The agent commits and pushes the current work, then automatically logs the activity into the daily journal.
“/challenge”
The agent analyzes a proposed idea and argues against it to prevent sycophancy and improve critical thinking.
“/inbox”
The agent processes raw clips from the inbox folder and converts them into structured, atomic notes in the garden.

Documentation by Railly

Agent Brain

Your AI already knows your stack, repos, goals, and recurring failures. Zero cold starts.

Agent Brain is a local-first personal operating system built with Obsidian and Markdown. It gives Claude Code, Codex, and other coding agents a shared source of context plus reusable workflows for daily work, retrieval, reflection, and shipping.

Read the series:

Releases

  • v2.0.0, canonical skills and multi-runtime adapters

  • v1.0.0, frozen March 2026 template

Quick start

git clone --branch v2.0.0 https://github.com/Railly/agent-brain.git
cd agent-brain
claude
/init

/init asks for your identity, stack, goals, recurring failure, and vault location. It creates the seven-folder vault, installs all runtime adapters, generates personalized context files, discovers local repos, and creates the first daily log.

Already using v1? Follow the non-destructive migration guide. Your notes and personalized context do not need to move.

What changed in v2

The first release proved that a vault could remove the cold start from coding sessions. The second release makes the template easier to evolve without runtime drift.

  • .agents/skills/ is the canonical source for all workflows.

  • .claude/skills/ exposes generated copies to Claude Code.

  • .claude/commands/ preserves generated slash command aliases.

  • The seven-folder vault and all 15 workflow names remain unchanged.

  • bun run check verifies skills, adapters, documentation, and mirrored templates.

  • Migration copies system surfaces only. It never replaces personal notes or context files.

Vault structure

FolderPurpose
01_Inbox/Raw captures from Web Clipper
02_Journal/Daily logs, weekly plans, and reflections
03_Garden/Evergreen concepts, people, tools, and meetings
04_Projects/Active project work
05_Areas/Ongoing contexts such as work, learning, and health
06_Content/Drafts ready to refine or publish
07_System/Context maps, conventions, and system configuration

Fifteen workflows

Daily: /morning, /today, /log, /ship, /week

Knowledge: /inbox, /relink, /vault-search, /meeting, /research

Thinking: /challenge, /pulse

Content: /draft, /de-ai

Setup: /init

One source, multiple runtimes

.agents/skills/<name>/SKILL.md   canonical workflow contract
.claude/skills/<name>/SKILL.md   Claude Code skill adapter
.claude/commands/<name>.md       v1-compatible slash command alias

Run bun run sync after changing a canonical skill. The generated adapters are normal files so the template works on macOS, Linux, and Windows. bun run check fails if any adapter drifts.

System files

FilePurpose
CLAUDE.mdIdentity, stack, goals, and operating preferences for Claude Code
AGENTS.mdThe same context for Codex and other agents
PURPOSE.mdArchitecture and design decisions
HOME.mdVault dashboard and entry points
HUMAN.mdDaily workflow guide for the owner

Core loop

capture -> process -> connect -> use -> reflect
  • /inbox turns raw captures into durable notes.

  • /relink finds missing relationships.

  • /vault-search retrieves local evidence.

  • /ship commits and pushes work, then logs it to the daily journal.

  • /today and /pulse turn activity into reflection and course correction.

The system improves through explicit files and version history, not opaque model memory.

What this template does not include

The public template is the portable persistence and workflow layer. It does not ship the private queue, daemon, messaging gateways, background workers, or policy engine described in the second article. Those systems are still evolving and should not be presented as a stable starter kit.

It also does not claim to measure software quality. Checks can verify template integrity, and review gates can track findings that escape review, but neither is a complete measure of reliability, maintainability, or user outcomes.

Documentation

DocumentPurpose
SetupNew installation and manual setup
Migration v2Safe upgrade from v1
CommandsAll 15 workflows
CustomizationAdd or change canonical skills
PhilosophyPrinciples behind the system
AdvancedBoundaries for automation and control planes
v2 reviewDeterministic checks, migration proof, and lens results
ChangelogRelease history

Verify the template

bun run check

The check fails when a canonical skill is missing, frontmatter is invalid, an adapter is stale, a documented workflow does not exist, or mirrored templates drift.

Built by

Railly Hugo, Software Engineer at Vercel Labs and founder of Crafter Station.

License

MIT

.claude/skills/meeting/SKILL.md


name: meeting description: Process meeting notes into structured notes + action items

Process meeting notes: $ARGUMENTS

IMPORTANT: Be direct

  • Don't check if folders exist

  • Don't search existing notes

  • Just create and append

Step 0: Transcribe (if audio/video input)

If the user provides an audio or video file (.mp3, .mp4, .wav, .m4a, .webm, .ogg) or a URL (YouTube, Google Meet recording, etc.), transcribe it first using trx:

trx "$ARGUMENTS" --output json --fields text

This outputs the full transcript as text. Use that as the meeting content for the steps below.

If the user provides text directly, skip this step.

Flow

  1. Create meeting note in 03_Garden/meetings/{YYYY-MM-DD}/{slug}.md:

    ---
    type: meeting
    created: {{date}}
    attendees:
      - "[[Person 1]]"
      - "[[Person 2]]"
    project:
    ---
    # {Meeting Title}
    
    ## Key Decisions
    -
    
    ## Insights
    -
    
    ## Action Items
    - [ ] @{person}: {task}
    
    ## Notes
    {summary of discussion}
  2. Create corrected transcript in 03_Garden/meetings/{YYYY-MM-DD}/{slug}-transcript.md:

    • Fix common transcription errors (tool names, product names, technical terms)

    • Format as dialogue: **{Person 1}:** ... / **{Person 2}:** ...

    • Keep the natural spoken language as-is

    • Add [Pause], [Screen share], [Laughter] annotations where evident

    • Frontmatter:

    ---
    type: transcript
    created: {{date}}
    meeting: "[[{slug}]]"
    language: {detected language}
    coverage: {full (~Xmin) | partial (~Xmin of Ymin)}
    ---
    # Transcript: {Title} - {duration}
  3. Create summary in 03_Garden/meetings/{YYYY-MM-DD}/{slug}-summary.md:

    • Written in first person reflecting on the conversation

    • Structured sections: Context, Key Topics, Learnings, Takeaways

    • Frontmatter:

    ---
    type: summary
    created: {{date}}
    meeting: "[[{slug}]]"
    ---
  4. Create person notes for attendees not yet in 03_Garden/people/

  5. Extract YOUR action items -> append to 02_Journal/daily/{{date}}.md:

    ## Action Items (from {meeting})
    - [ ] {task 1}
    - [ ] {task 2}

Example

User pastes meeting notes or provides a recording, run /meeting:

Created: 03_Garden/meetings/2026-01-04/team-sync.md
Created: 03_Garden/meetings/2026-01-04/team-sync-transcript.md
Created: 03_Garden/meetings/2026-01-04/team-sync-summary.md
Attendees: [[Alice]], [[Bob]]
Action items added to daily log:
- [ ] Review API proposal
- [ ] Send follow-up email
92 files

Advantages

  • Eliminates cold starts by providing agents with immediate access to user goals, stack, and history. evidence: README.md
  • Uses a single source of truth for workflows that synchronizes across multiple agent runtimes. evidence: README.md

Limitations

  • Does not include advanced infrastructure like messaging gateways or background workers. evidence: README.md
  • Does not provide automated metrics for software quality or reliability. evidence: README.md

Security

Risk level: Medium risk

This brain runs

Agent instructions that run or fetch something (48)

  • .agents/skills/de-ai/SKILL.md: - Shortened 2 run-on sentences
  • .agents/skills/draft/SKILL.md: If you have a notification hook configured in CLAUDE.md, run it with the summary.
  • .agents/skills/inbox/SKILL.md: If you have a notification hook configured in CLAUDE.md, run it with the summary.
  • .agents/skills/init/SKILL.md: If no repos found, create the file with an empty table and a note saying "Run /init again after cloning some repos, or add them manually."
  • .agents/skills/init/SKILL.md: - Clip an article and run /inbox
  • .agents/skills/init/SKILL.md: 2. Open a new terminal in {path} and run: claude
  • .agents/skills/meeting/SKILL.md: User pastes meeting notes or provides a recording, run `/meeting`:
  • .agents/skills/morning/SKILL.md: Only run these if the tools are available:
  • .agents/skills/pulse/SKILL.md: If you have a notification hook configured in CLAUDE.md, run it with the pulse summary.
  • .agents/skills/research/SKILL.md: agent-browser open "https://example.com" · uses the network
  • .agents/skills/ship/SKILL.md: Run `git status` to see changes
  • .agents/skills/ship/SKILL.md: Run `git diff --stat` for overview
  • .agents/skills/today/SKILL.md: | # | Tool | Call | Purpose | |---|------|------|---------| | 1 | Bash | Scan repos under `~/Programming` for today's commits via `git log --oneline --since="today"` per repo | Collect commits | | 2 | Read | `02_Journal/daily/{TODAY}.md` | Check if log exists (preserve Ship Log entries …[+186 chars]
  • .agents/skills/today/SKILL.md: {from weekly file, or "No weekly goal set -- run /week"}
  • .agents/skills/week/SKILL.md: Run `/pulse` for full analysis.
  • .agents/skills/week/SKILL.md: If you have a notification hook configured in CLAUDE.md, run it with the week summary.
  • .claude/commands/de-ai.md: - Shortened 2 run-on sentences
  • .claude/commands/draft.md: If you have a notification hook configured in CLAUDE.md, run it with the summary.
  • .claude/commands/inbox.md: If you have a notification hook configured in CLAUDE.md, run it with the summary.
  • .claude/commands/init.md: If no repos found, create the file with an empty table and a note saying "Run /init again after cloning some repos, or add them manually."
  • .claude/commands/init.md: - Clip an article and run /inbox
  • .claude/commands/init.md: 2. Open a new terminal in {path} and run: claude
  • .claude/commands/meeting.md: User pastes meeting notes or provides a recording, run `/meeting`:
  • .claude/commands/morning.md: Only run these if the tools are available:
  • .claude/commands/pulse.md: If you have a notification hook configured in CLAUDE.md, run it with the pulse summary.
  • .claude/commands/research.md: agent-browser open "https://example.com" · uses the network
  • .claude/commands/ship.md: Run `git status` to see changes
  • .claude/commands/ship.md: Run `git diff --stat` for overview
  • .claude/commands/today.md: | # | Tool | Call | Purpose | |---|------|------|---------| | 1 | Bash | Scan repos under `~/Programming` for today's commits via `git log --oneline --since="today"` per repo | Collect commits | | 2 | Read | `02_Journal/daily/{TODAY}.md` | Check if log exists (preserve Ship Log entries …[+186 chars]
  • .claude/commands/today.md: {from weekly file, or "No weekly goal set -- run /week"}
  • .claude/commands/week.md: Run `/pulse` for full analysis.
  • .claude/commands/week.md: If you have a notification hook configured in CLAUDE.md, run it with the week summary.
  • .claude/skills/de-ai/SKILL.md: - Shortened 2 run-on sentences
  • .claude/skills/draft/SKILL.md: If you have a notification hook configured in CLAUDE.md, run it with the summary.
  • .claude/skills/inbox/SKILL.md: If you have a notification hook configured in CLAUDE.md, run it with the summary.
  • .claude/skills/init/SKILL.md: If no repos found, create the file with an empty table and a note saying "Run /init again after cloning some repos, or add them manually."
  • .claude/skills/init/SKILL.md: - Clip an article and run /inbox
  • .claude/skills/init/SKILL.md: 2. Open a new terminal in {path} and run: claude
  • .claude/skills/meeting/SKILL.md: User pastes meeting notes or provides a recording, run `/meeting`:
  • .claude/skills/morning/SKILL.md: Only run these if the tools are available:
  • .claude/skills/pulse/SKILL.md: If you have a notification hook configured in CLAUDE.md, run it with the pulse summary.
  • .claude/skills/research/SKILL.md: agent-browser open "https://example.com" · uses the network
  • .claude/skills/ship/SKILL.md: Run `git status` to see changes
  • .claude/skills/ship/SKILL.md: Run `git diff --stat` for overview
  • .claude/skills/today/SKILL.md: | # | Tool | Call | Purpose | |---|------|------|---------| | 1 | Bash | Scan repos under `~/Programming` for today's commits via `git log --oneline --since="today"` per repo | Collect commits | | 2 | Read | `02_Journal/daily/{TODAY}.md` | Check if log exists (preserve Ship Log entries …[+186 chars]
  • .claude/skills/today/SKILL.md: {from weekly file, or "No weekly goal set -- run /week"}
  • .claude/skills/week/SKILL.md: Run `/pulse` for full analysis.
  • .claude/skills/week/SKILL.md: If you have a notification hook configured in CLAUDE.md, run it with the week summary.
  • Medium risk: runs-instruction-instruction-network (.agents/skills/research/SKILL.md:17)
  • Medium risk: runs-instruction-instruction-network (.claude/commands/research.md:17)
  • Medium risk: runs-instruction-instruction-network (.claude/skills/research/SKILL.md:17)

Attribution and licence

First committed by
GitHub avatar of RaillyRailly
Publisher
Railly Hugo (Community)
Source
Railly/agent-brain · commit 7e27fe3
Licence
MIT License (files served here)
  • ATTRIBUTION.md (written by AutoGineer)
Synced
Contributors
Railly

AutoGineer is not affiliated with or endorsed by Railly.

Download

The ZIP holds the files AutoGineer serves, with ATTRIBUTION.md and the licence. Download agent-brain.zip