Ask the master.
The brain that runs while you build. Roushi indexes every decision, pattern, and lesson across your portfolio — and feeds it back to Claude Code, Cursor, and your agents before you write each next file.
What it does, in seven seconds
You edit a file in your editor. Before the change lands, Roushi quietly tells your AI assistant what you decided about that subject months ago, which gotcha bit you in a related project, and which rules apply to this kind of code. The file lands consistent with the rest of your portfolio on the first try.
# PreToolUse hook fires before the AI writes the file 📚 Roushi context · your-product · API route Relevant from the brain: - [lesson] an ORM gotcha you hit two months ago - [decision] a stack choice you locked in last quarter - [rule] a portfolio-wide convention (always-on)
The three things Roushi is good at
Ask
Grounded synthesis with citations. The brain returns an answer, the entities it stood on, and the gaps it can't fill yet.
> "what gotchas have we hit with our ORM?" [orm-any-array-spread] [orm-strict-non-tty] Gaps: retry policy patterns.
Track
Durable goals across sessions and machines. Cron-driven maintenance keeps the brain honest — stale, duplicate, and contradictory entries surface as system tasks.
/goals → active: 3 → blocked: 1 → cron-found: 2 · 12 stale entities · 1 contradiction (rule)
Trace
A typed graph of every decision, pattern, lesson, and product. Multi-hop traversal answers questions grep never can.
graph-query roushi --hops 2
roushi --uses→ pgvector
--uses→ Drizzle
--led_to→ D11 (embeddings)
--depends_on→ feedback...What Claude Code sees, with Roushi running
Pre-tool-use hooks fire before every Edit/Write in any KumoKodo workspace. The hook classifies the file by path, finds the relevant lessons/decisions/patterns/rules in the brain, and injects them as additional context. The model reads them before generating the code.
You ask the model
Add a Server Action at src/app/actions/touch-entity.ts that takes a slug and bumps last_validated_at.Roushi adds (before the model responds)
📚 Roushi context · Server Action Relevant from the brain: - [rule] portfolio-security-baseline - [lesson] Server Action redirect() in try/catch crashes - [pattern] formData → Zod validation → return state
The code that lands already has the auth check, the Zod schema, and the safe-return pattern — because the model read what the team had decided before it wrote a line.
Twelve things Roushi does, in plain words
- 01
Ask, with citations
Synthesized answers grounded in the brain. Every claim links to the entity it came from.
- 02
Hybrid search
Vector + keyword fused via Reciprocal Rank Fusion. Optional LLM rerank pass.
- 03
Typed graph
Twelve entity types, ten relations. Multi-hop traversal via recursive CTE.
- 04
Visual graph
Force-directed view of the whole portfolio. Click-to-click shortest path.
- 05
PreToolUse advisor
Hook injects relevant context into Claude Code before every Edit/Write.
- 06
Security checklist hook
File-pattern-aware security guidance fires before code lands.
- 07
Auto-synced rules
Brain rules write into every workspace's Claude memory dir on session start.
- 08
Maintenance crons
Decay, dedupe, audit-edges, contradictions — daily/weekly/monthly. Auto-closes when findings clear.
- 09
CLI + stdio MCP
Thirty-five tools. Local stdio for low latency; HTTPS for remote agents.
- 10
Skill index + sync
Claude Code skills stay on disk for native /invocation; the brain indexes them for cross-reference + team sharing.
- 11
Goal lifecycle
Multi-week objectives across machines. Status buttons, system goals from crons.
- 12
Markdown-first
Content in git is canonical. Postgres is the index. Survives DB loss.
How it works, at six layers
Who Roushi is for
If you run a portfolio
Five or more products in your portfolio. Decisions in product A are forgotten when you work on product B. Lessons from one painful 3am don't carry to the next. Roushi is what your portfolio brain should have been from product number two.
“The marketing site IS Roushi practising what it preaches.”
If you're a solo founder
The business context lives in your head. Slack is where decisions go to die. Roushi captures the durable bits — the why, the lessons, the trade-offs — and re-surfaces them in the agent you're already pair-programming with.
“Notion is a passive store. Roushi acts.”
If you ship code with AI agents
Claude Code, Cursor, Windsurf — every session starts cold. Roushi is the persistent layer that remembers what the last session decided, surfaces it before you ask, and feeds it to whichever agent you're using next.
“Memory across agents and sessions.”
Built on
Postgres + pgvector · Drizzle ORM · Next.js 16 · MCP · Auth.js v5 · OpenAI embeddings · Vercel Fluid Compute · Tailwind 4 · TypeScript strict · Biome
No vendor logos. The stack is the boring kind — chosen for portability and longevity, not novelty.
From the operators
We built Roushi for the KumoKodo portfolio first. With twenty-plus products under one roof, the cost of forgetting was compounding faster than we could mitigate it manually. The brain is what we wished we'd had at product number two; private beta is open to other portfolio operators who want the same.
— Sam, KumoKodo
Request beta access
Roushi is single-tenant during private beta. If you operate a portfolio (or have agents that need a brain), get in touch. I read every request personally.