Menu The board and trackers

Guides

The board and trackers

Work items run by agents, synced with Jira, GitHub Issues and ClickUp.

The Board page holds work for agents in five columns: To do, Running, Review, Done and Failed. An item is generic (a title, details, and how to run it), so the board works for security reviews, fixes, research or anything else an agent can do.

 To do --Run--> Running --agent finishes--> Review --you accept--> Done
                       \--agent fails-----> Failed

Several boards

Keep separate work apart: a board per team, project, engagement or tracker. The tabs above the columns switch boards (the console remembers the last one), and the counts show how many items each holds.

Connect a tracker

Settings > Connectors adds Jira, GitHub Issues, ClickUp or Linear. A connector imports matching items into To do, and reports each move back to the tracker: a comment when an agent starts, a comment with the agent's result when it finishes, and the tracker state you map to each column.

  1. Create an API token in the tracker (below) and add it in Settings > Secrets, scoped to the connector as connector:<name>. The connector refers to it as secret:<name>; a token written into indra.toml itself is refused.
  2. Add the connector, map the columns to states, and pick the profile, node and target its items run with.
  3. Press Import from <name> on the Board, or set Import every N minutes. With Start an agent on each new item, imported items run on their own, as many at a time as the node allows.
[[connector]]
name    = "jira"
kind    = "jira"
url     = "https://acme.atlassian.net"
email   = "you@acme.com"
project = "SEC"
query   = "labels = agent"              # extra JQL
token   = "secret:jira"
profile = "worker"
target  = "~/code/api"
states  = { running = "In Progress", review = "In Review", done = "Done" }

[[connector]]
name    = "issues"
kind    = "github"
project = "acme/api"                     # owner/repo
query   = "agent"                        # a label
token   = "secret:github"
states  = { running = "in-progress", review = "needs-review", done = "closed" }

[[connector]]
name         = "clickup"
kind         = "clickup"
project      = "901234567"               # list id
query        = "to do, ready"            # statuses to import
token        = "secret:clickup"
poll_minutes = 10
auto_run     = true
states       = { running = "in progress", review = "review", done = "complete" }
TrackerTokenStates
Jira Cloudan API token from your Atlassian account, with the account's emailworkflow status names; indra picks the transition that leads there
GitHub Issuesa fine-grained token with Issues: read and write on the repositorya label, or open / closed
ClickUpa personal API token (pk_...)status names of the list
Lineara personal API key (lin_api_...); project is the team key (ENG), the filter a labelworkflow state names of the team (Todo, In Review, Done)

Requests go through the system curl with the token passed on its stdin, never on the command line. indra only lists open items, comments, and changes state (on GitHub, by adding the label of the new state and removing the labels of the other mapped states). It never deletes an item, and closes one only through a state you map, such as done = "closed".

Be careful with imported text

An imported item's title and description become the agent's instructions, and anyone who can edit the ticket writes them. Run tracker work with a profile whose permission mode and tool rules match how much you trust that tracker: plan or manual to review what it would do, a narrow allowed_tools list for unattended runs, and secrets scoped to that profile only.