The desktop cockpit for local AI agents. A double-click app that runs a team of AI agents on your machine, with a real UI to watch every step. Persistent memory, 15 providers, your keys. Open source.
Features · Issues / roadmap · Documentation · Migration
| Home | Coding workspace |
|---|---|
![]() |
![]() |
| Agents settings | Sandbox settings |
|---|---|
![]() |
![]() |
| Voice input | Telemetry dashboard |
|---|---|
![]() |
![]() |
A short list of the most important shipped capabilities. The canonical, version-cited catalogue is documents/docs/features.md; other feature requests and future work live in GitHub issues.
A cockpit, not a chat box. Command palette (Ctrl+P), slash commands (/init, /continue, /compact, /undo, /redo), opencode-style shell sends (!git status), drag-and-drop files, full-screen image viewer, and an inspector that shows every tool call and what came back, including inline Git-like diffs for file edits.
Run a team, not just one agent. A lead agent spawns specialist instances on demand (executor#1, executor#2, ...), coordinates through an async mailbox, and can grant/revoke member tools, skills, or MCP servers at runtime. Watch live agents in the default split view, resume interrupted work with /continue, or switch to a single unified view.
Use it as a coding cockpit. Coding mode ships with a workspace-aware team (coding/openagentd, coding/coder, coding/explorer) that can inspect a local codebase, make changes, run checks, and keep files/diffs visible while it works. Create git worktrees from the repository tree to start isolated coding sessions, then remove OpenAgentd-managed worktrees from the UI when they are no longer needed. Type ! in the composer to switch into shell-command mode and run commands directly without asking the model first.
Persistent memory you can edit. Karpathy-style wiki: USER.md is injected into every prompt, session notes feed the dream agent, and durable knowledge is organized into sources, topics, entities, and comparisons. Browse and edit it from the Wiki panel.
Pick your model, no lock-in. 15 providers — Anthropic, Gemini, OpenAI, OpenRouter, Bedrock, Grok, DeepSeek, Ollama, and more. Switch with one line in your agent config, or override the lead model/thinking level per session from Session Settings. Assistant replies show the effective model that generated them, so fallback or per-session overrides stay visible in history.
Local-first operations. Voice input uses your browser or OS speech recognizer without backend audio transcription, scheduled tasks run on cron/interval/one-shot timers, todos update a live board, and the telemetry dashboard stays local with no third-party SaaS.
Coding agents (Claude Code, Codex CLI, Cursor, Windsurf, Aider, opencode) all run agents with tools now. The real difference is the shape of the workflow they fit into — terminal session, IDE window, or a desktop cockpit.
| openagentd | Claude Code | Codex CLI | Cursor / Windsurf | |
|---|---|---|---|---|
| Surface | Desktop app + web cockpit | Terminal (CLI) | Terminal (CLI) | IDE (VS Code fork) |
| Multi-agent | Lead + workers, split-pane live view | Sub-agents (sequential) | — | — |
| Watch live | Tool inspector + diffs + per-call timing | Terminal text | Terminal text | Inline in editor |
| Direct shell from input | !command shell mode + structured history |
CLI shell escapes | CLI shell escapes | Terminal/editor tasks |
| Git worktree sessions | Managed worktrees as repo children in UI | Manual git setup | Manual git setup | IDE/git extension flow |
/undo across chat |
Restores workspace files from any prior turn | — | — | Editor undo only |
| Providers | 15 — bring your own keys | Anthropic only | OpenAI only | A few, subscription |
| License / cost | Apache 2.0, your keys | Proprietary + sub | Proprietary + sub | $20/mo+ subscription |
Full capability matrix (incl. Aider + opencode): documents/docs/comparison.md. Canonical feature catalogue with version-cited ship dates: documents/docs/features.md.
Desktop app (double-click install, no terminal) — download from the latest release:
| Platform | Artefact | First-launch note |
|---|---|---|
| macOS (Apple Silicon) | brew install --cask lthoangg/tap/openagentd or OpenAgentd_*_aarch64.dmg |
The cask ad-hoc signs and installs automatically. With the .dmg, run the bundled install.sh then right-click → Open. The app is unsigned — why. |
| Linux | OpenAgentd_*_amd64.deb |
Install with your package manager, e.g. sudo apt install ./OpenAgentd_*_amd64.deb. |
macOS — after mounting the .dmg:
cd /Volumes/OpenAgentd*
./install.sh --install # ad-hoc signs + copies to /ApplicationsThen right-click OpenAgentd.app → Open the first time (single-click won't work).
CLI / API server (terminal install — backend only; connect from the desktop app via Backend connection):
# macOS / Linux
uv tool install openagentd # recommended
brew install lthoangg/tap/openagentd
curl -fsSL https://raw.githubusercontent.com/lthoangg/openagentd/main/install.sh | sh # zero-setup: bootstraps uv, then installsopenagentd init # pick provider + API key, install default agents
openagentd # API server on http://localhost:4082For phones or another desktop on the same network:
openagentd start --lan # bind 0.0.0.0 and print the LAN/mobile URL
openagentd address # show local + LAN URLs again later
openagentd health # verify the backend is reachable and readyOther install options (pip, pipx, from source) — see documents/docs/install.md.
Useful maintenance commands:
openagentd start --lan # expose backend to desktop/mobile on your LAN
openagentd restart # restart the background server
openagentd address # show local and LAN server URLs
openagentd health # run server/mobile diagnostics
openagentd status # show PID, URLs, and log path
openagentd logs # tail the local server log
openagentd doctor # check install health
openagentd cleanup # dry-run cleanup for generated artifacts older than 14 days
openagentd cleanup --apply # delete the listed generated artifacts
openagentd upgrade # stop, upgrade, and restart if runningGenerated artifacts are session-scoped under .openagentd/sessions/{session_id}/ inside the active workspace. Todos live in .todos.json; bulky tool output lives under .tool_results/, including shell spills at .tool_results/shell/. Normal session workspaces are removed when the session is deleted. Coding sessions keep the project directory but remove that session's .openagentd/sessions/{session_id}/ metadata.
Import existing identity and context Markdown files into one OpenAgentd lead agent:
openagentd migrate openclaw --from ~/.openclaw/workspace --model openai:gpt-5.5
openagentd migrate hermes --from ~/.hermes --model openai:gpt-5.5Existing agent files are not overwritten unless --force is passed. See MIGRATION.md for setup migration from OpenClaw, Hermes, Claude Code, and Codex CLI.
Switch models with a single line in your agent's .md config file. Every provider uses the provider:model format.
| Provider | Format | Auth |
|---|---|---|
| Anthropic Claude | anthropic:claude-sonnet-4-6 |
ANTHROPIC_API_KEY |
| Google Gemini | googlegenai:gemini-3.1-flash |
GOOGLE_API_KEY |
| Google Vertex AI | vertexai:gemini-3-flash-preview |
VERTEXAI_API_KEY or GCP creds |
| OpenAI | openai:gpt-5.5 |
OPENAI_API_KEY |
| OpenRouter | openrouter:qwen/qwen3.6-plus:free |
OPENROUTER_API_KEY |
| ZAI / GLM | zai:glm-5-turbo |
ZAI_API_KEY |
| xAI Grok | xai:grok-4.20 |
XAI_API_KEY |
| DeepSeek | deepseek:deepseek-v4-flash |
DEEPSEEK_API_KEY |
| AWS Bedrock | bedrock:anthropic.claude-sonnet-4-6 |
AWS profile / default chain |
| NVIDIA NIM | nvidia:stepfun-ai/step-3.5-flash |
NVIDIA_API_KEY |
| GitHub Copilot | copilot:gpt-5.4-mini |
openagentd auth copilot |
| OpenAI Codex | codex:gpt-5.5 |
openagentd auth codex |
| Router9 (local) | router9:cc/claude-sonnet-4-5 |
ROUTER9_API_KEY (optional ROUTER9_BASE_URL) |
| CLIProxyAPI (local) | cliproxy:gemini-2.5-pro |
CLIPROXY_API_KEY (optional CLIPROXY_BASE_URL) |
| Ollama (local + cloud) | ollama:llama3.2 · ollama:kimi-k2.6-cloud |
none (cloud: ollama signin) |
Set a fallback_model in your agent config for automatic failover on rate limits or 5xx errors. In the cockpit, Session Settings can override the lead agent's model and thinking level for the current chat; history keeps the model used for each user turn, and assistant reply footers show the effective model that produced the response.
| Category | Tools |
|---|---|
| Filesystem | read, write, edit, patch, ls, glob, grep, rm |
| Shell | shell, bg (background processes) |
| Web | web_search, web_fetch |
| Memory | wiki_search, note |
| Generation | generate_image, generate_video |
| Scheduling | schedule_task |
| Tasks | todo_manage |
| Team coordination | team_message, team_manage (teams only) |
| Utility | date, skill |
Add any MCP server to expose more tools without writing code.
OpenAgentd ships with a compact cockpit team:
| Agent | Role | Specialty |
|---|---|---|
| openagentd | Lead | Coordinates the team, receives user messages, spawns members, delegates |
| executor | Member blueprint | File creation, builds, shell commands, tangible artifacts |
| explorer | Member blueprint | Web research, codebase exploration, information gathering |
Configure your team by editing .md files in your config directory. Exactly one agent must have role: lead; the rest are member blueprints. The lead uses team_manage to spawn/dismiss live instances (executor#1, explorer#1) and team_message to delegate and collect results.
Fresh installs also seed a separate coding team under agents/coding/. Open /coding to select a server-local project folder and start workspace-aware sessions; Settings shows those agents as coding/openagentd, coding/coder, and coding/explorer.
---
name: my-agent
role: member
description: Handles deep research tasks
model: googlegenai:gemini-3.1-flash
thinking_level: high
fallback_model: openrouter:qwen/qwen3.6-plus:free
tools:
- web_search
- web_fetch
- read
- note
mcp:
- context7
---
System prompt goes here.Member instances are created lazily from role: member configs. Re-spawning an explicit handle restores its history for the current lead session; dismissing an instance only removes it from the live roster.
The wiki is editable and organized around durable, source-linked pages:
USER.md— Pure YAML, always injected into every system prompt. Edit it directly to give the agent standing context about you, your projects, or your preferences.- Knowledge pages —
sources/,topics/,entities/, andcomparisons/, BM25-searchable viawiki_search. - Session notes — Per-day notes the agent appends to via the
notetool.
The dream agent runs on a cron schedule, reads unprocessed sessions and notes, writes source summaries first, updates related knowledge pages, and refreshes the wiki index - turning ephemeral conversation into durable memory without any action on your part.
Click the mic button in the chat input to start voice input. Click again to stop. OpenAgentd uses the speech recognition built into your browser or app WebView and inserts the final transcript into the input for review — you still press Send manually.
There is no backend speech service, no faster-whisper dependency, and no speech.yaml setting. If the current browser/WebView does not expose speech recognition, the mic button is disabled with an explanatory tooltip. Platform privacy and cloud/local processing semantics are controlled by the browser or operating system speech service.
On macOS, voice input depends on the system speech service. If Siri & Dictation / Dictation is disabled in System Settings, Screen Time, or device management policy, speech recognition can fail with errors such as Siri and Dictation are disabled or Microphone permission check has failed. Enable System Settings → Keyboard → Dictation, then retry the mic flow.
Create tasks that run on a schedule or fire once at a specific time:
- Cron — standard five-field cron expressions
- Interval — every N seconds, minutes, or hours
- At — one-shot at an exact datetime
Tasks appear in the /scheduler panel. Pause, resume, or trigger them manually from the UI or via the REST API.
OpenAgentd exports OpenTelemetry spans to local JSONL partitions and serves a built-in dashboard at /telemetry:
- Summary — token usage, error rates, latency distribution, model breakdown
- Trace explorer — full span waterfall per session, filterable by date range
- Prometheus endpoint —
/metricsfor external scraping
No external collector required. All data stays on your machine.
Skills are .md files that inject domain-specific instructions into an agent's context on demand. They ship separately from agent configs, so one skill can be reused by any agent.
Builtin operational skills:
| Skill | Purpose |
|---|---|
self-healing |
Agent edits its own config (model, tools, MCP, image/video settings) |
mcp-installer |
Install new MCP servers from the UI or by description |
skill-installer |
Install new skills from a URL or from scratch |
plugin-installer |
Install agent plugins |
Add your own by dropping a SKILL.md file into {config_dir}/skills/{name}/ or via the /settings/skills UI.
OpenAgentd ships with Context7 pre-configured. Add any MCP server via the /settings/mcp panel or by editing mcp.json directly. Changes are hot-reloaded without a restart.
{
"servers": {
"my-server": {
"command": "npx",
"args": ["my-mcp-package"],
"env": { "API_KEY": "${MY_API_KEY}" }
}
}
}Filesystem sandbox — A denylist blocks access to OpenAgentd's own data, state, and cache directories. Add your own glob patterns (**/.env, **/secrets/**) in sandbox.yaml. Changes take effect immediately, no restart needed.
Permission system — By default, tools auto-approve and log. Switch to interactive mode to block on sensitive operations and reply per-request with once, always, or reject. Permission decisions are persisted and replayed across turns.
Full documentation index: documents/docs/index.md.
| Section | Contents |
|---|---|
| Features | Canonical, version-cited catalogue of every user-visible feature. Source of truth for slides, docs, and comparisons. |
| Roadmap / issues | Short planning note with links to GitHub issues for feature requests, future work, and known issues. |
| Install | Desktop app first (macOS/Linux); CLI/uv/pipx/pip, source. |
| Migration | Move setup from OpenClaw, Hermes, Claude Code, Codex CLI, or older OpenAgentd installs |
| CLI reference | Every openagentd subcommand |
| Configuration overview | Hub — links into the focused subpages below |
| Environment variables | Settings fields, provider keys, optional extras |
| Paths & XDG roots | DATA / CONFIG / STATE / CACHE / WORKSPACE / WIKI |
| LLM providers | Every registered prefix, OAuth flows, capability YAML |
| Agent files | .md frontmatter schema, validation, editing workflow |
| Built-in tools | Filesystem, shell, web, multimodal, memory |
| Skills | SKILL.md format, builtin skill catalog |
| Sandbox & permissions | Denylist paths, user sandbox.yaml, permission services |
| Comparison | How OpenAgentd compares to Claude Code, Codex CLI, Cursor/Windsurf, Aider, opencode |
| Troubleshooting | Common desktop-app and CLI/server issues |
| Section | Contents |
|---|---|
| Architecture | C4 diagrams, in-memory SSE streaming, SSE event protocol |
| Agent engine | Loop, hooks, tools, teams, plugins, context, memory, summarization |
| Lazy team members | Spawn/dismiss member instances, blueprint#N handles, history restore |
| API reference | HTTP endpoints, SSE events, file handling |
| Section | Contents |
|---|---|
| Logging | App log + per-session JSONL, rotation, console format |
| Observability | OTel spans, DuckDB-backed /api/observability/*, /telemetry UI |
| Desktop distribution | Tauri v2 shell, Python sidecar, token auth, release pipeline |
| Title generation | LLM-generated session titles, SSE event, config |
| Section | Contents |
|---|---|
| App chrome | Shared header, platform detection, Tauri drag, macOS overlay |
| Workspace Files | Session files, coding Files & Diff, previews, downloads |
| Todos popover | Task board, assignments, claims, dependencies, live updates |
| Tool rendering | Tool call/result UI and custom renderers |
| Chat input & queue | Consecutive message queuing, PendingMessageQueue |
| Voice input | Client speech recognition and transcript insertion |
| Mobile layout | Phone-first responsive design — breakpoints, safe areas |
| Section | Contents |
|---|---|
| Guidelines | Dev commands, code style, testing patterns, GitHub conventions |
| Team testing | Manual smoke-test recipes for the multi-agent team |
See CONTRIBUTING.md for setup, workflow, and PR guidelines.
See SECURITY.md for the trust model and how to report vulnerabilities.
Apache License 2.0. Free for personal, research, and commercial use.










