Reference

Agent tools

What each tool an agent can call actually does, and which roles typically hold it.

Every agent — a role agent or one you built yourself — acts through a fixed set of named tools. A tool policy decides which of these a given agent may call; this page describes what each tool does. "Typically held by" reflects the default role policies TaskTrooper ships with (backend-developer, frontend-developer, mobile-developer, data-scientist, game-developer, product-manager, system-architect, qa-agent, release-engineer, security-agent, ui-designer) — your own agents and custom agents can be granted any subset.

Shell and files

ToolWhat it doesTypically held by
run_terminalRuns a shell command in the workspace, combined stdout/stderrDeveloper roles, system-architect, qa-agent
read_fileReads a workspace file with line numbers (up to 800 lines a call)Every tool-scoped agent, including on unindexed repositories
write_fileCreates or overwrites a fileWhichever roles hold run_terminal (they travel together)
edit_fileFinds old_string and replaces it with new_string, once or everywhereSame roles as write_file
edit_linesReplaces, inserts after, or deletes a range of line numbersSame roles as write_file
delete_fileDeletes a file, or a directory with recursive: trueSame roles as write_file
move_fileRenames or moves a fileSame roles as write_file

.git and the workspace root itself are refused for every write tool.

Web

ToolWhat it doesTypically held by
fetch_urlHTTP GET, HTML responses stripped to visible textEvery role that holds roleWebTools — developers, product-manager, system-architect, qa-agent
http_requestA full HTTP request (any method, headers, body) against a running build — how PM UAT tests a backend- or API-only acceptance criterion headlessproduct-manager
download_fileDownloads a binary asset (image, font, icon) into the workspaceRides with the workspace write tools; lost in review/QA verdict columns
web_searchKeyless web search (DuckDuckGo, falling back to Bing)Same roles as fetch_url
search_boilerplate_catalogSearches the shared boilerplate repository for a starter stack to copy instead of writing one from scratchDeveloper roles

Code exploration

Read-only. Only read_file (above), grep_code and get_repo_tree work on a repository with no semantic index yet — they read the files directly. codebase_search, expand_symbol_context and get_symbol_skeleton need the index and refuse until one is built, and refuse again on a stale one until it has been re-indexed.

