list_agents

List the agents the panel tracks, live and dormant, with each one's name, state, working directory, flags, and workflow.

Agentread-onlyidempotentMCP tool

Archived agents are excluded unless archived is set, which lists those and only those. Returns one page, most recently updated first; pass the response's nextPageToken back as pagination.cursor for the next one. The summary this returns by default holds only the opening of each agent's prompt, marked by promptTruncated; get_agent returns one whole, and view VIEW_FULL returns every prompt on the page at the cost of a very large reply. Start here to find the id or name another tool needs.

Calling it#

curl -X POST http://127.0.0.1:8787/agent.v1.AgentService/ListAgents \
  -H 'Content-Type: application/json' \
  -d '{}'

Request#

ListAgentsRequest#

FieldTypeDescription
paginationPagination

Where to carry on from.

archivedbool

True to list the archived agents and only those.

viewView

How much of each record to return, since the panel draws every field and a model reading the same endpoint has a context window to spend.

Response#

ListAgentsResponse#

FieldTypeDescription
agentslist of AgentRow

One page of agents, newest first, each with what is drawn beside it.

nextPageTokenstring

Pass this back as the pagination cursor for the next page.

Types#

Pagination#

FieldTypeDescription
limitint32

How many rows to return, capped by the server, and left to the server entirely when unset.

cursorstring

The next_page_token a previous reply carried, or unset to start from the beginning.

at most 2048 characters

AgentRow#

AgentRow is an agent with what is drawn beside it: its mark, its waiting mail and the pull requests on its branch, assembled from those resources.

FieldTypeDescription
agentAgent

The agent itself.

markstring

The letter a person jumps to it by in the panel, if it holds one.

unreadMailbool

Whether mail is waiting that it has not taken.

pullRequestPullRequestStanding

Where the pull request opened from its branch stands.

pullRequestslist of PullRequest

Every pull request opened from its branch, the current one first.

localReviewRoundsint32

How many rounds of local review its own work has been through.

localReviewVerdictReviewVerdict

What the last released local review concluded about the agent's own work, UNSPECIFIED when none has concluded anything.

localReviewTreeReviewTreeStanding

Where the agent's worktree stands against the round that verdict was given on.

Agent#

FieldTypeDescription
idstring

The handle every other call names this agent by, and what mail is addressed to.

namestring

What the panel lists it as, which is also its tmux window name at launch.

cwdstring

The directory it is running in, its own worktree when the workflow provisions one.

flagsstring

The command-line flags its CLI was started with.

promptstring

The whole briefing it was launched with.

paneIdstring

The tmux pane its CLI is running in, which is what capture-pane reads.

stateAgentState

What the panel last decided it was doing, read off the tail of its pane.

sessionIdstring

The CLI's own conversation id, which is the handle a resume needs.

harnessstring

Which CLI it runs, such as claude or codex.

workflowIdstring

Which workflow it is filed under, whose context it took at launch.

createdAtstring

When it was launched, in RFC 3339.

archivedAtstring

When it was hidden from the panel, unset while it is live.

scheduleIdstring

The schedule that launched it, unset for an agent a person or another agent spawned.

alivebool

Whether its pane is still there, which a dormant agent's is not.

hiddenbool

Whether the panel draws a row for it, which changes nothing about the agent itself.

metadatalist of AgentMetadata

Facts it has recorded about its own work, such as the ticket it is implementing.

idempotencyKeystring

The key a retry of its create carried, which is what answers a repeat with this agent.

spawnedByAgentIdstring

Which agent called create, unset for one a person spawned.

parentAgentIdstring

The agent this one is attached to, where spawned_by_agent_id is only who called create.

branchstring

The git branch its worktree is on, unset for an agent that provisions none.

repositoryUrlstring

The canonical web address of the repository its checkout pushes to, such as https://github.com/harrisoncramer/komrad, unset when the checkout is gone or its origin is not a forge.

headShastring

The commit its checkout has checked out, unset when the checkout is gone or git cannot read it.

worktreeRemovedbool

Whether its checkout has been taken away, which leaves the record and the transcript.

