[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-157":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":15,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":16,"rankGlobal":10,"rankLanguage":10,"license":17,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":20,"hasPages":18,"topics":21,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":15,"starSnapshotCount":15,"syncStatus":30,"lastSyncTime":31,"discoverSource":32},157,"openagentd","lthoangg\u002Fopenagentd","lthoangg","Self-hosted AI agent OS — streaming chat, tool use, persistent memory, and multi-agent teams. Runs entirely on your machine.","https:\u002F\u002Fgithub.com\u002Flthoangg\u002Fopenagentd",null,"Python",120,20,106,0,3.97,"Apache License 2.0",false,"main",true,[22,23,24,25,26],"agents","ai","llm","multi-agent","self-hosted","2026-06-12 02:00:09","# OpenAgentd\n\n[![License: Apache 2.0](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache%202.0-blue.svg)](LICENSE)\n[![Python 3.14](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.14-blue.svg)](https:\u002F\u002Fwww.python.org\u002F)\n[![FastAPI](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FFastAPI-009688?logo=fastapi&logoColor=white)](https:\u002F\u002Ffastapi.tiangolo.com\u002F)\n[![React 19](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FReact-19-61DAFB?logo=react&logoColor=white)](https:\u002F\u002Freact.dev\u002F)\n\n**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.\n\n[Documentation](documents\u002Fdocs\u002Findex.md)\n\n![Four agents coordinating in a single split view](documents\u002Fassets\u002Fhero-team-split.png)\n\n---\n\n## What you get\n\n**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.\n\n![Command palette — fuzzy search across sessions, agents, files, and actions](documents\u002Fassets\u002Fcommand-pallete.gif)\n\n**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.\n\n**A workspace the agent shares with you.** Every file the agent touches shows up in a side panel — browse, preview, download.\n\n**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.\n\n**Run a team, not just one agent.** Lead + worker setup with an async mailbox and `team_message` delegation. Watch each agent stream in its own pane — or merge into a single unified view.\n\n![Unified team view — every agent's turn in one stream, clearly labeled](documents\u002Fassets\u002Fteam-unified.png)\n\n**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.\n\n**Schedule it and walk away.** Cron, interval, or one-shot schedules. Results appear when you come back.\n\n**See exactly what the agent is doing.** Built-in OTel dashboard — token usage, latency, trace waterfall. No third-party SaaS, all local.\n\n**Pick your model, no lock-in.** 12 providers — Gemini, OpenAI, OpenRouter, Bedrock, Grok, DeepSeek, and more. Switch with one line in your agent config.\n\n---\n\n## Why OpenAgentd\n\n|                      | **openagentd**                        | **opencode**        | **openclaw**      | **hermes-agent**     |\n|----------------------|---------------------------------------|---------------------|-------------------|----------------------|\n| **UI**               | Web cockpit                           | Terminal            | Messaging apps    | Messaging \u002F CLI      |\n| **Memory**           | 3-tier wiki, cross-session, editable  | Session only        | Session only      | Cross-session (FTS5) |\n| **Image \u002F video**    | Multi-provider images + native video  | —                   | Via plugins       | Images, no video     |\n| **Hot-reload**       | Everything, no restart                | Restart required    | Partial           | MCP only             |\n| **Self-modification**| Agent edits its own config            | —                   | Partial           | Persona + skills     |\n| **Telemetry**        | Built-in OTel dashboard               | —                   | —                 | —                    |\n| **Embed \u002F API**      | First-class REST + SSE                | Protocol only       | Channel-shaped    | Channel-shaped       |\n\nFull breakdown: [`documents\u002Fdocs\u002Fcomparison.md`](documents\u002Fdocs\u002Fcomparison.md).\n\n---\n\n## Quick start\n\n```bash\n# macOS \u002F Linux\nuv tool install openagentd        # recommended\nbrew tap lthoangg\u002Ftap && brew install openagentd\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Flthoangg\u002Fopenagentd\u002Fmain\u002Finstall.sh | sh\n\n# Windows\nirm https:\u002F\u002Fraw.githubusercontent.com\u002Flthoangg\u002Fopenagentd\u002Fmain\u002Finstall.ps1 | iex\n\n# Docker\ngit clone https:\u002F\u002Fgithub.com\u002Flthoangg\u002Fopenagentd.git\ncd openagentd && cp .env.example .env && docker compose up -d\n```\n\n```bash\nopenagentd init   # pick provider + API key, install default agents\nopenagentd        # http:\u002F\u002Flocalhost:4082\n```\n\n![Installing openagentd with uv tool install](documents\u002Fassets\u002Fopenagentd-install.gif)\n\nOther install options (pip, pipx, from source) — see [`documents\u002Fdocs\u002Finstall.md`](documents\u002Fdocs\u002Finstall.md).\n\n---\n\n## Migrate from OpenClaw or Hermes Agent\n\nImport existing identity and context Markdown files into one OpenAgentd lead agent:\n\n```bash\nopenagentd migrate openclaw --from ~\u002F.openclaw\u002Fworkspace --model openai:gpt-5.5\nopenagentd migrate hermes --from ~\u002F.hermes --model openai:gpt-5.5\n```\n\nExisting agent files are not overwritten unless `--force` is passed. See [`documents\u002Fdocs\u002Fconfiguration.md`](documents\u002Fdocs\u002Fconfiguration.md#agent-configuration) for supported source files.\n\n---\n\n## Providers\n\nSwitch models with a single line in your agent's `.md` config file. Every provider uses the `provider:model` format.\n\n| Provider | Format | Auth |\n|---|---|---|\n| Google Gemini | `googlegenai:gemini-3.1-flash` | `GOOGLE_API_KEY` |\n| Google Vertex AI | `vertexai:gemini-3-flash-preview` | `VERTEXAI_API_KEY` or GCP creds |\n| OpenAI | `openai:gpt-5.5` | `OPENAI_API_KEY` |\n| OpenRouter | `openrouter:qwen\u002Fqwen3.6-plus:free` | `OPENROUTER_API_KEY` |\n| ZAI \u002F GLM | `zai:glm-5-turbo` | `ZAI_API_KEY` |\n| xAI Grok | `xai:grok-4.20` | `XAI_API_KEY` |\n| DeepSeek | `deepseek:deepseek-v4-flash` | `DEEPSEEK_API_KEY` |\n| AWS Bedrock | `bedrock:anthropic.claude-sonnet-4-6` | AWS profile \u002F default chain |\n| NVIDIA NIM | `nvidia:stepfun-ai\u002Fstep-3.5-flash` | `NVIDIA_API_KEY` |\n| GitHub Copilot | `copilot:gpt-5.4-mini` | `openagentd auth copilot` |\n| OpenAI Codex | `codex:gpt-5.5` | `openagentd auth codex` |\n| 9Router (local) | `router9:cc\u002Fclaude-sonnet-4-5` | `ROUTER9_BASE_URL` |\n| CLIProxyAPI (local) | `cliproxy:gemini-2.5-pro` | `CLIPROXY_BASE_URL` |\n\nSet a `fallback_model` in your agent config for automatic failover on rate limits or 5xx errors.\n\n---\n\n## Built-in tools\n\n| Category | Tools |\n|---|---|\n| Filesystem | `read`, `write`, `edit`, `ls`, `glob`, `grep`, `rm` |\n| Shell | `shell`, `bg` (background processes) |\n| Web | `web_search`, `web_fetch` |\n| Memory | `wiki_search`, `note` |\n| Generation | `generate_image`, `generate_video` |\n| Scheduling | `schedule_task` |\n| Tasks | `todo_manage` |\n| Utility | `date`, `skill`, `team_message` (teams only) |\n\nAdd any MCP server to expose more tools without writing code.\n\n---\n\n## Agents and teams\n\nOpenAgentd ships with four seed agents:\n\n| Agent | Role | Specialty |\n|---|---|---|\n| **openagentd** | Lead | Coordinates the team, receives user messages, delegates |\n| **consultant** | Member | Architecture reviews, debugging, design decisions (high thinking) |\n| **executor** | Member | File creation, builds, shell commands, tangible artifacts |\n| **explorer** | Member | Web research, codebase exploration, information gathering |\n\nConfigure any team shape you want by editing or adding `.md` files in your config directory. Exactly one agent must have `role: lead`; the rest are members. Agents communicate via an async mailbox using the `team_message` tool — no polling, no shared state.\n\n### Agent config at a glance\n\n```yaml\n---\nname: my-agent\nrole: member\ndescription: Handles deep research tasks\nmodel: googlegenai:gemini-3.1-flash\nthinking_level: high\nfallback_model: openrouter:qwen\u002Fqwen3.6-plus:free\ntools:\n  - web_search\n  - web_fetch\n  - read\n  - note\nskills:\n  - web-research\nmcp:\n  - context7\nsummarization:\n  token_threshold: 80000\n  keep_last_assistants: 2\n---\n\nSystem prompt goes here.\n```\n\n---\n\n## Memory\n\nThree tiers, all editable:\n\n1. **`USER.md`** — Always injected into every system prompt. Edit it directly to give the agent standing context about you, your projects, or your preferences.\n2. **Topics** — Synthesised knowledge base, BM25-searchable via `wiki_search`.\n3. **Session notes** — Per-session notes the agent appends to via the `note` tool.\n\nThe **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.\n\n---\n\n## Voice input\n\nClick the mic button in the chat input to record. Click again to stop. The recording is transcribed on-device using [Whisper](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fwhisper) and inserted into the input for review — you still press Send manually. Nothing leaves your machine.\n\n**Enable it:**\n\n1. Open **Settings → Voice** and toggle it on (or edit `~\u002F.config\u002Fopenagentd\u002Fspeech.yaml` directly).\n2. Install the local transcription extra once:\n\n```bash\nuv sync --extra voice-local\n# or, for tool installs:\nuv tool install \"openagentd[voice-local]\"\n```\n\n**`speech.yaml` reference:**\n\n```yaml\nvoice:\n  enabled: true\n  model: local:base    # local:base \u002F local:small \u002F local:medium\n  language: auto       # or a BCP-47 code: \"en\", \"fr\", \"ja\", …\n  max_file_mb: 25\n```\n\nThe file is hot-reloaded on change — no server restart needed. V1 is local-only (`local:*`). No TTS, no auto-send, no silence auto-stop.\n\n---\n\n## Scheduler\n\nCreate tasks that run on a schedule or fire once at a specific time:\n\n- **Cron** — standard five-field cron expressions\n- **Interval** — every N seconds, minutes, or hours\n- **At** — one-shot at an exact datetime\n\nTasks appear in the `\u002Fscheduler` panel. Pause, resume, or trigger them manually from the UI or via the REST API.\n\n---\n\n## Observability\n\nOpenAgentd exports OpenTelemetry spans to local JSONL partitions and serves a built-in dashboard at `\u002Ftelemetry`:\n\n- **Summary** — token usage, error rates, latency distribution, model breakdown\n- **Trace explorer** — full span waterfall per session, filterable by date range\n- **Prometheus endpoint** — `\u002Fmetrics` for external scraping\n\nNo external collector required. All data stays on your machine.\n\n![Telemetry dashboard — token usage, latency, model breakdown, and trace waterfall](documents\u002Fassets\u002Ftelementry.gif)\n\n---\n\n## Skills\n\nSkills 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.\n\nIncluded skills:\n\n| Skill | Purpose |\n|---|---|\n| `self-healing` | Agent edits its own config (model, tools, skills, summarization thresholds) |\n| `mcp-installer` | Install new MCP servers from the UI or by description |\n| `skill-installer` | Install new skills from a URL or from scratch |\n| `plugin-installer` | Install agent plugins |\n| `web-research` | Structured web research methodology with source citation |\n\nAdd your own by dropping a `SKILL.md` file into `{config_dir}\u002Fskills\u002F{name}\u002F` or via the `\u002Fsettings\u002Fskills` UI.\n\n---\n\n## MCP servers\n\nOpenAgentd ships with [Context7](https:\u002F\u002Fcontext7.com) pre-configured. Add any MCP server via the `\u002Fsettings\u002Fmcp` panel or by editing `mcp.json` directly. Changes are hot-reloaded without a restart.\n\n```json\n{\n  \"servers\": {\n    \"my-server\": {\n      \"command\": \"npx\",\n      \"args\": [\"my-mcp-package\"],\n      \"env\": { \"API_KEY\": \"${MY_API_KEY}\" }\n    }\n  }\n}\n```\n\n---\n\n## Sandbox and permissions\n\n**Filesystem sandbox** — A denylist blocks access to OpenAgentd's own data, state, and cache directories. Add your own glob patterns (`**\u002F.env`, `**\u002Fsecrets\u002F**`) in `sandbox.yaml`. Changes take effect immediately, no restart needed.\n\n**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.\n\n---\n\n## Documentation\n\n| Section | Contents |\n|---------|----------|\n| [Install](documents\u002Fdocs\u002Finstall.md) | pip, uv, Homebrew, Docker, source |\n| [CLI reference](documents\u002Fdocs\u002Fcli.md) | Every `openagentd` subcommand |\n| [Configuration](documents\u002Fdocs\u002Fconfiguration.md) | Env vars, agent `.md` files, providers, tools, skills, sandbox |\n| [Architecture](documents\u002Fdocs\u002Farchitecture.md) | C4 diagrams, agent loop, SSE protocol |\n| [API reference](documents\u002Fdocs\u002Fapi\u002Findex.md) | HTTP endpoints, SSE events, file handling |\n| [Agent engine](documents\u002Fdocs\u002Fagent\u002F) | Loop, hooks, tools, teams, context, summarization |\n| [Comparison](documents\u002Fdocs\u002Fcomparison.md) | How OpenAgentd compares to opencode, openclaw, hermes-agent |\n| [Troubleshooting](documents\u002Fdocs\u002Ftroubleshooting.md) | Common install and runtime issues |\n| [Guidelines](documents\u002Fdocs\u002Fguidelines.md) | Code style, testing patterns, workflow (contributors) |\n\n---\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for setup, workflow, and PR guidelines.\n\n## Security\n\nSee [SECURITY.md](SECURITY.md) for the trust model and how to report vulnerabilities.\n\n## License\n\n[Apache License 2.0](LICENSE). Free for personal, research, and commercial use.\n","OpenAgentd 是一个自托管的多智能体系统，运行于本地机器上，支持流式聊天、工具使用、持久化内存及多智能体协作。项目采用Python语言编写，基于FastAPI和React构建，提供了一个功能丰富的Web界面作为控制台，允许用户通过命令面板、拖放文件等操作与智能体互动，并且能够实时查看智能体执行的任务详情。它特别适合需要在私有环境中处理敏感数据或执行复杂任务的场景，如个人助理、自动化脚本执行、内容生成等。此外，OpenAgentd 支持多种AI模型供应商选择，确保了灵活性与可扩展性，同时保证所有数据处理都在本地完成，增强了隐私保护。",2,"2026-05-06 17:19:01","CREATED_QUERY"]