AO

Plugin catalog

Every plugin that ships with AO, grouped by slot. Mix and match in your `agent-orchestrator.yaml`.

AO has eight plugin slots. Only one plugin per slot is active at a time, and every slot has a sensible default — you don't have to configure anything unless you want to.

Slots at a glance

SlotDefaultWhat it does
Agentclaude-codeWhich AI tool writes the code
Runtimetmux (macOS/Linux), process (Windows)Where the agent process runs
WorkspaceworktreePer-session code isolation
TrackergithubWhere issues live
SCMgithubPRs, CI, reviews
NotifierdesktopWho pings you when something happens
Terminaliterm2 on macOSHow you attach to a running agent
Lifecyclebuilt-inState machine + polling loop (not pluggable)

Agents

Claude CodeAnthropic's CLI coding agent. Session resume via --resume.CodexOpenAI Codex CLI. Session resume via codex resume <threadId>.CursorCursor Agent CLI. One-shot per session.AiderAider pair-programming CLI. No resume; PATH wrappers for PR tracking.OpenCodeOpenCode terminal agent. Session discovery + restore via the OpenCode session API.

Runtimes

tmuxDefault on macOS/Linux. Each agent gets its own tmux window you can attach to.processCross-platform child-process runtime. Required on Windows.

Workspaces

worktreegit worktree per session. Fast, shares the object DB with your main checkout.cloneFull clone per session. Use when your tooling doesn't play well with shared .git.

Trackers

GitHubIssues + PRs via the gh CLI.GitLabIssues + MRs via the glab CLI. Self-hosted supported.LinearLinear issues. Direct API or Composio-mediated.

SCM

GitHubPRs, reviews, and CI status via gh.GitLabMRs, discussions, pipelines via glab.

Notifiers

DesktopNative macOS/Linux notifications. No-op on Windows.DiscordWebhook-based Discord messages with rich embeds.SlackSlack incoming webhooks.WebhookGeneric HTTP POST with retries and exponential backoff.ComposioRoute through the Composio toolkit — Slack, Discord, or Gmail.OpenClawLocal OpenClaw gateway for personal notifications.

Terminals

iTerm2Open attached tabs in iTerm2 via AppleScript (macOS only).WebDashboard xterm.js session URL. Cross-platform.

Writing your own

Every plugin is a small Node package that exports a manifest + create() function. See Authoring a plugin for the full contract, loading paths, and the core utilities available to plugins.

The fastest path is ao plugin create — it scaffolds a working starter:

ao plugin create --slot notifier --name pagerduty