sequenceInProgressbool

Whether a merge, a rebase or a cherry-pick is part-way through its checkout, waiting on somebody to settle it.

failedRunbool

Whether a script komrad fired for the agent failed and nobody has looked at it since.

failedRunLogint32

The run log that failure was written to, which is the run the panel opens on.

stateChangedAtstring

When the state above last moved, in RFC 3339.

reportedReasonstring

What the agent's own CLI last reported it was doing, which annotates the state the pane decided rather than replacing it.

roleAgentRole

What the agent was launched to do, which decides the half of the review briefing it is sent.

promptTruncatedbool

Whether prompt holds only its opening, which a summary listing returns so that a page of agents does not carry every briefing they were launched with.

treeStandingReviewTreeStanding

Where the agent's worktree stood when last measured against the round tree_standing_sha names.

treeStandingShastring

The snapshot of the round tree_standing was measured against, empty before any measurement.

movedSinceRoundstring

The snapshot of its newest round while its worktree no longer hashes to it, empty otherwise.

heldAtstring

When a person stopped this agent and took its worktree, empty while nobody is holding it.

PullRequestStanding#

FieldTypeDescription
statePullRequestState

Where the current pull request stands: UNREAD when the repository has not been read, NONE when it has and nothing was opened from the branch, else the state of the current one.

numberint32

The number of the current pull request, unset for UNREAD and NONE.

urlstring

The web address of the current pull request, unset for UNREAD and NONE.

titlestring

The title of the current pull request, unset for UNREAD and NONE.

checksChecks

Where the checks on the current pull request's head stand, UNSPECIFIED for UNREAD and NONE.

mergeabilityMergeability

Where the forge says the current pull request stands against its base and rules, UNSPECIFIED for UNREAD and NONE.

PullRequest#

FieldTypeDescription
idstring

The handle komrad keys the row by.

forgestring

Which forge it lives on, such as github.

providerIdstring

The forge's own stable identifier, such as GitHub's node_id.

urlstring

The web address a person opens.

repositoryUrlstring

The canonical address of the repository it targets.

headRepositoryUrlstring

The canonical address of the repository its branch lives in, empty when the forge no longer has it.

numberint32

The number the forge shows a person, which is per repository.

titlestring

The title as the forge has it.

headBranchstring

The branch the pull request was opened from.

headShastring

The commit at the tip of that branch when last read.

baseBranchstring

The branch it targets.

baseShastring

The commit the target branch was at when last read.

draftbool

Whether the forge marks it a draft.

statePullRequestState

Where it stands, decided from the stored row.

openedAtstring

When it was opened on the forge, in RFC 3339.

changedAtstring

When the forge last saw it change, in RFC 3339.

mergedAtstring

When it merged, in RFC 3339, unset while it has not.

closedAtstring

When it closed, in RFC 3339, unset while it is open; a merged one carries this too.

reviewDecisionReviewDecision

Where the forge says the reviews stand.

checksChecks

Where the checks on its head stand.

mergeabilityMergeability

Where the forge says it stands against its base and rules.

AgentMetadata#

FieldTypeDescription
keystring

What the fact is filed under, such as pr or branch.

valuestring

The fact as the panel shows it, which is why a URL belongs here whole.

View#

View is how much of each record a listing returns, so that the panel, which draws every field, and a model reading the same endpoint through a context window ask for different amounts of the same rows.

ValueDescription
VIEW_SUMMARY

Long text is cut to its opening, and the record says which fields were cut.

VIEW_FULL

Every field whole, however long.

ReviewVerdict#

ReviewVerdict is what an author concluded about a round, which is what tells the agent whether it is done rather than leaving it to read that out of the prose.

ValueDescription
REVIEW_VERDICT_APPROVED

This round is good as it stands.

REVIEW_VERDICT_CHANGES_REQUESTED

The agent should keep working.

REVIEW_VERDICT_COMMENTED

Notes without a conclusion either way.

ReviewTreeStanding#

ReviewTreeStanding is where an agent's worktree stands against the round its last verdict was given on.

