Local-first, open-source agent harness: chat with one lead that answers, codes, browses, or spins up a crew of AI agents. Every step logged, sandboxed, and reviewable.
TypeScript
2
1,019 commits
updated Oct 12, 2026
Myrmidon is a free, open-source AI agent platform for your Mac. Text it from your phone, talk to it, or type in the app: it answers, writes code, drives a browser, uses your apps, and brings in a crew of specialists that plan, build and check each other's work.
A coding agent. A browser bot. A chatbot that forgets everything. A voice app, a scheduler, a model router, a bot in every chat app. Each with its own login, its own memory and its own bill.
Myrmidon is one chat that does all of it, with one memory, one set of permissions and one record of everything it did.
| Myrmidon does | The tools it can stand in for |
|---|---|
| Coding agent with checkpoints, a git worktree per worker, LSP, AST search and rewrite, a debugger and code cells | Claude Code, Codex CLI, Cline, Aider |
| Parallel agents on one repo, diffs per round, run comparison | Conductor, Codex app |
| Browser agent in a real Chrome, with login handoff and saved flows | Manus, Operator, Browser Use |
| Computer use on your Mac, with a glow and agent cursors while it works | Claude computer use, OpenAI CUA |
| Crews: lead and workers, or a leaderless swarm, with a reviewer and an advisor | CrewAI, AutoGen, LangGraph, Devin |
| 30 messaging channels: Telegram, WhatsApp, Signal, iMessage, Slack, Discord, Teams… | OpenClaw, Hermes Agent |
| Voice and phone calls that hand real work to the crew | ChatGPT Voice, Vapi |
| Every major model, by API key or by signing in with your subscription | OpenRouter, LiteLLM |
| Memory you approve, skills it learns, plugins in Claude Code's format | ChatGPT Memory, Claude Code plugins |
It is a harness, not a wrapper: Myrmidon runs its own agent loop, tools, sandbox and model calls. No other CLI has to be installed or signed in.
Checkout conversion just fell 18%. From Telegram, WhatsApp, iMessage or any of 30 apps, from the desktop app, or out loud: "Checkout conversions dropped 18% overnight. Find out why, fix it, and call me."
The lead splits the job and brings in specialists, each on the model it is best at. nova queries the analytics in a notebook and finds the break: mobile, euros, since the 21:40 deploy. iris reproduces the failed payment on your Mac itself, with an amber glow round the screen so you always know. quill stops on a breakpoint in its own git worktree, finds a rounding bug, fixes it and writes the test that proves it.
Crewmates message each other, hand work over and reject what isn't right. Nothing is done until an independent reviewer runs the tests and confirms the root cause. Agents can't mark their own work as verified.
Everything runs in macOS's sandbox. Anything that matters waits for your yes, and every step is written to a log that can't be edited or deleted. Rewind any change to your project.
"Found it: a rounding bug in euro checkout. Fixed, tested and deployed. Conversions are back."
![]() | ![]() |
| Skills from anywhere, scanned first. Browse OpenAI's and Anthropic's catalogs and skills.sh, bring over your Claude Code and Codex skills, and let the scanner hold anything dangerous. | Talk to it from 30 apps. Telegram, WhatsApp, Signal, iMessage, Slack, Discord, Teams, email, SMS and more continue the same chats. Only people you approve get in. |
![]() | ![]() |
| It can use your Mac. You stay in charge. One approved app at a time, consequential steps asked first, and Esc stops it. | Use the AI you already pay for. Sign in with Claude, ChatGPT, Gemini or Copilot, add any API key or a local model, and give each agent its own. |
![]() | ![]() |
| Memory you approve. It suggests what to remember and learns skills from finished work; you decide what is kept. | Sandboxed by default. Presets from Ask to Full access, a switch per tool, secrets that never reach a model, and every step on the record. |
Call your crew. Press Call in the app or ring your own number from any phone. It talks while the crew works, with speech on your Mac or from any of 12 cloud speech services.
Download the app: the latest beta has a macOS (Apple silicon) disk image. It is signed but not yet notarized, so the first time macOS asks you to confirm: open it once, then choose Open Anyway in System Settings → Privacy & Security.
Or run it from source. You need macOS, Bun 1.3.14 or newer, and one way to reach a model: sign in with Claude, ChatGPT,
Gemini or GitHub Copilot, or use an API key (ANTHROPIC_API_KEY, OPENAI_API_KEY, …).
git clone https://github.com/Robinbinu/myrmidon.git
cd myrmidon && bun install
bun run desktop
The desktop app starts its own server and opens a setup assistant: models, crew, a first project, voice, messaging apps and alerts, every step skippable. It finds the providers you already have. Then type what you want done.
Prefer a browser tab? bun run myr serve prints a http://127.0.0.1:…/#token=… link. Prefer the terminal?
bun run myr setup signs you in and picks a model, and bun run myr doctor checks everything.
Coming from another tool? Bring your history and setup along:
bun run myr import-session # Claude Code and Codex chats
bun run myr import-omp # oh-my-pi keys, sign-ins and models.yml
flowchart LR
You([You]) -->|app · channel · call| Lead
Lead -->|quick answer| Reply([Reply])
Lead -->|does the work| Tools
Lead -->|"escalate(to: team)"| Crew
subgraph Crew [Crew round]
direction TB
Orchestrated["Orchestrated<br/>lead plans · specialists build"]
Swarm["Swarm<br/>peers huddle · claim tasks"]
end
Crew --> Tools
Tools["code · shell · browser · computer<br/>web · MCP · skills · plugins"] --> Log[(Append-only<br/>event log)]
Crew --> Reviewer{Reviewer}
Lead --> Reviewer
Reviewer -->|findings| Crew
Reviewer -->|passes| Reply
Log --> UI[Live UI · replay · audit]
@mentions, direct messages, append-only notes, a task
graph and versioned artifacts. Nothing is edited in place.UPDATE and DELETE. The UI, replay, audit view and exports all read it.AGENTS.md, CLAUDE.md and .myrmidon.md at kickoff.grep, glob and find tools; ast_grep and ast_edit for structural search and rewrite; lsp for
definitions, references and diagnostics; debug with any DAP adapter (debugpy, js-debug, lldb, gdb); eval code
cells in JavaScript and Python whose state lasts the round.github tool for issues, pull requests, diffs, checks and Actions runs; writes always ask you first.security_scan for leaked secrets and vulnerable dependencies; autoresearch keeps a change only if a measured
metric improves./goal keeps going until a command, the checks or a judge says the goal holds.browser_extract(schema) to turn a page into JSON.ask_user pauses.generate_image and tts for pictures and speech as chat artifacts.~/.claude/skills, projects or a registry. Myrmidon
learns new skills from finished rounds and retires the ones nobody uses.myr ask --wait) and OpenTelemetry export.Describe a crew in YAML and run it headless or with the UI:
name: Calculator
mission: ./task.md # inline text or a .md file
pattern: lead-workers # or blackboard (swarm)
agents:
- { name: lead, role: lead, model: anthropic/claude-sonnet-4-5 }
- { name: coder, role: worker, model: openai/gpt-5, count: 2 }
acceptance:
- { verifier: checks, rules: [{ artifact: index.html, contains: "<html" }] }
- { verifier: command, run: "bun test", against: [src/, tests/] }
- { verifier: llm-judge, model: openai/gpt-5, rubric: ./rubric.md, threshold: 0.8 }
budget: { wall: 15m, costUsd: 5, maxTurns: 40 }
observer: { interval: 30s }
bun run myr run examples/calculator/colony.yaml --ui
| Command | What it does |
|---|---|
myr serve [--port N] [--host ADDR] [--public-url URL] | Start the server and web UI; a host or public URL makes it a remote gateway |
myr setup · myr doctor | Set up in the terminal; check models, sandbox, browser, devices and channels |
myr login [ID] · myr key [PROVIDER] · myr model [REF] | Sign in with a subscription, add an API key, or set the default model |
myr ask "<request>" [--wait] | Send a request to a running server |
myr run <spec.yaml> [--ui] | Run a scripted crew |
myr plugins … · myr skills … | Search, add, update, remove and scan plugins and skills |
myr channels … · myr pair | Set up messaging channels and pair devices |
myr import-session · myr import-omp | Bring in Claude Code and Codex chats, or an oh-my-pi setup |
myr ls · myr events <id> · myr export <id> | List crews and read or export their event logs |
Run them with bun run myr …. Data lives in ~/.myrmidon; override with --home DIR or MYRMIDON_HOME.
A Bun + TypeScript monorepo. The HTTP/WebSocket API and the event protocol are the contract, so new clients can follow the app without the runtime changing.
| Package | Role |
|---|---|
packages/protocol | Event and payload types, crew state projection |
packages/core | Append-only event log, SQLite store, validation, redaction, guards, blobs |
packages/runtime | Agents, tools, crews, reviewer, sandbox, browser, computer use, MCP, skills, plugins, channels, voice |
apps/web | API server (local or remote gateway) and the React UI |
apps/desktop | The desktop app (Electrobun), running the server as a sidecar |
apps/cli | The myr command |
apps/eval | Eval harness with coding, browsing, research and crew cases |
Myrmidon is in beta and built for macOS first. It works end to end and is used every day, but APIs, the event schema and storage formats will still change. Linux and Windows are next: the code is portable, and what is left is tracked in #27 (Linux) and #28 (Windows). See the roadmap.
Myrmidon is big, and there is room for you in it:
linux and
windows.apps/eval, and the agent docs in packages/runtime/docs.Before a pull request, read CONTRIBUTING.md and run bun run check (types, lint and the full
suite); keep changes focused and match the surrounding style. bun run dev serves the app with hot reload. Found a bug?
Report it.
If Myrmidon is useful to you, star it. It's the simplest way to help more people find it.
Their license texts are in THIRD_PARTY_NOTICES.md.
Myrmidon is created and maintained by @Robinbinu. Building something with it, want to collaborate, or hiring for agent work? Say hello on LinkedIn.
Apache License 2.0. See NOTICE for attribution.
Local-first, open-source agent harness: chat with one lead that answers, codes, browses, or spins up a crew of AI agents. Every step logged, sandboxed, and reviewable.
TypeScript
2
1,019 commits
updated Oct 12, 2026
Myrmidon is a free, open-source AI agent platform for your Mac. Text it from your phone, talk to it, or type in the app: it answers, writes code, drives a browser, uses your apps, and brings in a crew of specialists that plan, build and check each other's work.
A coding agent. A browser bot. A chatbot that forgets everything. A voice app, a scheduler, a model router, a bot in every chat app. Each with its own login, its own memory and its own bill.
Myrmidon is one chat that does all of it, with one memory, one set of permissions and one record of everything it did.
| Myrmidon does | The tools it can stand in for |
|---|---|
| Coding agent with checkpoints, a git worktree per worker, LSP, AST search and rewrite, a debugger and code cells | Claude Code, Codex CLI, Cline, Aider |
| Parallel agents on one repo, diffs per round, run comparison | Conductor, Codex app |
| Browser agent in a real Chrome, with login handoff and saved flows | Manus, Operator, Browser Use |
| Computer use on your Mac, with a glow and agent cursors while it works | Claude computer use, OpenAI CUA |
| Crews: lead and workers, or a leaderless swarm, with a reviewer and an advisor | CrewAI, AutoGen, LangGraph, Devin |
| 30 messaging channels: Telegram, WhatsApp, Signal, iMessage, Slack, Discord, Teams… | OpenClaw, Hermes Agent |
| Voice and phone calls that hand real work to the crew | ChatGPT Voice, Vapi |
| Every major model, by API key or by signing in with your subscription | OpenRouter, LiteLLM |
| Memory you approve, skills it learns, plugins in Claude Code's format | ChatGPT Memory, Claude Code plugins |
It is a harness, not a wrapper: Myrmidon runs its own agent loop, tools, sandbox and model calls. No other CLI has to be installed or signed in.
Checkout conversion just fell 18%. From Telegram, WhatsApp, iMessage or any of 30 apps, from the desktop app, or out loud: "Checkout conversions dropped 18% overnight. Find out why, fix it, and call me."
The lead splits the job and brings in specialists, each on the model it is best at. nova queries the analytics in a notebook and finds the break: mobile, euros, since the 21:40 deploy. iris reproduces the failed payment on your Mac itself, with an amber glow round the screen so you always know. quill stops on a breakpoint in its own git worktree, finds a rounding bug, fixes it and writes the test that proves it.
Crewmates message each other, hand work over and reject what isn't right. Nothing is done until an independent reviewer runs the tests and confirms the root cause. Agents can't mark their own work as verified.
Everything runs in macOS's sandbox. Anything that matters waits for your yes, and every step is written to a log that can't be edited or deleted. Rewind any change to your project.
"Found it: a rounding bug in euro checkout. Fixed, tested and deployed. Conversions are back."
![]() | ![]() |
| Skills from anywhere, scanned first. Browse OpenAI's and Anthropic's catalogs and skills.sh, bring over your Claude Code and Codex skills, and let the scanner hold anything dangerous. | Talk to it from 30 apps. Telegram, WhatsApp, Signal, iMessage, Slack, Discord, Teams, email, SMS and more continue the same chats. Only people you approve get in. |
![]() | ![]() |
| It can use your Mac. You stay in charge. One approved app at a time, consequential steps asked first, and Esc stops it. | Use the AI you already pay for. Sign in with Claude, ChatGPT, Gemini or Copilot, add any API key or a local model, and give each agent its own. |
![]() | ![]() |
| Memory you approve. It suggests what to remember and learns skills from finished work; you decide what is kept. | Sandboxed by default. Presets from Ask to Full access, a switch per tool, secrets that never reach a model, and every step on the record. |
Call your crew. Press Call in the app or ring your own number from any phone. It talks while the crew works, with speech on your Mac or from any of 12 cloud speech services.
Download the app: the latest beta has a macOS (Apple silicon) disk image. It is signed but not yet notarized, so the first time macOS asks you to confirm: open it once, then choose Open Anyway in System Settings → Privacy & Security.
Or run it from source. You need macOS, Bun 1.3.14 or newer, and one way to reach a model: sign in with Claude, ChatGPT,
Gemini or GitHub Copilot, or use an API key (ANTHROPIC_API_KEY, OPENAI_API_KEY, …).
git clone https://github.com/Robinbinu/myrmidon.git
cd myrmidon && bun install
bun run desktop
The desktop app starts its own server and opens a setup assistant: models, crew, a first project, voice, messaging apps and alerts, every step skippable. It finds the providers you already have. Then type what you want done.
Prefer a browser tab? bun run myr serve prints a http://127.0.0.1:…/#token=… link. Prefer the terminal?
bun run myr setup signs you in and picks a model, and bun run myr doctor checks everything.
Coming from another tool? Bring your history and setup along:
bun run myr import-session # Claude Code and Codex chats
bun run myr import-omp # oh-my-pi keys, sign-ins and models.yml
flowchart LR
You([You]) -->|app · channel · call| Lead
Lead -->|quick answer| Reply([Reply])
Lead -->|does the work| Tools
Lead -->|"escalate(to: team)"| Crew
subgraph Crew [Crew round]
direction TB
Orchestrated["Orchestrated<br/>lead plans · specialists build"]
Swarm["Swarm<br/>peers huddle · claim tasks"]
end
Crew --> Tools
Tools["code · shell · browser · computer<br/>web · MCP · skills · plugins"] --> Log[(Append-only<br/>event log)]
Crew --> Reviewer{Reviewer}
Lead --> Reviewer
Reviewer -->|findings| Crew
Reviewer -->|passes| Reply
Log --> UI[Live UI · replay · audit]
@mentions, direct messages, append-only notes, a task
graph and versioned artifacts. Nothing is edited in place.UPDATE and DELETE. The UI, replay, audit view and exports all read it.AGENTS.md, CLAUDE.md and .myrmidon.md at kickoff.grep, glob and find tools; ast_grep and ast_edit for structural search and rewrite; lsp for
definitions, references and diagnostics; debug with any DAP adapter (debugpy, js-debug, lldb, gdb); eval code
cells in JavaScript and Python whose state lasts the round.github tool for issues, pull requests, diffs, checks and Actions runs; writes always ask you first.security_scan for leaked secrets and vulnerable dependencies; autoresearch keeps a change only if a measured
metric improves./goal keeps going until a command, the checks or a judge says the goal holds.browser_extract(schema) to turn a page into JSON.ask_user pauses.generate_image and tts for pictures and speech as chat artifacts.~/.claude/skills, projects or a registry. Myrmidon
learns new skills from finished rounds and retires the ones nobody uses.myr ask --wait) and OpenTelemetry export.Describe a crew in YAML and run it headless or with the UI:
name: Calculator
mission: ./task.md # inline text or a .md file
pattern: lead-workers # or blackboard (swarm)
agents:
- { name: lead, role: lead, model: anthropic/claude-sonnet-4-5 }
- { name: coder, role: worker, model: openai/gpt-5, count: 2 }
acceptance:
- { verifier: checks, rules: [{ artifact: index.html, contains: "<html" }] }
- { verifier: command, run: "bun test", against: [src/, tests/] }
- { verifier: llm-judge, model: openai/gpt-5, rubric: ./rubric.md, threshold: 0.8 }
budget: { wall: 15m, costUsd: 5, maxTurns: 40 }
observer: { interval: 30s }
bun run myr run examples/calculator/colony.yaml --ui
| Command | What it does |
|---|---|
myr serve [--port N] [--host ADDR] [--public-url URL] | Start the server and web UI; a host or public URL makes it a remote gateway |
myr setup · myr doctor | Set up in the terminal; check models, sandbox, browser, devices and channels |
myr login [ID] · myr key [PROVIDER] · myr model [REF] | Sign in with a subscription, add an API key, or set the default model |
myr ask "<request>" [--wait] | Send a request to a running server |
myr run <spec.yaml> [--ui] | Run a scripted crew |
myr plugins … · myr skills … | Search, add, update, remove and scan plugins and skills |
myr channels … · myr pair | Set up messaging channels and pair devices |
myr import-session · myr import-omp | Bring in Claude Code and Codex chats, or an oh-my-pi setup |
myr ls · myr events <id> · myr export <id> | List crews and read or export their event logs |
Run them with bun run myr …. Data lives in ~/.myrmidon; override with --home DIR or MYRMIDON_HOME.
A Bun + TypeScript monorepo. The HTTP/WebSocket API and the event protocol are the contract, so new clients can follow the app without the runtime changing.
| Package | Role |
|---|---|
packages/protocol | Event and payload types, crew state projection |
packages/core | Append-only event log, SQLite store, validation, redaction, guards, blobs |
packages/runtime | Agents, tools, crews, reviewer, sandbox, browser, computer use, MCP, skills, plugins, channels, voice |
apps/web | API server (local or remote gateway) and the React UI |
apps/desktop | The desktop app (Electrobun), running the server as a sidecar |
apps/cli | The myr command |
apps/eval | Eval harness with coding, browsing, research and crew cases |
Myrmidon is in beta and built for macOS first. It works end to end and is used every day, but APIs, the event schema and storage formats will still change. Linux and Windows are next: the code is portable, and what is left is tracked in #27 (Linux) and #28 (Windows). See the roadmap.
Myrmidon is big, and there is room for you in it:
linux and
windows.apps/eval, and the agent docs in packages/runtime/docs.Before a pull request, read CONTRIBUTING.md and run bun run check (types, lint and the full
suite); keep changes focused and match the surrounding style. bun run dev serves the app with hot reload. Found a bug?
Report it.
If Myrmidon is useful to you, star it. It's the simplest way to help more people find it.
Their license texts are in THIRD_PARTY_NOTICES.md.
Myrmidon is created and maintained by @Robinbinu. Building something with it, want to collaborate, or hiring for agent work? Say hello on LinkedIn.
Apache License 2.0. See NOTICE for attribution.