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/commands/challenge.md


name: challenge description: Argue against your own thinking on a topic using evidence from your vault

Read your current thinking on a topic and argue against it. Anti-sycophancy engine.

Usage: /challenge {topic or belief}

Examples:

  • /challenge YC is the right path for my startup

  • /challenge I should focus on Rust

  • /challenge v0 templates are worth my time

  • /challenge I need to learn math for ML

  • /challenge this is the best long-term career move

WAVE 0: Understand the Belief (PARALLEL)

#ToolCallPurpose
1GrepSearch $ARGUMENTS keywords across 03_Garden/concepts/, 02_Journal/daily/, 04_Projects/Direct mentions in vault
2GrepSearch $ARGUMENTS keywords in 05_Areas/Area-specific context
3ReadCLAUDE.mdGoals and priorities context
4GrepSearch $ARGUMENTS keywords in 02_Journal/weekly/Weekly goal history

WAVE 1: Map the Belief

Synthesize what you currently believe about this topic:

YOUR POSITION (as I understand it)
Topic: "{topic}"

Current stance:
{What you've written/done that supports this belief}

Evidence from your vault:
1. [{date}] {daily/note}: "{relevant quote or action}"
2. [{date}] {daily/note}: "{relevant quote or action}"
3. [{date}] {daily/note}: "{relevant quote or action}"

Strength of conviction: {HIGH/MEDIUM/LOW}
(based on: frequency of mentions, actions taken, resources invested)

Present this first. "Is this an accurate read of your position?"

If you correct it, I'll adjust before proceeding.

WAVE 2: Build the Counter-Case

Construct the strongest possible argument AGAINST the belief. Use these lenses:

Lens 1: Opportunity Cost

What are you NOT doing because of this belief?

OPPORTUNITY COST
By pursuing {belief}, you're implicitly deprioritizing:
- {thing 1} (evidence: {n} days since last engagement)
- {thing 2} (was in goals but dropped)
Time invested: ~{hours/weeks} based on commit/note frequency
What if that time went to {alternative}?
Lens 2: Survivorship Bias

Are you cherry-picking evidence?

SURVIVORSHIP BIAS
You remember: {the wins, the positive signals}
You might be ignoring:
- {failed attempt from vault}
- {abandoned related project}
- {negative signal you noted but didn't act on}
Lens 3: Sunk Cost

Are you continuing because you've already invested?

SUNK COST CHECK
Investment so far: {time, money, reputation}
Would you start this today if you hadn't already invested?
If the answer is "probably not", that's a signal.
Lens 4: Contrarian Evidence

What in your OWN vault contradicts this?

YOUR OWN CONTRADICTIONS
- [{date}]: You wrote "{quote that contradicts the belief}"
- [{date}]: You did {action that contradicts the belief}
- {Pattern}: Your engagement with {topic} is actually {declining/inconsistent}
Lens 5: Second-Order Effects

What happens if you're RIGHT but the consequences are bad?

SECOND-ORDER EFFECTS
Even if {belief} is correct:
- It could lead to {negative consequence 1}
- It requires {dependency that might not hold}
- The timeline assumes {assumption that might be wrong}
Lens 6: The Anti-Pattern Check

Does this match any historical failure pattern?

ANTI-PATTERN MATCH
From your anti-patterns file (if it exists):
- "{pattern}", similarity score: {HIGH/MEDIUM/LOW}
- Previous outcome: {what happened last time}

WAVE 3: The Steel-Man Counter

Present the BEST alternative position:

THE STRONGEST COUNTER-ARGUMENT

Instead of "{belief}", consider:

{Alternative position, fully argued}

Supporting evidence from YOUR vault:
1. {evidence 1}
2. {evidence 2}

What this would look like in practice:
- {concrete action 1}
- {concrete action 2}

Risk of NOT considering this: {what you might lose}

WAVE 4: Verdict

CHALLENGE VERDICT

Your belief: "{topic}"

Strength of counter-case: {WEAK / MODERATE / STRONG / DEVASTATING}

Key vulnerabilities found:
1. {biggest weakness in your position}
2. {second biggest}

My honest assessment:
{1-3 sentences. Be direct. No hedging. If the belief is solid, say so.
If it's shaky, say that too. Reference specific vault evidence.}

Recommended action:
- [ ] {what to do with this information}

Rules

  • NEVER agree with the position just because you hold it

  • ALWAYS use evidence from the vault, not generic arguments

  • If the belief is actually well-supported, say so honestly (don't manufacture disagreement)

  • Be specific: cite dates, quotes, patterns from actual notes

  • The goal is CLARITY, not winning the argument

  • If vault has insufficient data on the topic, say so: "Your vault has {n} mentions. Limited evidence to challenge with. Consider writing more about this first."

  • Don't lecture about "both sides", take a clear position in the verdict

  • Tone: respectful but unflinching. Like a trusted advisor, not a yes-man.

Options

  • /challenge {topic} - Full challenge (all 6 lenses)

  • /challenge {topic} --quick - Just opportunity cost + contrarian evidence

  • /challenge {topic} --evidence-only - Show vault evidence without analysis

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