ValueDescription
REVIEW_TREE_STANDING_MOVED

The worktree differs from the round and the base does not hold the round.

REVIEW_TREE_STANDING_LANDED

The base holds the round whole and the worktree carries nothing beyond the base.

REVIEW_TREE_STANDING_LANDED_MOVED

The base holds the round whole and the worktree carries new work on top of the base.

AgentState#

AgentState is what the panel last decided an agent was doing, read off the tail of its pane.

ValueDescription
AGENT_STATE_IDLE

The pane is at rest with nothing typed.

AGENT_STATE_THINKING

The CLI is working on a turn.

AGENT_STATE_WAITING

The CLI is blocked on a human answering a selection.

AGENT_STATE_SETTING_UP

The agent is being launched and has no pane to read yet.

AGENT_STATE_FAILED_TO_CREATE

The launch failed, which retry_agent is for.

AGENT_STATE_FAILED_TO_CLEANUP

A delete failed to take the worktree down, and the reason is on the row.

AGENT_STATE_UNCERTAIN

The pane could be read but its tail decided nothing.

AgentRole#

AgentRole is what an agent was launched to do.

ValueDescription
AGENT_ROLE_IMPLEMENTER

An agent that lands work on a branch of its own.

AGENT_ROLE_REVIEWER

A child that reads another agent's work and gives a review.

AGENT_ROLE_ORCHESTRATOR

The agent drawn on a workflow's own row that hands work out.

PullRequestState#

PullRequestState is where a stored pull request stands, decided on the server from its stamps, its draft flag, the checks on its head, its mergeability and the forge's review decision, finished first.

ValueDescription
PULL_REQUEST_STATE_UNREAD

The repository's first sweep has not completed, so nothing is known.

PULL_REQUEST_STATE_NONE

The repository has been swept and nothing was opened from the branch.

PULL_REQUEST_STATE_OPEN

Open with no review decision that settles it.

PULL_REQUEST_STATE_APPROVED

Open and the forge would merge it now: its rules on reviews and checks are met and the branch is level with its base.

PULL_REQUEST_STATE_CHANGES_REQUESTED

Open with a reviewer asking for changes.

PULL_REQUEST_STATE_DRAFT

Still a draft, whatever its reviews say.

PULL_REQUEST_STATE_MERGED

Merged.

PULL_REQUEST_STATE_CLOSED

Closed without merging.

PULL_REQUEST_STATE_FAILING

Open with a failing check on its head, whatever its reviews say.

PULL_REQUEST_STATE_APPROVED_WAITING

Approved on the forge but not yet mergeable: its checks are still running, its branch is behind, or a branch rule is unmet.

PULL_REQUEST_STATE_CONFLICTING

Open and no longer merging cleanly into its base, whatever its reviews say.

Checks#

Checks is where the checks on a pull request's head commit stand, as the forge last reported them.

ValueDescription
CHECKS_NONE

The forge reports no checks on the head.

CHECKS_PENDING

A run is still in flight.

CHECKS_PASSING

Every check passed.

CHECKS_FAILING

At least one check failed.

Mergeability#

Mergeability is where the forge says a pull request stands against its base and its branch rules, as it last computed it.

ValueDescription
MERGEABILITY_UNKNOWN

The forge has not computed it yet.

MERGEABILITY_CLEAN

The forge would merge it now.

MERGEABILITY_UNSTABLE

Its checks are not all passing.

MERGEABILITY_BLOCKED

A branch rule is unmet, such as a required review.

MERGEABILITY_BEHIND

The base has moved past the branch.

MERGEABILITY_CONFLICTING

The branch no longer merges cleanly into its base.

ReviewDecision#

ReviewDecision is where a forge says a pull request's reviews stand.

ValueDescription
REVIEW_DECISION_NONE

The forge has said nothing about the reviews.

REVIEW_DECISION_PENDING

A review the forge requires that nobody has given.

REVIEW_DECISION_APPROVED

The forge counts the pull request as approved.

REVIEW_DECISION_CHANGES_REQUESTED

A reviewer is asking for changes.