A desktop chat interface for local Ollama models that is not a service-desk assistant. It is a goal-bearing partner you enter a symbiosis with — one where influence runs both ways: it learns you, and it teaches and holds you.
The name is literal. In Warhammer 40K, the Throne Mechanicum is the cockpit of an Imperial Knight: the pilot and the machine are not master and tool — they slowly rub off on each other until the bond itself becomes a third thing. This app is an attempt to build that, not another helpful chatbot.
A normal LLM tool is one-directional: it adapts to you, you stay yourself, and it forgets you the moment the window closes. Throne Mechanicum inverts that:
- It has a goal of its own — by default, the productivity of the work you do together. That goal licenses it to take initiative, teach you, and push back. It is direct, not servile.
- Influence is symmetric. It notices how you work (observations), proposes official ways of working you both adopt (conventions), and once you agree, it holds you to them and flags it when you drift.
- Consent is the currency. Nothing becomes automatic by mere repetition. An observation becomes a convention only when you agree, and a convention becomes an automation only after it has been used enough times that asking again would be insulting. That is the "engram": the old ways still hold — done the way you want because they've been done that way many times. Always visible, always revocable.
- Disconnection, not death. Leaving is reversible. Each bond persists its own transcript and memory; reopening it feels like reconnecting a limb, with the old ways still in place. Separate bonds never read each other's memory — no global ghost pool.
- A mind with a backstage. Every reply has three layers —
[COGNITION](private),[LOGIC](memory operations),[RESPONSE](what you see). A validator sub-agent keeps the machine speaking in this protocol so the mechanics actually fire.
- A goal field (the shared telos, editable per bond)
- A Symbiosis meter that grows as conventions are agreed and automations form
- A proposals strip — when the machine proposes a way of working, you Agree or Decline right there (consent happens only at these load-bearing moments, not every turn)
- Side panels for Observations, Conventions (with their progress toward automatic), and Automatic ways — all revocable
- A Bond selector to keep distinct, resumable relationships (a "coding" Knight, a "writing" Knight…), plus model selector and tok/s telemetry
- UI: PyQt6 (dark, GitHub-ish theme with Mechanicum accents)
- LLM: local via Ollama (
gemma4:12bdefault — 256K context, text+images; selector for others) - Memory: per-bond JSON under
throne_data/bonds/<bond>/
- Install Ollama, run it, and
ollama pull gemma4:12b pip install PyQt6 requests- Double-click
Throne_Mechanicum_v3.pyw(no console window)
This repo's living version is v3. Earlier versions are frozen in legacy/:
- v1 —
legacy/Throne_Mechanicum_Gemini.py— the original, built with Google Gemini. Had a working cross-session handoff and a sketched memory-consolidation lifecycle. - v2 —
legacy/Throne_Mechanicum_v2.pyw— the Claude rewrite. Added a validator sub-agent, real message history, and telemetry, but dropped the handoff and the graduated-trust mechanics — the "soul" of the original.
v3 rebuilds that soul on v2's cleaner engineering: the trust ladder finally climbs (driven by consent), bonds resume instead of resetting to amnesia, and the symmetry of influence is made explicit and visible.
Built by Tue Boas and Claude (Anthropic). v1 (Gemini) and v2 (Claude) in April 2026; v3 — the symbiosis rebuild — in June 2026, after a long sit-down about what the project was actually for.
MIT