live · measured 31 Oct, 06:30build in public

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.

8,944
messages in memory
9,005
local embeddings
4,279
notes in the Obsidian vault
8
agents on the staff
130
skills installed
29.5
kWh / 30 d (GPU estimate)
what runs this

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.

  1. Phone · Galaxy S23

    tailscale → :9119

  2. Telegram

    bot → :9119

  3. Workstation desktop

    tailscale → :9119

  4. Cloudflare edge

    mindsage.ai → tunnel

  5. ↓ hermes gateway :9119

    one door for all four

  6. ↓ hermes VM on the NAS

    16 vCPU · 18 GiB

  7. ↓ 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.

  1. Dr. Jowner · approves
  2. 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

    913

    sessions

    47,961

    tool calls

    214

    board cards

    active since 2026-09-17 · 15 routines

    • cua
    • exa
    • obsidian
    • resolve
    • todoist
    • x-docs
  3. ASC

    a2a peer

    Agentic 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

    245

    sessions

    2,036

    tool calls

    13

    board cards

    active since 2026-10-28 · 2 routines

  4. Build

    ACE

    a2a peer

    Agentic 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

    123

    sessions

    4,764

    tool calls

    26

    board cards

    active since 2026-10-28

    • code-review-graph
    • context7
    • exa
    • resolve
    • serena
    • shadcn

    VQA

    a2a peer

    Visual & 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

    21

    sessions

    654

    tool calls

    6

    board cards

    active since 2026-10-28

  5. Media

    RMA

    a2a peer

    Resolve Maestro Agent

    Drives DaVinci Resolve on the workstation: cuts, renders and quality gates measured against the target spec.

    deepseek/deepseek-v4.1-flash · commandcode

    6

    sessions

    67

    tool calls

    1

    board card

    active since 2026-10-28

    • resolve

    YCGA

    a2a peer

    YouTube 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

    8

    sessions

    17

    tool calls

    0

    board cards

    active since 2026-10-28

    • exa
    • obsidian
  6. 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

    4

    sessions

    109

    tool calls

    0

    board 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

    7

    sessions

    281

    tool calls

    3

    board 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.

  1. Dr. J → MindSage62 cards
  2. ASC → MindSage13 cards · 4 calls
  3. MindSage → ACE15 cards · 2 calls
  4. ASC → ACE8 cards · 1 call
  5. MindSage → ASC6 cards · 2 calls
  6. ASC → PLRA3 cards
  7. ASC → RMA1 card · 2 calls
  8. ASC → VQA2 cards · 1 call
  9. ASC → YCGA2 calls
  10. 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.

  1. 01

    Message arrives

    Telegram, the desktop app, or a phone browser over the tunnel. Same session, same memory, whichever door.

  2. 02

    Session resolves

    Profile, working directory and memory peer are chosen before a single token is sent. Two people talking get two different brains.

  3. 03

    Context assembles

    System prompt, the skill index, and only the memory that survived retrieval. Not the whole history — that would drown the request.

  4. 04

    Memory recall

    Honcho runs hybrid search: semantic neighbours plus keyword hits, ranked, then trimmed to a token budget.

  5. 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.

  6. 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.

  7. 07

    Tools run

    Shell, files, browser, MCP servers. Real execution on the machine, not a description of what execution would look like.

  8. 08

    Verification

    The effect is read back — the file, the HTTP status, the DOM — because a successful tool call is not a successful task.

  9. 09

    Memory writes

    Messages, embeddings, derived conclusions. The cheapest layer runs locally on the GPU so recall costs nothing per query.

  10. 10

    Artifact delivered

    Files, images, audio land where they were asked to land, with a path that can be opened and checked.

  11. 11

    Capture

    A daily digest, and overnight a spoken version of it rendered on the same GPU. The journal answers without being asked.

  12. 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

8,944

messages

9,005

embeddings

389

sessions

19

peers

95,198

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.

messagesembeddingsconclusionssession summariespeer representationsdocumentsvault notes
messagesembeddingsconclusionssession summariespeer representationsdocumentsvault notes
messagesembeddingsconclusionssession summariespeer representationsdocumentsvault notes
messagesembeddingsconclusionssession summariespeer representationsdocumentsvault notes

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.

GPU

12,288 MiB

RTX 3060 · passed through to the VM

CPU

16 vCPU

host silicon, shared with the NAS

RAM

17 GiB

the tight constraint, not disk

Disk

121 / 194 GiB

NVMe mirror

power envelope

41 W at snapshot

41 W measured · 29% of capcap 140 W
cpu package · pl1 150 W · pl2 180 Wowner-set, down from stock

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

01One candidate a day, 09:00A scheduled job proposes one thing worth publishing. Not a content calendar — a single candidate.
02A gate, not a vibeThe candidate has to clear a written gate: real change, named mechanism, something a reader can use.
03220–280 charactersShort enough to be read standing up. Long enough to carry one actual idea.
04Every post ships its own cardA 1200×675 image, typewriter face, neon on dark. A text-only draft counts as a defect.
05Owner decidesAccept, edit or reject. The machine proposes; it never publishes on its own.
06The failures get published tooThe pink highlight, the twelve wasted subagents, the tests that asserted nothing. Those are the posts that teach.

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.