{"id":47617401,"url":"https://github.com/composiohq/agent-orchestrator","last_synced_at":"2026-05-23T20:01:34.690Z","repository":{"id":338759196,"uuid":"1156994049","full_name":"ComposioHQ/agent-orchestrator","owner":"ComposioHQ","description":" Agentic orchestrator for parallel coding agents — plans tasks, spawns agents, and autonomously handles CI    fixes, merge conflicts, and code reviews.","archived":false,"fork":false,"pushed_at":"2026-05-20T23:01:57.000Z","size":31773,"stargazers_count":7169,"open_issues_count":879,"forks_count":970,"subscribers_count":27,"default_branch":"main","last_synced_at":"2026-05-21T00:35:41.676Z","etag":null,"topics":["agent-fleet","agent-swarm","claude-code","codex-cli","git-worktrees","multi-agent","orchestration","orchestrator","parallel-agents","parallel-coding","skills","tmux"],"latest_commit_sha":null,"homepage":"https://composio.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ComposioHQ.png","metadata":{"files":{"readme":"README.md","changelog":"changelog/hash-based-architecture-migration.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-13T09:52:36.000Z","updated_at":"2026-05-21T00:34:35.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ComposioHQ/agent-orchestrator","commit_stats":null,"previous_names":["composiohq/agent-orchestrator"],"tags_count":200,"template":false,"template_full_name":null,"purl":"pkg:github/ComposioHQ/agent-orchestrator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ComposioHQ%2Fagent-orchestrator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ComposioHQ%2Fagent-orchestrator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ComposioHQ%2Fagent-orchestrator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ComposioHQ%2Fagent-orchestrator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ComposioHQ","download_url":"https://codeload.github.com/ComposioHQ/agent-orchestrator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ComposioHQ%2Fagent-orchestrator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33410345,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T18:09:33.147Z","status":"ssl_error","status_checked_at":"2026-05-23T18:09:31.380Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-fleet","agent-swarm","claude-code","codex-cli","git-worktrees","multi-agent","orchestration","orchestrator","parallel-agents","parallel-coding","skills","tmux"],"created_at":"2026-04-01T21:40:30.278Z","updated_at":"2026-05-23T20:01:34.683Z","avatar_url":"https://github.com/ComposioHQ.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eAgent Orchestrator — The Orchestration Layer for Parallel AI Agents\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://github.com/ComposioHQ/agent-orchestrator\"\u003e\n  \u003cimg width=\"800\" alt=\"Agent Orchestrator banner\" src=\"docs/assets/agent_orchestrator_banner.png\"\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\nSpawn parallel AI coding agents, each in its own git worktree. Agents autonomously fix CI failures, address review comments, and open PRs — you supervise from one dashboard.\n\n[![GitHub stars](https://img.shields.io/github/stars/ComposioHQ/agent-orchestrator?style=flat-square)](https://github.com/ComposioHQ/agent-orchestrator/stargazers)\n[![npm version](https://img.shields.io/npm/v/%40aoagents%2Fao?style=flat-square)](https://www.npmjs.com/package/@aoagents/ao)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue?style=flat-square)](LICENSE)\n[![PRs merged](https://img.shields.io/badge/PRs_merged-61-brightgreen?style=flat-square)](https://github.com/ComposioHQ/agent-orchestrator/pulls?q=is%3Amerged)\n[![Tests](https://img.shields.io/badge/test_cases-3%2C288-blue?style=flat-square)](https://github.com/ComposioHQ/agent-orchestrator/releases/tag/metrics-v1)\n[![Discord](https://img.shields.io/badge/Discord-Join%20Community-5865F2?style=flat-square\u0026logo=discord\u0026logoColor=white)](https://discord.gg/UZv7JjxbwG)\n\n\u003c/div\u003e\n\n---\n\nAgent Orchestrator manages fleets of AI coding agents working in parallel on your codebase. Each agent gets its own git worktree, its own branch, and its own PR. When CI fails, the agent fixes it. When reviewers leave comments, the agent addresses them. You only get pulled in when human judgment is needed.\n\n**Agent-agnostic** (Claude Code, Codex, Aider) · **Runtime-agnostic** (tmux, ConPTY/process, Docker) · **Tracker-agnostic** (GitHub, Linear)\n\n\u003cdiv align=\"center\"\u003e\n\n## See it in action\n\n\u003ca href=\"https://x.com/agent_wrapper/status/2026329204405723180\"\u003e\n  \u003cimg src=\"docs/assets/demo-video-tweet.png\" alt=\"Agent Orchestrator demo — AI agents building their own orchestrator\" width=\"560\"\u003e\n\u003c/a\u003e\n\u003cbr\u003e\u003cbr\u003e\n\u003ca href=\"https://x.com/agent_wrapper/status/2026329204405723180\"\u003e\u003cimg src=\"docs/assets/btn-watch-demo.png\" alt=\"Watch the Demo on X\" height=\"48\"\u003e\u003c/a\u003e\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\u003ca href=\"https://x.com/agent_wrapper/status/2025986105485733945\"\u003e\n  \u003cimg src=\"docs/assets/article-tweet.png\" alt=\"The Self-Improving AI System That Built Itself\" width=\"560\"\u003e\n\u003c/a\u003e\n\u003cbr\u003e\u003cbr\u003e\n\u003ca href=\"https://x.com/agent_wrapper/status/2025986105485733945\"\u003e\u003cimg src=\"docs/assets/btn-read-article.png\" alt=\"Read the Full Article on X\" height=\"48\"\u003e\u003c/a\u003e\n\n\u003c/div\u003e\n\n## Quick Start\n\n\u003e **Prerequisites:** [Node.js 20.18.3+](https://nodejs.org), [Git 2.25+](https://git-scm.com), [`gh` CLI](https://cli.github.com), and:\n\u003e - **macOS / Linux:** [tmux](https://github.com/tmux/tmux/wiki/Installing) — install via `brew install tmux` or `sudo apt install tmux`.\n\u003e - **Windows:** PowerShell 7+ recommended. tmux is **not** required — AO uses native ConPTY via the `runtime-process` plugin (the default on Windows). Set `AO_SHELL=bash` if you have Git Bash and prefer it.\n\n### Install\n\n```bash\nnpm install -g @aoagents/ao\n```\n\n\u003e **Nightly builds** (latest `main`, daily Fri–Tue): `npm install -g @aoagents/ao@nightly`\n\u003e Back to stable: `npm install -g @aoagents/ao@latest`\n\n\u003cdetails\u003e\n\u003csummary\u003ePermission denied? Install from source?\u003c/summary\u003e\n\nIf `npm install -g` fails with EACCES, prefix with `sudo` or [fix your npm permissions](https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally).\n\nTo install from source (for contributors):\n\n```bash\ngit clone https://github.com/ComposioHQ/agent-orchestrator.git\ncd agent-orchestrator \u0026\u0026 bash scripts/setup.sh\n```\n\u003c/details\u003e\n\n### Zsh Completion\n\nGenerate the completion file from the installed CLI:\n\n```bash\nmkdir -p ~/.zsh/completions\nao completion zsh \u003e ~/.zsh/completions/_ao\n```\n\nThen make sure the directory is on your `fpath` before `compinit` runs:\n\n```zsh\nfpath=(~/.zsh/completions $fpath)\nautoload -Uz compinit\ncompinit\n```\n\nFor Oh My Zsh, install the same generated file into a custom plugin directory and add `ao` to your plugin list:\n\n```bash\nmkdir -p \"${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/ao\"\nao completion zsh \u003e \"${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/ao/_ao\"\n```\n\nIf you are contributing from a source checkout, you can also symlink the repo copy at [`completions/_ao`](completions/_ao).\n\n### Start\n\nPoint it at any repo — it clones, configures, and launches the dashboard in one command:\n\n```bash\nao start https://github.com/your-org/your-repo\n```\n\nOr from inside an existing local repo:\n\n```bash\ncd ~/your-project \u0026\u0026 ao start\n```\n\nThat's it. The dashboard opens at `http://localhost:3000` and the orchestrator agent starts managing your project.\n\n### Add more projects\n\n```bash\nao start ~/path/to/another-repo\n```\n\n## How It Works\n\n1. **You start** — `ao start` launches the dashboard and an orchestrator agent\n2. **Orchestrator spawns workers** — each issue gets its own agent in an isolated git worktree\n3. **Agents work autonomously** — they read code, write tests, create PRs\n4. **Reactions handle feedback** — CI failures and review comments are automatically routed back to the agent\n5. **You review and merge** — you only get pulled in when human judgment is needed\n\nThe orchestrator agent uses the [AO CLI](docs/CLI.md) internally to manage sessions. You don't need to learn or use the CLI — the dashboard and orchestrator handle everything.\n\n## Configuration\n\n`ao start` auto-generates `agent-orchestrator.yaml` with sensible defaults. You can edit it afterwards to customize behavior:\n\n```yaml\n# agent-orchestrator.yaml\n$schema: https://raw.githubusercontent.com/ComposioHQ/agent-orchestrator/main/schema/config.schema.json\n# Runtime data is auto-derived under ~/.agent-orchestrator/{hash}-{projectId}/\nport: 3000\n\ndefaults:\n  runtime: tmux       # default on macOS / Linux; on Windows the default is `process` (ConPTY)\n  agent: claude-code\n  workspace: worktree\n  notifiers: [desktop]\n\nprojects:\n  my-app:\n    repo: owner/my-app\n    path: ~/my-app\n    defaultBranch: main\n    sessionPrefix: app\n\nreactions:\n  ci-failed:\n    auto: true\n    action: send-to-agent\n    retries: 2\n  changes-requested:\n    auto: true\n    action: send-to-agent\n    escalateAfter: 30m\n  approved-and-green:\n    auto: false # flip to true for auto-merge\n    action: notify\n```\n\nCI fails → agent gets the logs and fixes it. Reviewer requests changes → agent addresses them. PR approved with green CI → you get a notification to merge.\n\nKeep the `$schema` line so editors can autocomplete and validate against [`schema/config.schema.json`](schema/config.schema.json).\n\nSee [`agent-orchestrator.yaml.example`](agent-orchestrator.yaml.example) for the full reference, or run `ao config-help` for the complete schema.\n\n## Remote Access\n\nAO keeps your Mac awake while running, so you can access the dashboard remotely (e.g., via Tailscale from your phone) without the machine going to sleep.\n\n**How it works:** On macOS, AO automatically holds an idle-sleep prevention assertion using `caffeinate`. When AO exits, the assertion is released.\n\n```yaml\n# agent-orchestrator.yaml\n$schema: https://raw.githubusercontent.com/ComposioHQ/agent-orchestrator/main/schema/config.schema.json\npower:\n  preventIdleSleep: true  # Default on macOS; no-op on Linux and Windows\n```\n\nSet to `false` if you want to allow idle sleep while AO runs.\n\n**Lid-close limitation:** macOS enforces lid-close sleep at the hardware level — no userspace assertion can override it. If you need remote access while traveling with the lid closed, use [clamshell mode](https://support.apple.com/en-us/102505) (external power + display + input device).\n\n**Linux / Windows:** AO does not currently hold a wake assertion on these platforms. On Linux, idle-sleep behaviour is governed by your desktop environment / `systemd-logind`; configure that directly. On Windows, set the OS power plan if remote access matters while idle.\n\n## Plugin Architecture\n\nSeven plugin slots. Lifecycle stays in core.\n\n| Slot      | Default     | Alternatives             |\n| --------- | ----------- | ------------------------ |\n| Runtime   | tmux (macOS/Linux) / process (Windows) | process, docker |\n| Agent     | claude-code | codex, aider, cursor, opencode, kimicode |\n| Workspace | worktree    | clone                    |\n| Tracker   | github      | linear, gitlab           |\n| SCM       | github      | gitlab                   |\n| Notifier  | desktop     | slack, discord, composio, webhook, openclaw |\n| Terminal  | iterm2      | web                      |\n\nAll interfaces defined in [`packages/core/src/types.ts`](packages/core/src/types.ts). A plugin implements one interface and exports a `PluginModule`. That's it.\n\n## Why Agent Orchestrator?\n\nRunning one AI agent in a terminal is easy. Running 30 across different issues, branches, and PRs is a coordination problem.\n\n**Without orchestration**, you manually: create branches, start agents, check if they're stuck, read CI failures, forward review comments, track which PRs are ready to merge, clean up when done.\n\n**With Agent Orchestrator**, you: `ao start` and walk away. The system handles isolation, feedback routing, and status tracking. You review PRs and make decisions — the rest is automated.\n\n## Documentation\n\n| Doc                                      | What it covers                                               |\n| ---------------------------------------- | ------------------------------------------------------------ |\n| [Setup Guide](SETUP.md)                  | Detailed installation, configuration, and troubleshooting    |\n| [CLI Reference](docs/CLI.md)             | All `ao` commands (mostly used by the orchestrator agent)    |\n| [Examples](examples/)                    | Config templates (GitHub, Linear, multi-project, auto-merge) |\n| [Development Guide](docs/DEVELOPMENT.md) | Architecture, conventions, plugin pattern                    |\n| [Contributing](CONTRIBUTING.md)          | How to contribute, build plugins, PR process                 |\n\n## Development\n\n```bash\npnpm install \u0026\u0026 pnpm build    # Install and build all packages\npnpm test                      # Run tests (3,288 test cases)\npnpm dev                       # Start web dashboard dev server\n```\n\nSee [docs/DEVELOPMENT.md](docs/DEVELOPMENT.md) for code conventions and architecture details.\n\n## Contributing\n\nContributions welcome. The plugin system makes it straightforward to add support for new agents, runtimes, trackers, and notification channels. Every plugin is an implementation of a TypeScript interface — see [CONTRIBUTING.md](CONTRIBUTING.md) and the [Development Guide](docs/DEVELOPMENT.md) for the pattern.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcomposiohq%2Fagent-orchestrator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcomposiohq%2Fagent-orchestrator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcomposiohq%2Fagent-orchestrator/lists"}