What is M.A.V.E.N Teams
M.A.V.E.N Teams is what M.A.V.E.N becomes when more than one person uses it. The M.A.V.E.N 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.
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 - ~/maven-teams, http://localhost:3400,
state in ~/.maven-teams - and runs on Next.js 16, React 19 and Node 22.
What is in it
Section titled “What is in it”| Chat | One chat for every engine - the same merge M.A.V.E.N 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”1. The log is the truth, and it is a file
Section titled “1. The log is the truth, and it is a file”$MAVEN_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 kind - 1001 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 them2000-2999 work - patches, runs, approvals, decisions3000-3999 the workspace - channels, membership, agents4000-4999 the machine - alerts, health, updates9000-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.
4. The index is derived, and disposable
Section titled “4. The index is derived, and disposable”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 M.A.V.E.N - what carried over, what folded, what stayed behind.