ToolWhat it doesTypically held by
codebase_searchSemantic search over the indexed codebaseDeveloper roles, system-architect (not qa-agent — QA is deliberately black-box)
grep_codeLiteral/regex search over the indexed codebaseDeveloper roles, system-architect, and qa-agent (QA's one code-lookup exception, for finding a start command or a route)
get_repo_treeASCII directory tree of the repositorySame as grep_code
get_symbol_skeletonSignatures of a file or symbol without the full bodyDeveloper roles, system-architect
expand_symbol_contextPulls in the callers/callees around a symbol (dependency-graph BFS)Developer roles, system-architect

Board

ToolWhat it doesTypically held by
list_board_tasksLists tasks on the board (repository-scoped)Every role
list_ready_tasksThe unblocked backlog/todo queue, priority-sortedEvery role
create_board_taskCreates a taskproduct-manager (and any agent granted roleBoardCreateTools)
move_board_taskMoves a task to another columnEvery role
update_board_taskUpdates a task's fields (including before_deploy/after_deploy/rollback_plan)Every role
declare_env_varsDeclares an environment variable the change makes the deployed app read, so the merge waits until it is setDeveloper roles
claim_board_taskClaims an unassigned taskEvery role
delete_board_taskPermanently deletes a task and everything on itproduct-manager only
add_task_commentComments on a taskEvery role
list_task_commentsReads a task's commentsEvery role
add_task_documentAttaches a document (spec, plan) to a taskproduct-manager, system-architect (create roles)
update_task_documentEdits an attached documentSame as add_task_document
list_task_documentsReads a task's attached documents in fullEvery role
record_open_questionsRecords the open questions an analysis raises, answered by the human on the report pagesystem-architect (on an analiz task)
list_open_questionsReads those questions and the human's answers backsystem-architect (on an analiz task)
ask_userAsks the human numbered clarifying questions and blocks the run until they answerEvery role, while the run is allowed to ask
attach_task_fileLinks an already-uploaded file to a taskproduct-manager, system-architect
list_acceptance_criteriaReads a task's acceptance criteriaEvery role
set_criterion_completedMarks a criterion doneDeveloper roles (whichever role implements it)
cancel_criterionDrops a criterion from scope with a reasonSame roles as set_criterion_completed
review_criterionRecords a reviewer's own verdict on a criterionproduct-manager (PM UAT), qa-agent
record_test_casesWrites the QA test round for a taskqa-agent only
set_test_case_resultUpdates one test case's resultqa-agent only
list_test_casesReads the recorded test roundEvery role
get_pipeline_statusReads the most recent QA-gate pipeline runDeveloper roles, system-architect, qa-agent
get_board_summaryBoard-wide counts and statusEvery role
list_projects / create_project / update_projectInitiative projectsRead: every role. Write: product-manager
list_repositoriesLists registered repositoriesEvery role
set_repository_projectsLinks a repository to projectsproduct-manager
list_teamLists board member agentsEvery role
get_project_briefReads the structured project model's brief: what a repository/component is, what it runs, what it talks to; fetched on demand, never injected into a run's contextsystem-architect, developer roles, qa-agent, product-manager
list_component_checksLists each component's CI checks — workflow, purpose, gate, the exact local command that reproduces itsystem-architect, developer roles, qa-agent
list_linksLists what a component talks to and what talks to it (other components, system resources)system-architect, developer roles, qa-agent, product-manager
get_design_systemReads the design system a repository follows — the project base, the repository's layer and the merged tokens, with lint findings; files: true also returns DESIGN.md, design/tokens.json, design/tokens.css and design/INVENTORY.md to write into the repositoryEvery role
propose_design_systemProposes a new version of a project's base or a repository's layer from a design task; approved with the taskui-designer
request_design_systemOpens the design task that derives or updates a design system from existing code — what the Design System tab's button doesui-designer, system-architect, product-manager

Cloud runtime

Where a component actually runs (a connected Vercel/GCP/AWS account, or a custom URL) and what it is doing there right now. get_environment is the lookup; the other three need one bound environment — an account and a resource, not just a URL — and refuse with "no <environment> environment is bound for <component> — the human connects it on the repository's Deploy tab" otherwise.

ToolWhat it doesTypically held by
get_environmentReads one component's environment(s): provider, resource, URL, health, binding statussystem-architect, developer roles, qa-agent, product-manager
query_runtime_logsReads an environment's live application logs (not a CI job's output — that is get_deploy_logs), newest firstDeveloper roles, qa-agent
list_runtime_errorsLists an environment's runtime errors, grouped and deduplicated, with a new flag for errors that started in the windowsystem-architect, developer roles, qa-agent
list_deploymentsLists an environment's recent deployments as the provider reports themDeveloper roles, qa-agent
get_task_previewFinds the task branch's own Vercel preview deployment: status, branch URL, the commit it was built from, and how to get past Deployment Protectionqa-agent, product-manager
start_task_previewBuilds and starts the task's own checkout locally and returns its URL — the fallback when there is no hosted preview to findqa-agent, product-manager

Pull requests

ToolWhat it doesTypically held by
get_task_pull_requestReads a task's PR: state, files, review comments, diffDeveloper roles, system-architect, qa-agent, product-manager (read-only)
commit_task_changesCommits, pushes to the task branch, opens the PR if needed — the only way a chat's edits reach GitHubDeveloper roles only
comment_on_pull_requestPosts a PR comment, or replies inside a review threadDeveloper roles, system-architect
merge_task_pull_requestSquash-merges the task's PR and deletes the branch, then opens (or joins) a releaserelease-engineer only, and only in the Done column

See Git and pull requests for the full merge refusal matrix.

Release

The release engineer's tool surface, from merge_task_pull_request onward. See Deploy targets and recipes → "Releases" for the full flow.

