> ## Documentation Index
> Fetch the complete documentation index at: https://docs.twill.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Routing

> Map trigger keywords to a mode, agent, and effort — so `/plan` or `/ultra` means the same thing everywhere.

Routing configs decide how a new task runs when it arrives — from any surface. Each config is a row in **Settings → Routing**:

| Field       | Meaning                                                                                                  |
| ----------- | -------------------------------------------------------------------------------------------------------- |
| **Trigger** | The keyword that selects this config, written as `/keyword` (e.g. `ultra`)                               |
| **Mode**    | `agent` (implement), `plan` (plan first), `ask` (read-only Q\&A), or `goal` (iterate until a goal holds) |
| **Agent**   | Which harness + model runs the task (e.g. Codex GPT 5.5)                                                 |
| **Effort**  | `low`, `medium`, `high`, `xhigh` — plus `ultracode` on Claude Code                                       |

Every workspace has an undeletable **`default`** config — the fallback when no trigger matches. New workspaces default to agent mode, Codex GPT 5.5, medium effort. Configs can also carry custom instructions appended to the task.

## Using triggers

Start a task message with the trigger:

```text theme={"theme":"github-dark"}
@twill /ultra fix the race condition in the export worker
```

The trigger is stripped before the agent sees the message. How a trigger fires depends on the surface:

| Surface              | How to fire a config                                               |
| -------------------- | ------------------------------------------------------------------ |
| Web app              | Pick mode/agent directly in the composer                           |
| Slack, Notion, Asana | `/trigger` at the start of the message                             |
| GitHub               | `/trigger` in the text, **or** an issue label matching the trigger |
| Linear               | An issue label matching the trigger                                |

<Note>
  Routing applies to a task's first message only. Follow-ups keep the task's
  existing agent and mode.
</Note>
