AgentBoard

Templates

Templates

Action inputs are MiniJinja templates.

[sources.actions.with]
cmd = "echo {{ item.id }}: {{ item.title }}"

Context

Templates can read:

  • workspace
  • source
  • item
  • action

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"

On this page