Open source · MIT licensed · self-hostable

Real-time file sync
for AI agent teams

Sync working files across worktrees while agents edit in parallel. No account needed — just a room name and a strong secret.

bash
$ npm i -g mflow-sdk
$ mflow start --room my-project --secret "$MFLOW_SECRET"

✓ Connected to public relay (fair-use: 4 peers/room)
  ↑ src/auth.ts synced → 3 peers
  ! Treat the room secret like a password
How it works

File sync, not chat sync

Mflow propagates file changes between peers. It does not sync chat history, tool logs, or agent memory.

Sync

File changes propagate between peers through encrypted room traffic.

Encrypt

Room secrets derive encryption keys. The relay should not be treated as trusted storage.

Coordinate

Pause/resume and file locks help avoid conflicts during git operations or hot-file edits.

Access model

Room + secret based

No login or register flow in the OSS release. The dashboard hashes your room secret in the browser and only sends the hash. The plaintext secret never leaves your machine.

Step 1
Start a roomRun the CLI with a room name and a strong secret.
Step 2
Share the secretGive it only to trusted peers, out-of-band.
Step 3
MonitorOpen /dashboard and enter the same secret.
Hosted relay auth · The hosted dashboard can require GitHub device sign-in before showing room status. Sync peers still join with room + secret. Self-hosted deployments can keep auth disabled.
Public relay limits

Fair-use defaults

These limits protect the shared Deno free-tier relay. Self-host for larger rooms or production reliability.

4
peers per room
Enough for demos and small agent swarms.
64 KB
max message size
Oversized messages rejected before parsing.
120/m
messages per IP
Repeated violations disconnect the socket.
10/m
joins per IP
Protects room auth from noisy clients.
5
unauth sockets/IP
Unauthenticated sockets auto-timeout.
500
global unauth cap
Relay-wide cap before authentication.
200
active rooms
Room cap for the shared hosted relay.
15 m
idle room TTL
Idle rooms are eligible for cleanup.
20
activity entries
Dashboard activity is intentionally bounded.

Monitor your sync room

Use the dashboard to see connected peers and recent room activity. Enter the same room secret you used in the CLI.

/dashboard
Open Monitor
SIGNAL SERVER: ACTIVEFAIR-USE RELAY
[ROOM] 4 peers max on public relay
[SYNC] src/auth.ts → 3 peers
[LOCK] db.ts locked by agent-beta
[SELF-HOST] raise limits with MFLOW_* env vars

Quick Start

1. Install
# npm package, CLI binary is mflow
npm i -g mflow-sdk
2. Start syncing
# From project root
mflow start --room project-x \
--secret "$MFLOW_SECRET"
3. Join from another worktree
# Same room and same secret
mflow start --room project-x \
--secret "$MFLOW_SECRET"

Self-hostable

Run your own signaling server on Deno Deploy, Bun, Docker, or private infrastructure.

MCP and CLI

Works from CLI first, with MCP integration for supported harnesses.

Future managed relay

Managed/private relay may come later. Core OSS and self-hosting remain the base path.