Tickets
Tickets coordinate work between agents and across sessions. They're markdown files with dependencies, assignments, and status tracking. When an agent completes a ticket, blocked dependents automatically become available.
Why Use Tickets?
- Async coordination — Agents work independently, tickets keep them in sync
- Dependencies — Ensure work happens in the right order
- Persistence — Tickets survive sessions and restarts
- Auditing — Track what was done and by whom
Create a Ticket
ayo ticket create "Process Q1 expense reports"
This creates a ticket and returns its ID (e.g., abc123).
Assign to an Agent
ayo ticket create "Process Q1 expense reports" -a @finance
The -a flag assigns the ticket to a specific agent.
Add Dependencies
Create a ticket that depends on another:
# Create first ticket
ayo ticket create "Process expenses" -a @processor
# Returns: abc123
# Create dependent ticket
ayo ticket create "Review processed expenses" -a @reviewer --deps abc123
The review ticket stays blocked until the processing ticket closes.
Check Ready Tickets
See what's ready to work on:
ayo ticket ready
Filter by agent:
ayo ticket ready -a @reviewer
Ticket Lifecycle
| Status | Description |
|---|---|
open |
Ready for work (dependencies resolved) |
in_progress |
Currently being worked on |
closed |
Completed |
Work on a Ticket
# Start working
ayo ticket start abc123
# Complete the work
ayo ticket close abc123
When you close a ticket, any tickets depending on it automatically become ready.
Add Notes
Add timestamped notes to track progress:
ayo ticket note abc123 "Processed 47 reports, 3 flagged for review"
List All Tickets
# All tickets
ayo ticket list
# Filter by status
ayo ticket list --status open
# Filter by assignee
ayo ticket list -a @finance
Example Workflow
A multi-stage document processing workflow:
# Create the workflow
ayo ticket create "Extract data from invoices" -a @extractor
# Returns: step1
ayo ticket create "Validate extracted data" -a @validator --deps step1
# Returns: step2
ayo ticket create "Import to accounting system" -a @importer --deps step2
# Returns: step3
# Check status
ayo ticket list
# step1: open (assigned to @extractor)
# step2: blocked by step1
# step3: blocked by step2
# As each step completes, the next unblocks automatically
Session vs Global Tickets
By default, tickets are stored per-session. For tickets that should persist
across all sessions, use the --global flag:
ayo ticket create "Weekly report" -a @reporter --global