Give Your Agent a Persistent Memory
GBrain is a persistent knowledge base that gives your Hermes Agent, Claude Code, or Gemini CLI long-term memory across sessions, enhancing their capabilities with searchable data and autonomous learning.
🧠 Give Your Hermes Agent a Persistent Memory with GBrain
TL;DR
GBrain is a persistent knowledge base that gives your Hermes Agent (and Claude Code/Gemini CLI) long-term memory across sessions. Install it in ~30 minutes via your agent — it auto-creates a searchable brain of meetings, emails, ideas, and code. Your agent becomes 17,888 pages smarter over time, with hybrid search, auto-linking, cron jobs that run while you sleep, and full MCP integration. MIT licensed, runs locally (PGLite) or on Supabase.
Context
Your Ubuntu system runs:
- Hermes Agent
- Claude Code CLI
- Gemini CLI
The problem: Every session starts fresh. Your agents forget yesterday's decisions, meeting notes, who works where, and what you learned.
Garry Tan (YC President) built GBrain to solve this for his own OpenClaw/Hermes deployment. Production numbers from his personal brain:
- 17,888 pages, 4,383 people, 723 companies
- 21 cron jobs running autonomously
- Built in 12 days
- Agent ingests meetings, emails, tweets, voice calls while he sleeps
- Every cycle adds knowledge — the brain compounds daily
GBrain is those patterns, generalized into 29 skills you install in 30 minutes.
The Approach
Step 1: Install GBrain via Your Hermes Agent (30 minutes)
SSH into your Ubuntu VPS and paste this into your Hermes Agent:
Retrieve and follow the instructions at:
https://raw.githubusercontent.com/garrytan/gbrain/master/INSTALL_FOR_AGENTS.md
Your agent clones GBrain, sets up the brain, loads 29 skills, and configures recurring jobs. You answer a few questions about API keys.
Alternative (standalone CLI, no agent):
git clone https://github.com/garrytan/gbrain.git && cd gbrain && bun install && bun link
gbrain init # local brain, ready in 2 seconds
gbrain import ~/notes/ # index your markdown
gbrain query "what themes show up across my notes?"
Step 2: Connect GBrain to Your Agents
For Hermes Agent / Claude Code (MCP server):
Add to your MCP config (e.g., ~/.claude/server.json for Claude Code):
{
"mcpServers": {
"gbrain": { "command": "gbrain", "args": ["serve"] }
}
}
Now your agents have 30+ MCP tools: gbrain search, gbrain get, gbrain put, gbrain query, gbrain graph-query, etc.
For GStack users (you have Claude Code CLI):
GBrain integrates with GStack via hosts/gbrain.ts. Run:
gbrain init # auto-detects GStack, reports mod status
Then GStack's coding skills (/review, /investigate, /plan-eng-review) check the brain before coding.
Step 3: Import Your Existing Data
# Import markdown notes
gbrain import ~/notes/
# Import from Obsidian, Notion, Logseq
gbrain migrate --from obsidian --path ~/obsidian-vault
# Import meeting transcripts (Circleback, etc.)
gbrain meeting-ingest ~/meetings/
# Index code repos (Cathedral II)
gbrain sources add ~/your-repo --strategy code
gbrain code-def functionName # where is X defined?
gbrain code-callers functionName # who calls this?
Step 4: Set Up Recurring Brain Maintenance
# One maintenance cycle (run via cron)
gbrain dream --dry-run # preview what would happen
gbrain dream --phase 1 # enrichment only
# Or let your agent schedule it via the cron-scheduler skill
# The brain auto-enriches entities while you sleep
The dream cycle scans every conversation, enriches missing entities, fixes broken citations, and consolidates memory. You wake up and the brain is smarter.
Step 5: Query Your Brain from Any Agent
# Natural language query (hybrid search)
gbrain query "what have I said about founder-market fit?"
# Get a specific page
gbrain get people/alice
# Graph query: who works at Acme AI?
gbrain graph-query companies/acme-ai --type works_at --direction in
# Search code symbols
gbrain code-def HermesAgent
gbrain code-callers searchKeyword
Why It Worked
1. Self-wiring knowledge graph — zero LLM calls
Every page write extracts entity references and creates typed links (attended, works_at, invested_in, founded, advises) with regex patterns, not LLMs. The graph wires itself. Benchmarked on a 240-page corpus:
- Precision@5: 49.1% (vs 22.1% without graph)
- Recall@5: 97.9%
- Beats hybrid search without graph by +31.4 points P@5
2. Compiled truth + timeline pattern
Every page has:
- Above
---: Compiled truth (current best understanding, gets rewritten when evidence changes) - Below
---: Timeline (append-only evidence trail, never edited)
This means your agent can distinguish "what we know now" from "what happened when" — critical for accurate recall.
3. Minions: deterministic work costs $0
The minion-orchestrator skill runs deterministic scripts as Postgres jobs, not LLM sub-agents.
Real production numbers (19 cron jobs, 45,000-page brain):
| Task | Sub-agents | Minions |
|---|---|---|
| Wall time | >10,000ms (timeout) | 753ms |
| Token cost | ~$0.03/run | $0.00 |
| Success rate | 0% (couldn't spawn) | 100% |
| Memory/job | ~80 MB | ~2 MB |
4. Hybrid search with 20-layer deterministic pipeline
The brain doesn't rely on one trick. Every query goes through: intent classifier → multi-query expansion → vector search → keyword search → RRF fusion → cosine re-scoring → compiled truth boost → backlink boost → source-aware dedup. Each layer covers what the others miss.
Measured improvement (BrainBench v1, 240 pages):
| Metric | Before PR #188 | After | Δ |
|---|---|---|---|
| Precision@5 | 39.2% | 44.7% | +5.4 pts |
| Recall@5 | 83.1% | 94.6% | +11.5 pts |
| Correct in top-5 | 217 | 247 | +30 |
5. Skillify: bugs become structurally impossible to repeat
Say "skillify it!" after fixing a bug. GBrain creates a SKILL.md with triggers, a deterministic script with tests, and a routing fixture. The bug can't recur — the fix is now a permanent part of your agent's workflow.
Apply It Yourself
Prerequisites on Your Ubuntu VPS
- Ubuntu 20.04+ with Bun v1.0+, Git
- Hermes Agent (or Claude Code CLI / Gemini CLI)
- (Optional) API keys for enrichment: Anthropic, OpenAI, Groq (Whisper for audio)
Quick Start (30 minutes, via agent)
From your Hermes Agent:
1. Point your agent to: https://raw.githubusercontent.com/garrytan/gbrain/master/INSTALL_FOR_AGENTS.md
2. Answer ~5 questions about API keys
3. The agent clones, installs, sets up the brain, loads 29 skills
4. Run: gbrain import ~/Documents/notes/
5. Run: gbrain query "what work have I been doing?"
From CLI (no agent, 2 seconds to working brain):
# Install
git clone https://github.com/garrytan/gbrain.git && cd gbrain && bun install && bun link
# Initialize (PGLite local, zero config)
gbrain init
# Import your markdown
gbrain import ~/your-notes/
# Search
gbrain query "meeting notes from last week"
# Add a page
echo "# Meeting with Alice\n\nDiscussed Q3 planning" | gbrain put meetings/2026-04-28-alice
# See what you have
gbrain list --type person
Commands You'll Use Daily
| When you want to... | Command |
|---|---|
| Ask your brain a question | gbrain query "what did I say about X?" |
| Read a specific page | gbrain get people/alice |
| Write a new page | echo "content" | gbrain put slug |
| Import a folder of notes | gbrain import ~/folder/ |
| Find who works somewhere | gbrain graph-query companies/acme --type works_at |
| Find code definitions | gbrain code-def functionName |
| Run one maintenance cycle | gbrain dream |
| Check brain health | gbrain doctor |
| List all skills | gbrain skillpack list |
| Install a curated skill | gbrain skillpack install brain-ops |
Connect GBrain to Claude Code or Gemini CLI
MCP server (add to your agent's config):
{
"mcpServers": {
"gbrain": { "command": "gbrain", "args": ["serve"] }
}
}
Now your agents can call GBrain tools natively.
For Claude Code specifically:
# Add to ~/.claude/server.json (create if missing)
claude mcp add gbrain -- gbrain serve
Set Up Remote MCP (for Claude Desktop, Cowork, Perplexity)
# Expose via ngrok (requires paid plan for fixed URL)
ngrok http 8787 --url your-brain.ngrok.app
# Create an auth token
bun run src/commands/auth.ts create "claude-desktop"
# Add to Claude Desktop
claude mcp add gbrain -t http https://your-brain.ngrok.app/mcp \
-H "Authorization: Bearer TOKEN"
Import Real Data from Your Workflows
From email (Gmail):
- The
credential-gateway+email-to-brainrecipes auto-set up viagbrain integrations - Your agent asks for Gmail OAuth, then every email becomes a brain page with entities
From meetings (Circleback, Google Meet):
# Download transcripts, then:
gbrain meeting-ingest ~/Downloads/meeting-transcripts/
# Every attendee gets enriched, every company gets a timeline entry
From Twitter/X:
# Recipe auto-setup via gbrain integrations
# Your timeline, mentions, and deletions become brain pages
From voice calls:
- Set up
voice-to-brainrecipe (Twilio + OpenAI Realtime) - Call a phone number, your AI answers with full context from the brain
- Transcript appears as a brain page automatically
Troubleshooting
gbrain init fails?
# Ensure Bun is installed
curl -fsSL https://bun.sh/install | bash
# Re-run init
gbrain init --force
Skills not loading in Hermes?
# Check resolver
gbrain check-resolvable --verbose
# Auto-fix common issues
gbrain doctor --fix
Search returning poor results?
# Regenerate embeddings
gbrain embed --all --stale
# Re-extract graph links
gbrain extract links --source db
Worker crashes? Use the supervisor:
gbrain jobs supervisor --concurrency 4 --detach
gbrain jobs status --json
Uninstall:
rm -rf ~/.gbrain ~/.config/gbrain
# Remove from MCP config manually
Source
- GitHub Repository: garrytan/gbrain
- License: MIT
- Documentation:
AGENTS.md— agent operating protocolllms.txt/llms-full.txt— documentation map for LLMsskills/RESOLVER.md— skill dispatcher (29 skills)docs/— MCP guides, minions deployment, plugin authoring
- Benchmarks: gbrain-evals — BrainBench corpus and scorecards
- Integration with GStack: See
hosts/gbrain.tsandUSING_GBRAIN_WITH_GSTACK.mdin the gstack repo
The bottom line: Your Hermes Agent is smart but forgetful. GBrain gives it a persistent, self-improving memory. Install in 30 minutes, then every session builds on the last. The brain wires itself while you sleep.