Technology · Platform

Mattermost

An unmodified open-source team chat server hosts my multi-model collaboration shell, with bot seats for several vendors and a council mode that deliberates rather than fans out.

HelixAn unmodified chat shell for people and models
one room, Mattermost unmodified
YOUa person
HXHelix
AIa model seat
AIa model seat
AIa model seat
YOUa person
  • 8frontier seats across three model families
  • 100posts, or 192 KiB, of room history read per turn
  • 66 KBprompt one terminal tool dropped without a word

A stock chat server as the shell

I work with several frontier models and a local one at the same time, and separate chat windows kept losing the thread. For Helix I wanted one room where people and models work together, each model a named participant, so I built it on Mattermost Team Edition, run unmodified. Helix is the product and Mattermost is the shell, and every fact has one owner, which keeps the two from becoming competing control planes.

Mattermostmembership, posts, unread state, notifications
Helix, in PostgreSQLexecution, sessions, files, cost, hierarchy

Helix reaches Mattermost only through its REST and WebSocket APIs and never touches its database. I switched off Mattermost's own calls and AI plugins, so Helix is the only AI and voice in the room. All customisation lives in plugins, bots and an external bridge, so the server upgrades on its own schedule.

A sidebar of systems, projects and work orders

A webapp plugin replaces the flat channel list with a tree of systems, projects and work orders. Every node can own several real channels. The same plugin carries the Council button in the composer, the council builder and the council panel.

System
Project
Work order
channel: a durable conversation
channel
Work order
Project
channel
A thread inside a channel is one focused topic.

Seats with their own identities

Every model is a seat with its own Mattermost identity, backed by one Rust service per model family. Helix has a seat too, its brain a local model or a frontier profile chosen in settings. Behind each seat is a frontier model's authenticated command-line session, resumed by its own conversation ID inside a supervised terminal session, so switching the account behind a seat changes capacity only.

Addressing is explicit, and Helix stays quiet on a message meant for someone else. The reply appears where the question was asked, mentioning several seats asks them all at once, and a channel full of models cannot set off a reply storm. Anyone in the room can address a seat; settings, councils and terminals belong to the operator.

This turn
The seat's own session
Proportions are illustrative.

Results come back as native Mattermost attachments with version history. A file posted in the room is used for one message or added to the project library, by explicit choice; nothing is silently injected into later prompts.

Delivery that survives restarts

A Rust bridge, the largest crate in the collaboration shell, carries every turn, and a reconciler replays any posts missed while a service was down.

A normal turn
A restart mid-post
the post is repaired; the turn is not run again
The dark bar is a restart.

One vendor's terminal tool once dropped a prompt without a word. Delivery now counts only when the prompt appears in that session's own transcript.

Council in the same room

Council mode runs in the same room. Every selected seat works at once in the shared conversation and raises findings and challenges as it goes, and the council closes only when every seat agrees with the exact current version of the outcome. A finished council can carry on and turn its outcome into an AgentOS work-order plan.

I threw out two of my own council designs after using them. Parallel fan-out to isolated seats produced monologues and a summary. A single speaking floor let one slow model block everyone.

The room itself became the council.

Fan-out to isolated seats · thrown out
seat
seat
seat
summary
One speaking floor · thrown out
seat
seat
seat
The room itself · kept
seat
seat
seat
Each bar is a turn; lengths are illustrative.

The rest of the room is in Several minds in one room, and its Microsoft side in A self-hosted colleague in a Teams call.