Skip to main content

Self-hosted AI agents — streaming chat, tool use, persistent memory, multi-agent teams

Project description

OpenAgentd

OpenAgentd octobot mascot and wordmark

License: Apache 2.0 Python 3.14 FastAPI React 19

Your on-machine multi-agent system. A long-running local service with a web cockpit, persistent memory, and a team of agents that coordinate to get real work done. Everything stays on your hardware.

Documentation

OpenAgentd annotated multi-agent cockpit


What you get

A cockpit, not a chat box. Command palette (Ctrl+P), drag-and-drop files, full-screen image viewer, and an inspector that shows every tool call and what came back.

Tool call inspector — arguments, execution status, and results

Agents that can actually do things. Read and write files, run shell commands, search the web, generate images and video, manage todos, schedule tasks. Add more via a skill .md or any MCP server.

A workspace the agent shares with you. Every file the agent touches shows up in a side panel — browse, preview, download. In /coding, open a server-local project folder and review the live file tree plus current git diff from the same drawer.

Persistent memory you can edit. Three-tier wiki: session notes, synthesised topics, and a USER.md injected into every prompt. Browse and edit it from the Wiki panel.

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 — or switch to a single unified view.

Use it as a coding cockpit. Coding mode ships with a workspace-aware team (coding/openagentd, coding/executor, coding/explorer, coding/consultant) that can inspect a local codebase, make changes, run checks, and keep files/diffs visible while it works.

Unified team view — lead and specialist agents visible together

Voice input, transcribed locally. Click the mic button to record, click again to stop. The recording is transcribed on-device via Whisper and inserted into the chat input for review — nothing leaves your machine. Configure in speech.yaml or enable via Settings → Voice.

Schedule it and walk away. Cron, interval, or one-shot schedules. Results appear when you come back.

Track work as a board. todo_manage gives the lead and members a shared task board with assignment, claims, dependencies, priorities, and live UI updates.

See exactly what the agent is doing. Built-in OTel dashboard — token usage, latency, trace waterfall. No third-party SaaS, all local.

Pick your model, no lock-in. 14 providers — Gemini, OpenAI, OpenRouter, Bedrock, Grok, DeepSeek, Ollama, and more. Switch with one line in your agent config.


Why OpenAgentd

openagentd opencode openclaw hermes-agent
UI Web cockpit Terminal Messaging apps Messaging / CLI
Memory 3-tier wiki, cross-session, editable Session only Session only Cross-session (FTS5)
Image / video Multi-provider images + native video Via plugins Images, no video
Hot-reload Everything, no restart Restart required Partial MCP only
Self-modification Agent edits its own config Partial Persona + skills
Telemetry Built-in OTel dashboard
Embed / API First-class REST + SSE Protocol only Channel-shaped Channel-shaped

Full breakdown: documents/docs/comparison.md.


Quick start

# macOS / Linux
uv tool install openagentd        # recommended
brew tap lthoangg/tap && brew install openagentd
curl -fsSL https://raw.githubusercontent.com/lthoangg/openagentd/main/install.sh | sh

# Windows
irm https://raw.githubusercontent.com/lthoangg/openagentd/main/install.ps1 | iex

# Docker
git clone https://github.com/lthoangg/openagentd.git
cd openagentd && cp .env.example .env && docker compose up -d
openagentd init   # pick provider + API key, install default agents
openagentd        # http://localhost:4082

Installing openagentd with uv tool install

Other install options (pip, pipx, from source) — see documents/docs/install.md.


Migrate from OpenClaw or Hermes Agent

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.5

Existing agent files are not overwritten unless --force is passed. See documents/docs/configuration.md for supported source files.


Providers

Switch models with a single line in your agent's .md config file. Every provider uses the provider:model format.

Provider Format Auth
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
9Router (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.


Built-in tools

Category Tools
Filesystem read, write, edit, 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, team_configure (teams only)
Utility date, skill

Add any MCP server to expose more tools without writing code.


Agents and teams

OpenAgentd ships with one lead agent and three member blueprints:

Agent Role Specialty
openagentd Lead Coordinates the team, receives user messages, spawns members, delegates
consultant Member blueprint Architecture reviews, debugging, design decisions (high thinking)
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), team_message to delegate and collect results, and team_configure to grant or revoke a member's skills, tools, or MCP servers without restarting.

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/executor, coding/explorer, and coding/consultant.

