matrix-axon

Axon MVP — Product Requirements

Related docs: tech-spec.md, implementation.md.

Status: MVP has not shipped. This document freezes at MVP ship per implementation.md’s “Documentation for agentic contributors” convention; until then it’s still a living plan. See implementation.md’s status banner and milestone-resequencing table for what has actually landed and what’s still gating MVP (currently: deployment docs, docs/self-hosting.md).

Project

Axon is a self-hosted BFF (backend-for-frontend) for Matrix: a persistent state layer that sits between a user’s homeserver(s) and their clients, holding the persistent state, search index, and per-device coherence that Matrix clients otherwise reinvent themselves. Clients consume it through a documented, versioned HTTP + WebSocket API.

On “agent.” We sometimes call Axon a “personal agent,” but in the back-end-for-front-end / ZNC-bouncer sense — a passive proxy that runs on your behalf — not in the autonomous-AI-agent sense. There is no model or autonomy in the loop; Axon does only what its one human owner tells it. Where the AI connotation risks confusion, prefer “BFF,” “bouncer,” or “proxy.”

Naming convention:

axon is a working title. Naming feedback welcome on this PR.

One-line pitch

The personal agent layer Matrix is missing — what mail has had for decades — designed to be self-hosted and consumed by arbitrary clients through a stable API.

Problem & opportunity

Matrix’s client-server architecture pushes a lot of work onto clients: continuous sync, E2EE key management, local indexing, push handling, per-device state. This works for desktop clients with persistent connections and generous storage. On mobile and across devices it falls apart:

Existing tools cover parts of this but not cleanly:

The conceptual gap: Matrix has no analogue of an IMAP / SMTP server combined with a personal search index — a hosted persistent state layer that arbitrary clients can consume.

Target user for MVP

Riley is the persona we’re designing for. Riley is:

The MVP must let Riley self-host Axon, point it at their homeserver, and use axon-tui as their primary read / reply surface.

MVP product scope

Axon (the agent)

axon-tui (the alpha client)

A terminal client (Rust) that exercises the agent API end-to-end. It is the reference client for the MVP — the “alpha” tag describes its polish, not its long-term role — and it replaced the originally-planned axon-web (React) web app. The product is the agent and its API; axon-tui is the integration surface that proves the API is usable.

It does not need to be polished. It exists to validate the API surface and to give Riley a usable client on day one.

Sequencing update. The web client described here as “a credible later addition” was pulled forward and is now under active, parallel development (axon-web, ADR 0031/0046) rather than waiting for post-MVP. This does not change the MVP success criteria below, which remain gated on axon-tui — the web client is additional work happening alongside MVP completion, not a substitute for it. See docs/client-parity.md for how far each client actually is.

Out of scope for MVP

These are deliberately deferred. Many appear on the post-MVP roadmap.

Non-goals

These are not deferred — they are out of scope for the project as a whole, not just the MVP.

Success criteria

The MVP is done when:

  1. Initial sync. A Riley-shaped account completes initial sync against Synapse on a residential connection within ten minutes.
  2. Search latency. Full-history search returns relevant results in under 200ms p95, measured against the API directly and exercised through axon-tui’s search input.
  3. Reinstall. A client built against the API can be wiped and reach full functionality within seconds of re-authenticating; no local backfill required.
  4. API documentation quality. A developer who has not read the source can build a working client from the OpenAPI spec alone.
  5. Self-hosting. A competent Linux user deploys Axon on their own hardware in under an hour using the self-hosting guide.
  6. Daily-driver client. A Riley-shaped user reads and replies to their real Matrix rooms through axon-tui against a self-hosted Axon for a week without falling back to another client.

Open product questions

See tech-spec.md for implementation decisions that touch product behavior (auth, search analyzer, bridges, onboarding).