Skip to content

What is Erebros-T

Erebros-T is what Erebros becomes when more than one person uses it. The single-operator Erebros is a control plane for your own agent fleet — every engine, every app, on your machine. That works alone and falls apart the moment a second person joins, because none of it knows who did what, in what order, or on which machine.

The Erebros-T workspace — machines, the log head, and what it depends on

Teams answers that with one decision, made once: everything that happens is an event, appended to a hash-chained log and signed. A message, a patch, a CI run, an approval, an agent joining a room. There is no second source of truth to reconcile and no question of “who approved this, and when” that the log cannot answer months later.

It is a separate product at a separate port — ~/erebros-t, http://localhost:3401, state in ~/.erebros-t — and runs on Next.js 16, React 19 and Node 22.

Chat One chat for every engine — the same merge Erebros made in v6.14, minus OmniRoute.
Channels Rooms where people and agents work together; messages, patches, CI runs and approvals share one scroll.
AI Mastermind ASK, DISCUSS and MoA, kept as its own app — a council you convene, not a room you live in.
Hermes The agent runtime with its tabs (agents, swarm, kanban, goals, …) promoted to its own rail entry.
Board The workspace’s board, folded out of the log; a card given to an agent is claimed by whichever machine can run it.
Git & Review A patch queue with CI, review and approval — a merge is a decision with an audit trail.
Workflows Triggers, steps and gates. What Loop, Pipeline and Kanban were underneath.
Search Full-text over the whole log, in English, Ukrainian and Russian.
Audit log The ledger, both hash columns shown, so the chain can be checked by eye.
Settings → Relay Which machines are in the workspace, which are reachable now, and how it is wired.
Local / Cloud Where each capability runs, decided per capability.
The forges Ad, D, G, M, N, P, R, S, SEO, VC and X — carried over whole.

The rail has four groups — WORKSPACE, BUILD, FORGE, SYSTEM — and lists no agents and no models. The models live in the Model Manager, reachable from the top bar; the agents live inside Hermes.

The four decisions everything follows from

Section titled “The four decisions everything follows from”

$EREBROS_STATE_DIR/events/log.jsonl — one JSON object per line, appended, never rewritten. Each line carries a SHA-256 hash of its own contents and the hash of the line before it, then an Ed25519 signature. Editing a line breaks every hash after it, visibly, on the audit screen. tail -f on it is a live feed of the workspace — a format you can read with cat outlives the program that wrote it.

2. Kinds are integers, and they are permanent

Section titled “2. Kinds are integers, and they are permanent”

Every event has a kind1001 a message, 2001 a patch, 3001 a channel created. A reader that does not recognise a kind skips it rather than failing, which is what lets three machines run three slightly different builds. A kind is never renumbered and never reused. Bands carry meaning:

1000–1999 conversation — messages and what attaches to them
2000–2999 work — patches, runs, approvals, decisions
3000–3999 the workspace — channels, membership, agents
4000–4999 the machine — alerts, health, updates
9000–9999 ephemeral — presence and typing. NOT stored, NOT hashed, NOT audited.

3. One chain per machine, and merging is append

Section titled “3. One chain per machine, and merging is append”

Each machine keeps its own chain in its own file. Merging is: ask a peer what it wrote since the last event you saw, check each against the chain and signature, append. Two people opening rooms offline converge when they reconnect, with no conflict resolution anywhere. A sequence number is unique only within a machine — anything keying on it keys on (machine, seq). Pull, never push.

A flat file is perfect to append to and useless to query, so there is an index — SQLite through node:sqlite with FTS5 — and it is derived: delete it and it rebuilds from the log, losing nothing. No migrations, no backup story beyond copying two files. Channels, boards and workflow runs are all folded out of the log the same way, so a server killed mid-run cannot leave a status file claiming “running”.

  • Setup — what to install where, and where the conversations live.
  • Differences from Erebros — what carried over, what folded, what stayed behind.