---
title: Trackers overview
description: Where your issues live. AO fetches them, assigns them to sessions, and updates them as work progresses.
---

The **tracker** plugin is how AO fetches issues, creates new ones, and links sessions to them. Three trackers ship.

<PluginGrid>
	<PluginCard
		name="GitHub"
		logo="github"
		href="/docs/plugins/trackers/github"
		description="Issues + PRs via the gh CLI. Default."
	/>
	<PluginCard
		name="GitLab"
		logo="gitlab"
		href="/docs/plugins/trackers/gitlab"
		description="Issues + MRs via the glab CLI. Self-hosted supported."
	/>
	<PluginCard
		name="Linear"
		logo="linear"
		href="/docs/plugins/trackers/linear"
		description="Linear issues. Direct API key or Composio-mediated."
	/>
</PluginGrid>

## What a tracker does

1. **Fetch an issue** by id — used by `ao spawn 42` to build the agent's prompt.
2. **Create an issue** — used by a few helper workflows (e.g. CI self-healing can file a follow-up).
3. **Close / comment** — the agent's wrappers use these when it wraps up work.
4. **Return the issue URL** so the dashboard can link to it.

Tracker and SCM are separate plugins on purpose — you might track issues in Linear but host code on GitHub. Just set them independently:

```yaml
tracker: linear
scm: github
```
