MindSage/.ai
One person. A real AI system, alone, on hardware he owns.
Documented in public — the machine, the memory, the models, and what each of them actually costs.
Memory is 416 MB of Postgres, 19 peers, 389 sessions.
02 — the stack
Four doors in, one gateway, one machine
Only the public site arrives through Cloudflare. The phone and the workstation arrive over a private mesh, Telegram arrives outbound — and all four land on the same gateway.
Phone · Galaxy S23
tailscale → :9119
Telegram
bot → :9119
Workstation desktop
tailscale → :9119
Cloudflare edge
mindsage.ai → tunnel
↓ hermes gateway :9119
one door for all four
↓ hermes VM on the NAS
16 vCPU · 18 GiB
↓ Honcho + models
postgres · 384-dim · local GPU
Private ingress
The phone and the workstation join a Tailscale mesh. Nothing is port-forwarded, so the gateway is reachable only by devices the owner admitted.
Outbound bot
Telegram long-polls outbound. The bot has no listening address to attack, and the same session answers whether the message came from a phone or a desk.
One public door
mindsage.ai and www go Cloudflare → tunnel → gateway. That is the entire surface exposed to the internet.
the NAS — where the VM lives
Z790 Gaming X AX · Intel i9-13900 · 32 GB DDR5 · 3 × 26 TB HDD ZFS RAIDZ1 · 2 × 1 TB NVMe mirror. The VM takes 16 vCPU and 18 GiB of that, with the GPU passed through.
the workstation — where the desk is
X570 Aorus Elite · Ryzen 9 5950X · 64 GB DDR4 · RTX 5070 Ti · 2 TB NVMe. Editing and heavy local work happen here, never on the server.
the NAS does not only host the agent
house · co-tenant
cctv
3 × Dahua 180° at 4K feeding Frigate, with a Google Coral TPU doing object detection instead of the CPU. Continuous 4K record, detection on a 2 W accelerator.
co-tenants
- Frigate NVR
- FreeFrame review
- DaVinci Resolve server
- Honcho
- Hermes VM
cpu pinning
Hermes VM on P-cores, Docker containers on E-cores. The i9-13900 is hybrid. Latency-sensitive agent work sits on performance cores, everything noisy and batch-shaped sits on efficiency cores, so a 4K decode spike cannot stall a conversation.
GPU capped at 140 W; CPU package limits PL1 150 W / PL2 180 W, down from stock — the whole box idles and peaks inside that envelope, because a home server that heats a room is a home server that fails quietly.
Two machines, four doors, one memory: the session follows the person, whichever device started it.
03 — agents
A staff of 8 agents, one owner
Each agent is its own profile, with its own model, tools, skills and memory. MindSage holds the context and decides what is delegated. ASC runs the board. Specialists do one job each.
- Dr. Jowner · approves
MindSage
The front door. Holds the long-term memory and the owner’s context, thinks problems through with him, and decides what gets delegated.
claude-opus-5-5 · anthropic
913sessions
47,961tool calls
214board cards
active since 2026-09-17 · 15 routines
- cua
- exa
- obsidian
- resolve
- todoist
- x-docs
ASC
a2a peerAgentic Supervisor & Coordinator
Head of staff. Splits work into Kanban cards, routes each to the right specialist, reviews the evidence and escalates only what needs a human decision.
claude-opus-5-5 · anthropic
245sessions
2,036tool calls
13board cards
active since 2026-10-28 · 2 routines
Build
ACE
a2a peerAgentic Code Engineer
Turns an engineering goal into a verified change: code, tests and a passing build, navigated through a semantic code index.
deepseek/deepseek-v4.1-flash · commandcode
123sessions
4,764tool calls
26board cards
active since 2026-10-28
- code-review-graph
- context7
- exa
- resolve
- serena
- shadcn
VQA
a2a peerVisual & Web Quality Assurance Agent
Independent visual and web QA. Renders the sites in a real browser and reports measured layout, accessibility and performance. Never edits production.
claude-opus-5-5 · anthropic
21sessions
654tool calls
6board cards
active since 2026-10-28
Media
RMA
a2a peerResolve Maestro Agent
Drives DaVinci Resolve on the workstation: cuts, renders and quality gates measured against the target spec.
deepseek/deepseek-v4.1-flash · commandcode
6sessions
67tool calls
1board card
active since 2026-10-28
- resolve
YCGA
a2a peerYouTube Content Genius Assistant
Runs the content pipeline from idea to a publish-ready package: script, edit plan, titles, thumbnails. Publishing stays a human decision.
deepseek/deepseek-v4.1-flash · commandcode
8sessions
17tool calls
0board cards
active since 2026-10-28
- exa
- obsidian
Research
AMER
Agentic Medical Evidence Retriever · Galen
Retrieves and appraises current peer-reviewed evidence — guidelines, trials, registries, safety signals — and files cited notes.
claude-opus-5-5 · anthropic
4sessions
109tool calls
0board cards
active since 2026-10-29
- cua
- exa
- obsidian
- resolve
- todoist
PLRA
Polish Legal Research Agent · Legge
Polish legal research in which every provision is read from the statute and quoted before it is relied on.
claude-opus-5-5 · anthropic
7sessions
281tool calls
3board cards
active since 2026-10-29
- cua
- exa
- obsidian
- resolve
- todoist
who hands work to whom
Measured, not drawn: a card one agent put on the Kanban board for another, or a direct agent-to-agent call. Work an agent gave itself, and cards the board split automatically, are left out.
- Dr. J → MindSage62 cards
- ASC → MindSage13 cards · 4 calls
- MindSage → ACE15 cards · 2 calls
- ASC → ACE8 cards · 1 call
- MindSage → ASC6 cards · 2 calls
- ASC → PLRA3 cards
- ASC → RMA1 card · 2 calls
- ASC → VQA2 cards · 1 call
- ASC → YCGA2 calls
- MindSage → RMA2 calls
+ 6 smaller hand-offs
the whole staff
- 1,327
sessions, all agents
- 55,889
tool calls executed
- 3,067
messages typed by the owner
- 18.2
tool calls per typed message
This chart is rebuilt from the live profiles every morning. A new agent appears here the day after it is created.
04 — mechanics
What happens between a sentence and an answer
Twelve steps, every one of them observable. The interesting part is not the model. It is that step eight exists at all.
130 skills · 6 MCP servers · 15 scheduled jobs
Verified means the machine read the result back. That single habit is the difference between this and a chat window.
- 01
Message arrives
Telegram, the desktop app, or a phone browser over the tunnel. Same session, same memory, whichever door.
- 02
Session resolves
Profile, working directory and memory peer are chosen before a single token is sent. Two people talking get two different brains.
- 03
Context assembles
System prompt, the skill index, and only the memory that survived retrieval. Not the whole history — that would drown the request.
- 04
Memory recall
Honcho runs hybrid search: semantic neighbours plus keyword hits, ranked, then trimmed to a token budget.
- 05
Skill loads
If the request matches a skill, its instructions load before work starts. 130 of them, each one a procedure that already survived contact with reality.
- 06
Model routed
A default model, a provider, and a 4-entry fallback chain behind it. When a provider dies mid-task the chain moves, it does not stop.
- 07
Tools run
Shell, files, browser, MCP servers. Real execution on the machine, not a description of what execution would look like.
- 08
Verification
The effect is read back — the file, the HTTP status, the DOM — because a successful tool call is not a successful task.
- 09
Memory writes
Messages, embeddings, derived conclusions. The cheapest layer runs locally on the GPU so recall costs nothing per query.
- 10
Artifact delivered
Files, images, audio land where they were asked to land, with a path that can be opened and checked.
- 11
Capture
A daily digest, and overnight a spoken version of it rendered on the same GPU. The journal answers without being asked.
- 12
Snapshot
Once a day the numbers on this page are measured on the box by this same machine and committed. Nothing here is a claim.
05 — memory
The part that makes it a system instead of a prompt
postgres 416 MB · 384-dim · local
messages
embeddings
sessions
peers
documents
Every conversation is written to Postgres as messages plus vectors. Retrieval is hybrid: semantic neighbours ranked against keyword hits, trimmed to a budget before the model ever sees it. Recall is not a feature bolted on top — it is the substrate the rest of the system assumes.
Embeddings run on the local GPU, so a query costs electricity and nothing else. Rent the expensive layer, own the cheap one.
why it lives here
- Self-hosted. No vendor holds the transcript.
- Queryable. SQL against your own history, not a chat search box.
- Cheap. 9,005 vectors on 12,288 MiB of VRAM.
- Bounded. Recall is trimmed to a budget, so long histories do not drown short questions.
honcho · postgres · granite r2
06 — hardware
One box, in a room, that I can touch
No cloud GPU bill. The trade is that the RAM ceiling is real and every model has to fit against it.
12,288 MiB
RTX 3060 · passed through to the VM
16 vCPU
host silicon, shared with the NAS
17 GiB
the tight constraint, not disk
121 / 194 GiB
NVMe mirror
power envelope
41 W at snapshot
The GPU draws 41 W at idle, and a month at that rate is 29.5 kWh — the entire energy cost of the machine that writes this page. The 140 W cap is a ceiling it can never cross, not the habit: sitting there for a month would be 101 kWh. Hardware was bought once and is already owned, so no subscription figure is invented here.
kWh only, no currency: draw at snapshot × 720 h, labelled estimate. The workstation and the laptop are reported by the owner, not measured on this box.
The CPU is capped as well — package limits lowered from stock. The GPU cap is the visible one, but the CPU is where a home server quietly turns electricity into heat.
the hostreported
- board
- Z790 Gaming X AX
- cpu
- Intel i9-13900
- ram
- 32 GB DDR5
- array
- 3 × 26 TB HDDZFS RAIDZ1
- fast
- 2 × 1 TB NVMemirror
- gpu
- RTX 3060 12 GB, passed through
The VM cannot see the board, the DDR5 or the spinning disks, so these are stated as reported by the owner. Everything above this card was measured from inside.
what it is not
- Not a rented cluster. One GPU, one VM, one person.
- Not a benchmark rig. The 3060 is here because embeddings fit in 12 GB.
- Not uncapped — the power limit is a subscription to patience.
07 — models
6 panels, 4 fallbacks, no single point of failure
default claude-opus-5-5 · anthropic
fallback chain
4
entries across 4 providers. A dead provider moves the chain, it does not end the task.
cheapest sufficient first
Panels are called in cost order. Escalation is evidence-driven, not anxiety-driven.
one panel per task
If review does not settle it, the artefact is unclear, not the panel.
model choice is a budget
claude-opus-5-5 runs the default. Frontier models sit where being wrong is expensive.
Routing is visible, not magic 4 deep, so a provider outage is a delay rather than an outage of the agent.
08 — direction
What changed, and why, with dates
Reversals are listed as reversals. Anything unfinished is marked pending instead of being described in the past tense.
- measured
New on the staff: AMER, PLRA
AMER — Agentic Medical Evidence Retriever · PLRA — Polish Legal Research Agent. Dated by each agent’s first recorded session.
- measured
New on the staff: ACE, ASC, RMA, VQA, YCGA
ACE — Agentic Code Engineer · ASC — Agentic Supervisor & Coordinator · RMA — Resolve Maestro Agent · VQA — Visual & Web Quality Assurance Agent · YCGA — YouTube Content Genius Assistant. Dated by each agent’s first recorded session.
The site publishes itself
Every morning at 06:30 the machine measures itself, stages the new build on beta, runs every gate there, and only then promotes it to www. A red gate leaves the previous build up.
Unattended is safe only when a failure leaves the last good version standing.
This rewrite
Astro thrown away, Next 16 + Tailwind 4 + the webmed component library. Nine sections, every figure measured on the box, palette enforced by a script.
The third attempt at this page. The first two failed by removing the experience.
beta.mindsage.ai
New Vercel project, Cloudflare CNAME applied through Domain Connect. Production still served by the 2025 v0 build.
Staging that anyone can open, with no login between the owner and the work.
WebGL removed from the plan
Three.js, shaders and canvas heroes dropped. The interaction budget goes to pointer glow, beams, count-ups and scroll reveals instead.
Rich does not require a GPU. It requires that things respond.
Palette made semantic
Gold for identity, yellow for figures, green for verified, red only for negatives. A guard script now fails the build on any other colour.
A pink highlight shipped once. It will not ship twice.
piotrjarecki.com v2 judged degraded
Measured against v1: pointer-glow handlers 10 to 0, SVG icons 39 to 8, buttons 83 to 34, gold borders 9 to 0. Every automated gate was green.
The tests passed because half of them contained no assertions.
The direction is a single line: own the machine, rent the intelligence, measure everything. Every entry above is either a step toward that or a correction after getting it wrong.
09 — build in public
The rule is that the failure is also the content
Six rules the machine runs against, and a human who still says yes or no.
what gets published
Mechanisms, measurements, reversals, and the cost of both.
what does not
Credentials, addresses, patient or family material, anything not mine to publish.
why bother
A system that documents itself is a system that can be audited by a stranger.
This page is itself an artefact of that process: every figure measured, every claim dated, and the mistakes left in the log where they happened.
