Skip to main content

Task Commands

The genie task command group manages the full task lifecycle — from creation through stage transitions to completion. Tasks are stored in PostgreSQL and support priorities, dependencies, blocking, tagging, and execution locking.

genie task create

Create a new task.

genie task list

List tasks with filters.

genie task show

Show task detail. Accepts task UUID or #seq shorthand.

genie task move

Move a task to a new stage in its pipeline.
Stages follow the task type’s pipeline. For the default software type:

genie task assign

Assign an actor to a task.

genie task tag

Add tags to a task.

genie task comment

Add a comment to a task. Comments are used by skills to log progress, trace findings, and fix attempts.

genie task block

Mark a task as blocked with a reason.

genie task unblock

Unblock a task.

genie task done

Mark a task as done. This sets the task status to done — it does not move the task to a stage.
genie task done is a status change, not a stage move. It is separate from genie task move --to ship. Use done when the task is fully complete. Use move to advance through pipeline stages.

genie task checkout

Atomically claim a task for execution. Prevents two agents from working on the same task simultaneously.
The lock is stored as checkout_run_id on the task with an execution_locked_at timestamp. Locks expire after 10 minutes by default.

genie task release

Release a task checkout claim after work is complete.

genie task unlock

Force-release a stale checkout. Admin override for when a lock wasn’t properly released (e.g., crashed agent).

genie task dep

Manage task dependencies. Supports three relationship types.
Link a task to an external tracker (GitHub, Jira, etc.).

genie task close-merged

Auto-close tasks whose wish slugs match recently merged PRs.

genie task archive

Archive a task (soft-delete — preserves all data).

genie task unarchive

Restore an archived task to its previous status.

Task ID Formats

Tasks can be referenced by UUID or sequence number:
The #seq shorthand resolves based on the current working directory’s repo. For cross-worktree operations, always use the full UUID.