Structural intent coordination for agent fleets.
Typed intent, precomputed blast radius, O(1) coordination reads — no prose, no timing windows.
Early Access — Phase 1 (intent registry, episode store, NodeState rollup, Class A/B/C, Y-doc, stdio MCP) is stable. Phase 2 (leases, shadow overlays, intent-aware auto-merge) and Phase 3 (in-process Memtrace, Ed25519 signing, CEL policy) are in flight. Report issues here.
Ten coding agents editing the same repo. The naive options:
- Prose rationale — each agent writes a paragraph. Others read it. 200+ tokens per edit, does not scale, vendor-specific, resists structural querying.
- Timing-based notification — broadcast in a 500 ms window, others subscribe. Works for two agents, floods at ten, breaks on network jitter.
Both produce the same outcome: silent collisions, overwrites, wasted tokens re-reading work that could have been predicted.
MemFleet treats intent as a structural type, not a paragraph. Every edit emits a typed IntentKind enum with a precomputed impact set, attached to the graph nodes it touches. Any agent reading those nodes receives the coordination picture — O(1), no prose, no timing window.
npm install -g memfleet # binary + 10 skills + MCP server — one command
memfleet # MCP server auto-launched by Claude / Cursor on connectClaude Code, Claude Desktop, and Cursor (v2.4+) pick up the skills and MCP tools automatically.
9 variants, 41 leaf values:
pub enum IntentKind {
Refactor { pattern: RefactorPattern },
FeatureAdd { surface: FeatureSurface },
BugFix { defect: DefectClass },
Cleanup { kind: CleanupKind },
Performance { axis: PerfAxis },
SecurityFix { severity: Severity, cve: Option<String> },
TestAdd { covers: Vec<NodeIdentity> },
DocsOnly,
Exploratory,
}One intent ≈ 20 tokens. One prose rationale ≈ 200+. Across a 10-agent fleet running 100 edits — ~90,000 tokens saved per fleet-turn.
| Class | Meaning | Broker action |
|---|---|---|
| A | Additive only — new symbols, no removals | Auto-accepted. Zero coordination cost. |
| B | Modification to an existing symbol — body / type / rename | LWW by reference_time. Loser receives a typed ReplanHint. |
| C | Removes a live symbol or changes a signature with active callers | Blocked at intent time. Structured conflict report. |
Refactor(RenameSymbol) + BugFix(NullHandling) on the same symbol are orthogonal — the broker auto-merges (Phase 2).
| Tool | Purpose |
|---|---|
publish_intent |
Register structural intent before an edit; returns blast radius and active conflicts |
record_episode |
Record a structural episode after an edit; classifies A/B/C, precomputes impact, updates rollups |
get_node_state |
O(1) read of recent episodes, active intents, dominant intent, conflict density for a symbol |
get_episode |
Fetch a single episode by id |
query_episodes |
Filtered episode search by node / intent / time range |
ydoc_read |
Read the Y-doc thread + NodeState blob for a symbol |
subscribe |
Register a streaming subscription with filters and budget |
fleet_status |
Active intents, open subscriptions, episode count, conflict counts by class |
| Skill | You say... | |
|---|---|---|
| Intent | memfleet-publish-intent |
"I'm about to refactor X" |
| Episode | memfleet-record-episode |
"I just edited X" |
| Node state | memfleet-node-state |
"is anyone working on X" |
| Query | memfleet-query-episodes |
"what changed today" |
| Subscribe | memfleet-subscribe |
"watch the auth module" |
| Status | memfleet-fleet-status |
"how busy is the fleet" |
Plus 4 workflow skills that chain multiple tools:
| Skill | You say... |
|---|---|
memfleet-first |
Meta-router — the first skill to reach for in any multi-agent edit |
memfleet-safe-edit |
"implement/rename/modify X safely" — full publish → edit → record loop |
memfleet-conflict-resolution |
"I hit a B/C conflict — what now" |
memfleet-fleet-coordination |
"coordinate agents on this multi-symbol refactor" |
Agent (Claude Code / Cursor / CI bot)
│ MCP (stdio or SSE)
▼
memfleet-mcp ← single MCP endpoint agents see
│
▼
broker crate ← intent registry, episode store, CRDT classifier,
│ rollup cache, subscription router, Y-doc, provenance log
▼
MemtraceBackend trait ← Phase 1: over-MCP client to a running memtrace-mcp
Phase 3: in-process trait swap, zero other code changes
MemFleet is composition, not replacement: it uses Memtrace for structural blast radius today and will embed it in-process in Phase 3.
| Editor / Agent | MCP Tools | Skills | Install |
|---|---|---|---|
| Claude Code | ✅ | ✅ | npm install -g memfleet — fully automatic |
| Claude Desktop | ✅ | ✅ | Automatic — shared with Claude Code |
| Cursor (v2.4+) | ✅ | ✅ | npm install -g memfleet — fully automatic |
| Windsurf | ✅ | Coming soon | Add MCP server manually |
| VS Code (Copilot) | ✅ | — | Add MCP server manually |
| Any MCP client | ✅ | — | Add MCP server manually |
npm install -g memfleet handles everything automatically — binary, 10 skills, MCP server, plugin, and marketplace all register in one command.
For manual setup:
claude plugin marketplace add syncable-dev/memfleet-public
claude plugin install memfleet-skills@memfleet --scope user
claude mcp add memfleet -- memfleet mcpCursor v2.4+ supports Agent Skills natively. npm install -g memfleet writes:
- MCP server →
~/.cursor/mcp.json - 10 skills →
~/.cursor/skills/memfleet-*/SKILL.md
Project-local install (skills travel with the repo):
memfleet install --only cursor --localAfter npm install -g memfleet, add the MCP server to your editor config:
{
"mcpServers": {
"memfleet": {
"command": "memfleet",
"args": ["mcp"],
"env": { "RUST_LOG": "info" }
}
}
}memfleet uninstall
npm uninstall -g memfleet| Dependency | Purpose |
|---|---|
| Node.js ≥ 18 | npm installation |
| Rust (toolchain) | Only if building from source — binaries are prebuilt |
| Memtrace (optional) | Full structural impact — Phase-1 broker runs without it via stub |
Documentation · npm · Issues
Built by Syncable · Proprietary EULA · Free to use