ToolWhat it doesTypically held by
get_releaseReads the release covering a task: status, deploy result, health/smoke/error evidence, verdict, rollbackrelease-engineer only
deploy_releaseDispatches a dispatch-mode release, or a cut batch release's executor (tag/local command/store build); a deploy that never actually starts is left pending for a retry rather than failedrelease-engineer only, and only Done/Released
watch_releaseWatches a release through its deploy and soak window; parks the task while a system sweeper watchesrelease-engineer only, and only Done/Released
run_smoke_checksRuns the release's frozen smoke checks against production right now, read-onlyrelease-engineer only
finish_releaseConfirms a release as shipped; the only way a task reaches Releasedrelease-engineer only, and only Done/Released
rollback_releaseRolls a release back off production: reverts the merge, redeploys or lets the provider's own push-to-deploy redeploy (instant provider rollback only for an on_merge component); refused while a newer release of the component is open or has already shippedrelease-engineer only, and only Done/Released
get_deploy_impactReads what a release did to its component's golden signals: the hour before the deploy against the hour after and the same hour a day earlier, a verdict per signal and overall, and whether the release may roll back on its ownrelease-engineer only
get_deploy_logsReads the log behind a deploy (a release's failed job by default), summarizedrelease-engineer only
list_deploy_templatesLists the deploy recipe catalogDeveloper roles (they get the "set up <env> deploy" tasks) — not the release engineer or the PM
load_deploy_templateReads one recipe in fullSame as above
get_deploy_targetHow a repository ships to an environment (the legacy per-env address record, unrelated to a component's delivery profile)release-engineer, product-manager
update_deploy_targetRecords the address an environment actually answers at (base_url/health_url/logs_url/app_url only)release-engineer, product-manager
record_local_deployRecords a break-glass deploy run made from a machine directly, in the same deploy-run history as the GitHub Actions runsOps-facing agents with board/deploy write access

get_deploy_logs reads a CI/Actions job's output; a bound environment's own live logs and grouped errors come from query_runtime_logs/list_runtime_errors in Cloud runtime instead.

See Deploy targets and recipes.

Production incidents

ToolWhat it doesTypically held by
list_incidentsLists live production incidentsOps-facing agents
get_incidentFull incident: alert payload, timeline, occurrences, remedyOps-facing agents
propose_incident_remedyRecords a diagnosis: kind, steps, evidence, confidenceOps-facing agents
resolve_incidentCloses an incident after verifying recoveryOps-facing agents

See Production incidents.

Browser

Loopback-only (a developer starting its own dev server on 127.0.0.1 is the intended use — see the outbound URL guard in Data directory and security).

ToolWhat it doesTypically held by
browser_navigateOpens a URLDeveloper roles, system-architect, qa-agent, product-manager
browser_screenshotCaptures the current page; with attach_to_task it also saves the image on the taskSame, and ui-designer
browser_clickClicks an elementSame
browser_fillFills a form fieldSame
browser_read_domReads the page's DOM/textSame
browser_wait_forWaits for a condition on the pageSame
browser_set_viewportChanges the viewport sizeSame

Mobile

Drives one device from the shared device park (mobile.Pool) — the first mobile_* call in a run claims a free device, and every later call in that run stays on it. Registered at all only when a device is attached; see Mobile devices and store releases.

ToolWhat it doesTypically held by
mobile_launch_appInstalls/launches the app on the claimed deviceqa-agent, mobile-developer, product-manager (UAT)
mobile_screenshotCaptures the device screen; with attach_to_task it also saves the image on the taskSame
mobile_read_uiReads the current screen's UI treeSame
mobile_tapTaps a coordinate or elementSame
mobile_type_textTypes into the focused fieldSame
mobile_swipeSwipes the screenSame
mobile_wait_forWaits for a condition on the deviceSame
mobile_press_buttonPresses a hardware/system button (back, home)Same
mobile_rotateRotates the device orientationSame
mobile_unlock_deviceUnlocks the device screenSame
mobile_release_deviceEnds the Appium session; leaves the simulator running for the next taskSame

Memory

ToolWhat it doesTypically held by
save_memoryStores a memory for future runs of this agentEvery role
search_memorySearches stored memoriesEvery role
delete_memoryDeletes a stored memoryEvery role

See Memory.

Skills

ToolWhat it doesTypically held by
load_skillLoads a skill's instructions into the runEvery role
create_skillWrites a new skillEvery role that holds load_skill (same policy set)

See Skills and rules.

MCP servers

MCP tools are named mcp_<server_id>_<original_tool_name>; their parameters and descriptions come straight from the MCP server's own tool definitions. GET /v1/tools shows which are currently active. A server you add reaches only the agents whose tool policy names it unless you make it available to all agents; images a tool returns reach the model as pictures. See MCP servers for adding one and for signing in to hosted servers with OAuth.

The reverse direction also exists: a Claude Code CLI session TaskTrooper spawns gets the registry's own tools back over /mcp, named mcp__tasktrooper__<name> — this is how a headless claude run gets list_board_tasks, commit_task_changes, and the rest, without the repository's own checked-in .mcp.json ever being loaded.

Edit this page on GitHub