---
title: "Tags and missions · Ataris docs"
description: "How sessions are tagged, filtered, and grouped, and how missions are set or inferred."
canonical: "https://ataris.dev/docs/concepts/agents"
last-updated: 2026-10-12
---
# Tags and missions

How sessions are tagged, filtered, and grouped, and how missions are set or inferred.

Ataris has no agent registration step. Instead, every session carries `key:value` **tags**, and the dashboard filters and groups sessions by them. [Policies](/docs/concepts/policies) target sessions by tag too.

## Tags you pass

```bash
ataris --agent test-fixer --tag team:infra claude -p "Fix the failing tests"
```

- `--tag key:value`, repeatable.
- `--agent <name>`, shorthand for `--tag name:<name>`. Use one name per job or role, such as `test-fixer` or `dependency-bot`, so you can compare runs of the same agent over time.
- `ATARIS_TAGS`, a comma-separated list, for CI jobs.

## Tags Ataris adds

- `user:<os user>`, and inside a git work tree, `repo:<name>` and `branch:<branch>`. Tags you pass win for the same key.
- `source:cli` and `harness:<claude-code|codex|grok>`, set by Ataris.

## Missions

A **mission** is what the agent was asked to do, such as "Fix the failing auth test". It appears at the top of the session's timeline. The CLI reads it from the agent's prompt, such as the argument to `claude -p`.

## Filtering by tag

```ts
const { sessions } = await ataris.sessions.list({ tag: ["name:test-fixer"] })
```

A session matches when it carries every tag you pass.