OpenAgentd agent architecture — loop, hooks, tools, providers, memory, and team mode

Agent config at a glance

---
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
skills:
  - web-research
mcp:
  - context7
summarization:
  token_threshold: 80000
  keep_last_assistants: 2
---

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.


Memory

Three tiers, all editable:

  1. USER.md — Always injected into every system prompt. Edit it directly to give the agent standing context about you, your projects, or your preferences.
  2. Topics — Synthesised knowledge base, BM25-searchable via wiki_search.
  3. Session notes — Per-session notes the agent appends to via the note tool.

The dream agent runs on a cron schedule, reads unprocessed session notes, synthesises new topic files, and updates the wiki index — turning ephemeral conversation into durable memory without any action on your part.


Voice input

Click the mic button in the chat input to record. Click again to stop. The recording is transcribed on-device using Whisper and inserted into the input for review — you still press Send manually. Nothing leaves your machine.

Enable it:

  1. Open Settings → Voice and toggle it on (or edit ~/.config/openagentd/speech.yaml directly).
  2. Install the local transcription extra once:
uv sync --extra voice-local
# or, for tool installs:
uv tool install "openagentd[voice-local]"

speech.yaml reference:

voice:
  enabled: true
  model: local:base    # local:base / local:small / local:medium
  language: auto       # or a BCP-47 code: "en", "fr", "ja", …
  max_file_mb: 25

The file is hot-reloaded on change — no server restart needed. V1 is local-only (local:*). No TTS, no auto-send, no silence auto-stop.


Scheduler

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.


Observability

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/metrics for external scraping

No external collector required. All data stays on your machine.


Skills

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.

Included skills:

Skill Purpose
self-healing Agent edits its own config (model, tools, skills, summarization thresholds)
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
web-research Structured web research methodology with source citation

Add your own by dropping a SKILL.md file into {config_dir}/skills/{name}/ or via the /settings/skills UI.


MCP servers

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}" }
    }
  }
}

Sandbox and permissions

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.


Documentation

Section Contents
Install pip, uv, Homebrew, Docker, source
CLI reference Every openagentd subcommand
Configuration Env vars, agent .md files, providers, tools, skills, sandbox
Architecture C4 diagrams, agent loop, SSE protocol
API reference HTTP endpoints, SSE events, file handling
Agent engine Loop, hooks, tools, teams, context, summarization
Lazy team members Spawn/dismiss member instances, blueprint#N handles, history restore
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
Comparison How OpenAgentd compares to opencode, openclaw, hermes-agent
Troubleshooting Common install and runtime issues
Guidelines Code style, testing patterns, workflow (contributors)

Star History

Star History Chart

Contributing

See CONTRIBUTING.md for setup, workflow, and PR guidelines.

Security

See SECURITY.md for the trust model and how to report vulnerabilities.

License

Apache License 2.0. Free for personal, research, and commercial use.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openagentd-0.6.0.tar.gz (59.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openagentd-0.6.0-py3-none-any.whl (4.4 MB view details)

Uploaded Python 3

File details

Details for the file openagentd-0.6.0.tar.gz.

File metadata

  • Download URL: openagentd-0.6.0.tar.gz
  • Upload date:
  • Size: 59.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for openagentd-0.6.0.tar.gz
Algorithm Hash digest
SHA256 40f1c8dfb57f071befe497ce861ce54f01555c15485460ecc95371139586c592
MD5 8a116b373f15afe1cade87bb3929cc41
BLAKE2b-256 f543e97af8c834b88f9fc5c30c927d2e631a34abae590f7ed5ecc33a7beb327e

See more details on using hashes here.

File details

Details for the file openagentd-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: openagentd-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 4.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for openagentd-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e9a10406b2f33107b339281c8f85aec9874bfeddf478d13a80986ddceca5dd0c
MD5 4b4a872734efb7b17a870b8d2221aead
BLAKE2b-256 74ed833ce128ec39dbe214d8b477a593f444af3c36e0fffac19cfde9576f035a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page