Tasks
A task is a piece of work you ask Metaphor to handle.
It keeps your request, the agent’s work, and the resulting code changes together in one place.
Use a task to fix a bug, build a feature, update documentation, or make any other change to your project.
What’s in a task
Every task has:
- Request — what you want Metaphor to do
- Repository — the GitHub repository you want the agent to work in
- Worktree — an isolated working directory created for the task
- Agent — Claude Code, Codex, or another agent Metaphor can coordinate
- Session — the agent’s progress, Git changes, and usage for the run
Tasks can start from the desktop app or Slack. See Slack.
How tasks run
Created
You submit a request. Metaphor records the task and prepares an isolated worktree.
Running
The agent works inside the task’s worktree. You can follow the session and inspect the changes as it works.
Verifying
With Handoff on, Metaphor verifies the work against the task’s checks. If a check fails, Metaphor sends the relevant context back to the agent so it can continue working.
Ready
Once the work is ready, what happens next depends on Handoff. With Handoff on, Metaphor commits and pushes the changes and creates a pull request.
Parallel tasks
You don’t have to finish one task before starting another.
Each task gets its own worktree, so multiple tasks can work on the same repository without mixing their changes.
For example, one task could fix a bug while another adds a new feature.
Learn more about Worktrees.
Usage
Each task records token usage and session statistics, so you can see what a run used and how long it took.
Review the result
The task keeps the history of the work, while the pull request brings the resulting changes together for review.
With Handoff on, Metaphor creates the pull request for you. You can review the changes, request follow-up work, or merge when you’re ready.
Learn more about Handoff.
