The learning layer for AI coding tools
The only tool that captures patterns from your AI sessions, evolves them over time, and syncs them to 16+ tools automatically. Not static rules. Not generic memory. A living system that gets smarter as you code.
brew tap mur-run/tap && brew install murAlso available via cargo install ยท macOS, Linux, Windows

The Problem MUR Solves
Without MUR
Day 1:
"Use Swift Testing instead of XCTest"
Day 3:
"Use Swift Testing instead of XCTest"
Day 7:
"Use Swift Testing instead of XCTest"
๐ Endless repetition. AI never learns.
With MUR
Day 1:
"Use Swift Testing instead of XCTest"
โ Pattern saved automatically
Day 3:
"Write tests for this function"
โ AI already uses Swift Testing
Day 7:
"Add more test coverage"
โ AI knows all your conventions
โจ Zero repetition. Continuous learning.
Works with 16+ AI tools
One pattern library, every AI assistant
How it works
Install & Setup
One command to install. mur init sets up your config. mur sync connects to your AI tools.
Use AI Normally
Work with Claude, Cursor, or any supported tool. MUR watches and learns in the background.
AI Gets Smarter
Patterns are automatically injected. Your AI remembers your preferences forever.
What makes MUR different
Rules sync tools write static config files. Memory frameworks store generic data. MUR is the only closed-loop system that learns, evolves, and syncs.
โธ๏ธ Approvals Wait For You
An unattended run that hits a step needing your say-so doesn't spend five minutes finding out you're asleep and then fail. The request parks, the step is blocked rather than broken, and everything that doesn't depend on it still finishes. Approve in the morning โ the next run continues from there, because approvals match the action's content hash, not a throwaway id. Change the action and the old approval stops covering it. Your explicit โnoโ outranks any standing policy, and every auto-approval is written to the signed channel.
๐ An Expired Token Doesn't End Your Session
OAuth tokens age out every few hours. Your turn used to die on a bare 401 that named neither the credential nor where it lived./loginfixes it in place, and stops at the cheapest step that works โ usually just asking the CLI that owns the credential to refresh it, with no browser and no interruption. MUR never holds your token: it reads the owner CLI's own status and the credential store's timestamp, never its contents.
๐ A Run Status That Can't Lie
Most tools answer โis it running?โ from whatever the run last wrote down โ so a crashed job reports healthy until a timeout expires. MUR asks both questions: what the run last recorded, and whether the process behind it is still there. A dead orchestrator says DEAD the moment you ask, a long run is never falsely failed, and a record rebuilt after a crash admits what it cannot know instead of printing a stale pid as fact.
๐๏ธ Your Agent Can Actually See
Point an agent at a screenshot, a photo, a rendered chart โ read_file returns it as real vision input, and MCP servers that return images reach the model the same way. Ask any other agent runtime to read a JPEG and it decodes the bytes as text; the model, unable to say it never saw a picture, describes one anyway.
โฐ An Agent Asks For Time, It Doesnโt Take It
An agent can want a schedule and cannot create one. It writes a proposal โ your words next to the cron, so you review the request rather than the expression โ and nothing fires until you grant it with mur agent schedule accept. One-off reminders stop when they are done: cron has no year field, so โtomorrow at 10โ would otherwise repeat every year forever.
๐ท๏ธ Provider Churn Is One Line
Anthropic, OpenAI and Google rename and retire model ids constantly. Your agents never name a model โ they name a registry key, so a rename is one edit and every agent pointing at that key follows. No per-agent migration.mur model doctoraudits it offline and reports what drifted โ and never rewrites an id for you, because which model you run is a cost decision, not a detail to silently upgrade.
๐ One Key, Many Models
mur model connect anthropictakes your API key once, puts it in the Keychain, and lists that provider's models for you to pick โ pricing and context windows filled in. Local runtimes (Ollama, MLX, LM Studio) are found by probing, no key at all. Setting up a second machine is copying one file and runningmur model import: it carries secret references, never keys, and tells you exactly which ones still need re-keying there.
๐ Agents That Remember & Say So
State a preference once โ the agent saves it, announces it in one line, and applies it next turn. Proven knowledge federates to the whole fleet over Ed25519-signed snapshots, gated on maturity. Undo is one/forget away.
๐ Loops That Know When To Stop
A squad you feed with jobs ends when the queue drains โ checked before any model call, so a scheduled fleet that wakes to nothing costs nothing. Every other loop setting is checked too: a calendar date is not a deadline, zero iterations is not zero, and a cron expression that can never fire is not a schedule. mur fleet set-loopโ and you watch every run live: a per-member rail plus milestone lines streamed from the fleet's signed channel, right in the chat TUI.
๐จ Agents That Can Check Their Own Work
An agent allowed to run cargo still couldn't compile: building means running binaries that don't exist yet, at paths no allowlist could name. Grant the build directory instead โmur agent perm allow-spawn-dir โ and it compiles, tests, and reports what actually passed. Narrow by construction: a home directory or a bare mount point is refused, and filesystem and network limits still bound whatever runs.
๐งญ Capability Routing
Your front-door agent holds no build keys โ and doesn't hand the job back to you. A sandbox-blocked command names the agents that can actually run it, ranked least-privileged first, derived from what the kernel enforces rather than a list anyone maintains. mur agent who
๐งพ Settlement
An agent that edits nine files and runs nothing will still tell you it's done. So the runtime closes each turn with its own accounting โ what was verified, what merely changed, what was blocked โ drawn from the tool record, not the model's summary. The verified row prints even when it's empty: nothing ran โ no evidence this works
๐ง Agent Memory
Agents remember your preferences mid-chat โ as local, decaying notes with /forget as the undo. Private per agent until you approve sharing; every proposal Ed25519-signed and verified.
๐ Closed-Loop Learning
Session recording โ pattern extraction โ injection โ feedback โ evolution. The full loop, automated.
๐งฌ Pattern Evolution Engine
Time decay, maturity lifecycle (DraftโCanonical), genetic evolution. Patterns that work get stronger. Stale ones fade. No competitor has this.
๐ Hybrid Semantic Search
Vector similarity (70%) + BM25 keywords (30%) + multi-factor scoring. More precise than pure vector search.
๐ YAML + Git Friendly
Human-readable patterns you can version control. No opaque database lock-in. Rebuild the index anytime with mur reindex.
๐ 100% Local First
All data stays on your machine. Zero telemetry. Injection scanning + content hashing for security. Cloud sync is optional.
โ๏ธ Workflow Engine
Multi-step workflows with variables and permissions โ extracted from sessions or defined manually.
๐ Emergence Detection
Cross-session behavior fingerprinting discovers recurring themes you didn't know existed.
๐ฅ Team & Community
Share patterns across your team or discover community-contributed patterns.
๐ Model Gateway
One local endpoint for Anthropic, OpenAI & Gemini โ agents reuse the subscriptions you already pay for, credentials stay in your OS keychain.
โก One Command Setup
mur init configures everything. Works invisibly in the background after that.
๐งฉ Model Library
Connect any provider โ cloud (Anthropic, OpenAI, OpenRouterโฆ) or local (Ollama, MLX, LM Studio). Models are auto-discovered, pricing auto-fills from models.dev, and keys stay in your Keychain.
๐๏ธ Per-Stage Model Routing
Pin any conversation stage to its own model โ a cheap one for extraction, a strong one for answers, a local runtime for anything that should never leave the machine. Unpinned stages follow your default. mur chat doctor shows the exact endpoint each stage will dial and probes it, so you can verify routing before any data exists.
๐งฐ Agents & Capabilities
Real local agent processes โ and mur capability install wires a whole bundle (MCP server + skills + program requirements) onto one in a single command. The media capability adds VLC control and local-model video analysis.
๐ Governed & Never-Shadow
Capabilities and imported plugins install with pinned provenance โ an add-on skill can never silently override a built-in. mur skill doctor flags drift and de-pins stale copies; a per-OS kernel sandbox and a protected launch chain โ the runtime binary, other agents' directories, the autostart entries โ keep every action governed, with an append-only audit ledger and mur agent runtime-doctor reporting what the chain blocks.
๐ Dev-Discipline Skills
Seventeen built-in engineering-discipline skills โ design-before-code, test-first, root-cause debugging, evidence-before-done โ internalized from superpowers & mattpocock. One hub routes; sixteen leaves load on demand via mur skill show, so they cost nothing until used and never shadow a skill you wrote.
Simple Pricing
Free forever for individuals. Paid plans for teams.
Free
๐ Includes 90-day Pro trial
Full Pro features free for 90 days
- โ Unlimited patterns
- โ All 10+ tool integrations
- โ LLM-powered extraction
- โ Semantic search
- โ Local dashboard
- โ Community patterns
Invite friends, get rewarded
Share your referral link and both of you benefit.
Get your referral link via mur referral or app.mur.run
Share the link with a friend
Friend signs up via GitHub, GitLab, Bitbucket, or Gitee
After 7+ days active, both of you get rewarded
Free & Trial users
Get +30 days of Pro trial per qualified referral. Up to 3 referrals (= +90 days).
Pro & Team users
Get +1 device slot per qualified referral. Up to 3 bonus slots.
โ ๏ธ A referral is "qualified" when your friend has been active for 7+ days.