---
title: Plugin catalog
description: 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
| Slot | Default | What it does |
|---|---|---|
| **Agent** | `claude-code` | Which AI tool writes the code |
| **Runtime** | `tmux` (macOS/Linux), `process` (Windows) | Where the agent process runs |
| **Workspace** | `worktree` | Per-session code isolation |
| **Tracker** | `github` | Where issues live |
| **SCM** | `github` | PRs, CI, reviews |
| **Notifier** | `desktop` | Who pings you when something happens |
| **Terminal** | `iterm2` on macOS | How you attach to a running agent |
| **Lifecycle** | built-in | State machine + polling loop (not pluggable) |
## Agents
## Runtimes
## Workspaces
## Trackers
## SCM
## Notifiers
## Terminals
## Writing your own
Every plugin is a small Node package that exports a `manifest` + `create()` function. See **[Authoring a plugin](/docs/plugins/authoring)** 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:
```bash
ao plugin create --slot notifier --name pagerduty
```