Prompt Templates
Dodo can render any task as a prompt for AI coding agents. This is available from both the CLI and the web UI.
Usage
CLI
# Output the rendered prompt to stdout
dodo show abc12345 --prompt
# Pipe to clipboard
dodo show abc12345 --prompt | pbcopy
Web UI
On any task detail page, click the Copy agent prompt button. The rendered prompt is copied to your clipboard.
API
# Get the current template
dodo api prompt-template
# Save a custom template
dodo api put prompt-template -d '{"template": "..."}'
Default Template
The built-in template generates a structured prompt:
I need you to work on the following task.
## Task: {{title}}
- **ID:** {{id}}
- **Status:** {{status}}
- **Tags:** {{tags}}
- **Parent:** {{parent}}
- **Blocked by:** {{blocked_by}}
- **Subtasks:** {{children}}
## Description
{{description}}
## Instructions
Work on this task to completion. When done, mark it complete:
`dodo complete {{id}}`
Custom Templates
Create a .dodo/prompt-template.txt file in your project to override the default:
# Example: minimal template
cat > .dodo/prompt-template.txt << 'EOF'
Complete the following task: {{title}}
{{description}}
Related context:
- Blocked by: {{blocked_by}}
- Subtasks: {{children}}
When finished, run: `dodo complete {{id}}`
EOF
The custom template is loaded from the .dodo/ directory when rendering prompts.
Available Variables
| Variable | Description |
|---|---|
{{id}} | Task ID |
{{title}} | Task title |
{{description}} | Task description (or "No description provided.") |
{{status}} | Task status (open, in-progress, blocked, done) |
{{tags}} | Comma-separated tags (or "none") |
{{parent}} | Parent task title and ID (or "none") |
{{children}} | List of subtask titles and IDs (or "none") |
{{blocked_by}} | List of blocking task titles and IDs (or "none") |
{{blocks}} | List of tasks this one blocks (or "none") |
{{created_at}} | Creation timestamp (ISO 8601) |
{{updated_at}} | Last update timestamp (ISO 8601) |
Variables use {{double_braces}} syntax. All variables are replaced with their values when rendering — unknown variables are left as-is.
Tips
- Keep templates focused — include only the context your agent needs
- Use
{{blocked_by}}and{{children}}to give agents awareness of related work - Include
dodo complete {{id}}so the agent can mark the task done when finished - Commit
.dodo/prompt-template.txtto share the template with your team