A review of the gbrain knowledge-brain deployment, how it's being used, how to wire it into your AI tools, and how (and whether) it ingests email, CRM, and NetSuite.
/query, /ingest, and /lint skills read raw markdown files from the Obsidian vault. They never call the brain's semantic search.authenticate tool is exposed.Net effect: you built a brain, then kept reading the filing cabinet. The retrieval-quality win (hybrid keyword + vector + knowledge-graph) is sitting unused on your interactive tools. Everything below is fixable; none of it is broken architecture.
gbrain v0.41.26.0 runs in Docker on vps2 (Hetzner) as gbrain-http + gbrain-postgres (pgvector), fronted by brain.huxapps.com through a Cloudflare Tunnel. The /admin path sits behind Cloudflare Access + Google SSO; /mcp behind OAuth 2.1. Its internal enrichment LLM runs through a loopback Codex bridge (your ChatGPT subscription), so marginal cost is roughly $1–5/month (embeddings only).
The wikis are the system of record; gbrain is a search projection, never the source of truth. Everything flows wikis → git → brain, never the reverse. Keep this in mind for every recommendation below.
Total page count is 775 — that includes 362 pages in the inert legacy default corpus (pre-v0.17, never synced, harmless). The 413 figure is the real, searchable wiki content across 9 sources.
| Source | Pages | Last sync | |
|---|---|---|---|
| products | 196 | 2026-05-28 | |
| company-context | 95 | 2026-05-29 | |
| vps-architecture | 40 | 2026-05-31 | |
| odoo-implementation | 22 | 2026-05-28 | |
| systems-handbook | 18 | 2026-05-31 | |
| lead-gen | 17 | 2026-05-28 | |
| training | 10 | 2026-05-28 | |
| assets | 9 | 2026-05-28 | |
| suppliers | 6 | 2026-05-28 | low — expected ~75 |
| default (legacy) | 362 | never | inert |
wikis-sync → gbrain sync timer is firing.~/.local/bin/gbrain-mcp-nish-admin doesn't exist, yet ~/.codex/config.toml references it → Codex's gbrain MCP is dead./mcp → gbrain → authenticate).The brain was installed 2026-05-28 — four days ago, so there's no 30-day history. In its first few days:
gbrain calls in shell history, and the wiki skills don't call it.Bottom line: the brain is populated but barely queried. The semantic-retrieval advantage hasn't reached your day-to-day AI tools because the plumbing and the skills both point elsewhere.
Two layers: fix the plumbing, then retarget the skills.
~/.local/bin/gbrain-mcp-nish-admin — a wrapper that exports GBRAIN_REMOTE_CLIENT_SECRET (your config stores it as a __USE_ENV_…__ placeholder, pulled from 1Password / Agent Vault) and runs gbrain serve --mcp-only. The missing wrapper is the entire reason Codex's brain access is dead./mcp → gbrain → authenticate and complete the browser login once. Then mcp__gbrain__query / search light up.Today wiki-query/SKILL.md Step 1 literally says "Read the wiki's wiki/index.md … Read those pages." Change it to query the brain first, fall back to files:
Call mcp__gbrain__query with source_id: "__all__" for cross-wiki questions, or source_id: "<wiki>" when the wiki is known. Use the returned pages + citations. Only fall back to reading wiki/index.md and grepping files if the brain is unreachable or returns nothing.
The __all__ scoping convention is already documented in Wikis/CLAUDE.md — the skills just don't follow it. Keep /ingest and /lint as file-authoring (wikis stay the source of truth); after an ingest, the brain picks it up on the hourly sync, or you can trigger it immediately with gbrain remote ping. A one-line steer in CLAUDE.md — "For company knowledge, query gbrain (semantic) rather than grepping the vault" — locks the habit in.
Today, the brain's only live intake is the wiki Git repos, pulled hourly and synced into Postgres. Nothing else flows in automatically.
Your Hermes agents (huxberrypm Gmail intake, Meet ingestion, nhc scrapers, assetops) write markdown into a wiki's raw/inbox/, which becomes brain content on the next sync. So email and meeting data reach the brain only if a Hermes job or you ingest it into a wiki first. This keeps the "wikis = source of truth" principle intact.
gbrain ships installable ingest recipes — markdown files with a deterministic collector + agent enrichment. The catalog is consumer-oriented:
| Sense | Source | Status |
|---|---|---|
| email-to-brain | Gmail (via ClawVisor gateway or Google OAuth) | available · not set up |
| calendar-to-brain | Google Calendar | available · not set up |
| meeting-sync | Circleback transcripts | available · not set up |
| x-to-brain | Twitter / X | available · not set up |
| NetSuite / Odoo (CRM) | — | no native sense exists |
odoo-to-brain / netsuite-to-brain): same pattern as email-to-brain — a collector (Odoo XML-RPC / NetSuite SuiteQL) → digest → agent enrichment, validated with gbrain integrations test <file>. This is a build, not a toggle./query (and adjust /ingest, /lint) to call gbrain with __all__ scoping first, fall back to files. Reversible.odoo-to-brain / netsuite-to-brain recipe vs. the Hermes→wiki route, before building anything.