Templates
Templates
Action inputs are MiniJinja templates.
[sources.actions.with]
cmd = "echo {{ item.id }}: {{ item.title }}"Context
Templates can read:
workspacesourceitemaction
Example values:
{{ workspace.id }}
{{ workspace.path }}
{{ source.id }}
{{ item.id }}
{{ item.title }}
{{ item.status }}
{{ item.url }}
{{ action.uses }}
{{ action.index }}item.raw contains the original Source payload:
{{ item.raw.jira.fields.priority.name }}Filters
AgentBoard registers slugify for conservative path and branch names:
{{ item.title | slugify }}Example:
"Fix Login!" -> "fix-login"Expansion order
AgentBoard renders MiniJinja first, then expands configured path variables:
- leading
~/ $VAR${VAR}
Example:
root = "$WORKTREE_ROOT/{{ item.id | slugify }}"Action hash
AgentBoard hashes the rendered Action inputs. That hash is part of retry identity:
(source_id, item.id, source_action_index, rendered_action_hash)If a template renders different inputs, AgentBoard treats it as new work.
Examples
Create one worktree per item:
[sources.actions.with]
repo = "~/Projects/MyProject"
root = "~/Projects/MyProject.worktrees/{{ item.id | slugify }}"
branch = "{{ item.id | slugify }}"Open a terminal tab:
[sources.actions.with]
cmd = "zellij action new-tab --name {{ item.id | slugify }}"
cwd = "~/Projects/MyProject"