MUR
A local-first fleet of specialized AI agents, in native Rust.
Every AI tool you use today is stateless and cloud-tethered: each session starts from zero, and the agent lives in someone else's datacenter. MUR inverts both. Agents run as long-lived local processes — each with its own model binding, system prompt, MCP servers, skills, schedule and permissions — supervised by one small Rust runtime, and what they learn is captured, scored, stored as plain YAML, and injected into the next session.
Why MUR?
You're using Claude Code, Gemini CLI, maybe Cursor or Windsurf. But:
- Each session starts from scratch — the AI forgets your preferences
- What you work out stays in your head, or gets lost
- Every AI tool is an isolated island with no shared memory
- Static rules files don't evolve — they rot
- The agent itself lives somewhere you don't control, and stops when someone else's service does
Key Features
- 🤖 Agents as local processes — Each with its own model, prompt, MCP servers, skills, schedule and least-privilege permissions, supervised by a Rust runtime speaking A2A v0.3
- 🧠 Memory with a lifecycle — Skills mature Draft → Emerging → Stable → Canonical, and decay when they stop being useful, so nothing accumulates unread
- 🔄 Universal Sync — Your knowledge reaches 16+ AI tools: Claude Code, Gemini CLI, Cursor, Copilot, Auggie, Codex, Aider, Windsurf and more
- 🔍 Hybrid Semantic Search — Vector similarity + BM25 keywords + multi-factor scoring
- 👁️ Work that outlives the turn — Durable monitors keep checking a CI run, a fleet run or a subprocess across daemon restarts, and can act on what they find within a risk gate
- ⚙️ Fleets and workflows — Squads of agents on one goal, bounded by a deadline or a cost cap, with a kill-switch
- 📁 YAML + Git Friendly — Human-readable skills you can version control, no opaque database lock-in
- 🔒 100% Local First — All data on your machine. Zero telemetry. Cloud sync optional.
Quick Example
# Install
brew tap mur-run/tap && brew install mur
# Initialize
mur init
# Create an agent (no API key — defaults to Ollama)
mur agent create coach --model llama3.2:3b
# Chat with it
murmur coach
# Sync your knowledge to all your AI tools
mur sync
# See what is running
mur agent list
Supported Tools (16+)
🪝 Native Hooks (mur init --hooks)
| Tool | Hook Events | Config Path |
|---|---|---|
| Claude Code | UserPromptSubmit, PostToolUse, Stop | ~/.claude/settings.json |
| Auggie (Augment Code) | PreToolUse, PostToolUse, Stop | ~/.augment/settings.json |
| Gemini CLI / Antigravity | BeforeAgent, AfterTool, SessionEnd | ~/.gemini/settings.json |
| Copilot CLI (GitHub) | sessionStart, userPromptSubmitted, postToolUse, sessionEnd | ~/.github/hooks.json |
| OpenClaw | session.start, session.end | ~/.openclaw/config.json |
| Cursor | beforeSubmitPrompt, beforeShellExecution, stop | ~/.cursor/hooks.json |
| OpenCode | session.created, tool.execute.after, session.updated | ~/.config/opencode/plugins/mur-plugin.ts |
| Amp (Sourcegraph) | PreToolUse, PostToolUse, Stop | ~/.amp/hooks.json |
⚙️ Config-based (auto-configured)
| Tool | Integration | Config Path |
|---|---|---|
| Codex CLI (OpenAI) | developer_instructions | ~/.codex/config.toml |
| Aider | read directive loads context.md | ~/.aider.conf.yml |
📝 File-based Rules (prints setup hints)
| Tool | Rules File |
|---|---|
| Zed | .rules > .cursorrules > AGENTS.md |
| Junie (JetBrains) | .junie/guidelines.md |
| Trae (ByteDance) | .trae/rules/ |
| Cline / Roo | .clinerules / .roomodes |
| Windsurf | .windsurfrules |
| Amazon Q | .amazonq/rules/ |