Results
rwx results --json returns a run and its tasks as JSON. This page describes every field in that output. See rwx results for how to invoke the command and the available flags.
The shape depends on what you request:
- A run (e.g.
rwx results <run-id>): the run-level fields plus the fullTaskstree. See Run. - A single task (e.g.
rwx results <run-id> --task <key>): a single Task object, with no run-level fields.
Parsing with jq
--json pairs well with jq. Keep the two shapes above in mind, and note that tasks nest recursively under Subtasks — use recurse(.Subtasks[]?) to walk the whole tree rather than just .Tasks[].
# Overall run result
rwx results <run-id> --json | jq -r '.Status.Result'
# Every command task as "key<tab>result"
rwx results <run-id> --json | jq -r '.Tasks[] | recurse(.Subtasks[]?) | select(.TaskType == "command") | "\(.Key)\t\(.Status.Result)"'
# Just the failed command tasks, at any depth
rwx results <run-id> --json | jq -r '[.Tasks[] | recurse(.Subtasks[]?)] | .[] | select(.TaskType == "command" and .Status.Result == "failed") | .Key'
# Output values across all command tasks
rwx results <run-id> --json | jq -r '.Tasks[] | recurse(.Subtasks[]?) | select(.TaskType == "command") | .Outputs.Values[]? | "\(.Key)=\(.Value)"'
# A single task's result (task-scoped shape)
rwx results <run-id> --task <key> --json | jq -r '.Status.Result'
Top-level fields
Every result includes these fields:
| field | type | description |
|---|---|---|
ID | string | The ID of the run or task you requested. |
RunID | string | Present for a run-scoped result (equal to ID). |
TaskID | string | Present for a task-scoped result (equal to ID). |
ResultStatus | string | The result of the requested run or task. For a run, this will be one of: succeeded, debugged, sandboxed, failed, no_result.For a task, this will be one of: succeeded, failed, no_result. |
Completed | boolean | Whether the run/task has reached a terminal state (e.g. completed or cancelled). |
ResultPrompt | string | The failure-investigation prompt. Present when one is available (for example, with --wait). See agentic run loops. |
Run
Returned when you request a run. It has the top-level fields described above, plus the run's own fields, and the full Tasks tree.
Some attributes are only present for certain types of runs, depending on how the run was triggered. For example, attributes related to repositories and merge requests are only present for runs triggered by a git event.
Attributes
| attribute | type | description |
|---|---|---|
Status | Run Status | |
StartedAt | string (ISO 8601) or null | |
CompletedAt | string (ISO 8601) or null | |
CompletedRuntimeSeconds | integer or null | |
RepositoryName | string | |
RepositorySlug | string | |
RepositoryUrl | string | |
Branch | string or null | |
Tag | string or null | |
CommitSha | string | |
Author | string | May be a name, email address, or GitHub username, depending on the trigger. |
CommitMessage | string | |
RwxUserEmail | string or null | |
DefinitionPath | string | |
Trigger | string | One of cache-rebuild, cli, cron, dispatch, github.push, github.pull_request, gitlab.push, gitlab.tag-push, gitlab.merge-request, forgejo.push, forgejo.pull-request, webhook. |
TargetedTaskKeys | string[] | Only present for runs that target specific tasks. |
MergeRequestUrl | string or null | Vendor-agnostic (GitHub, GitLab, Forgejo/Codeberg) |
MergeRequestTitle | string or null | Vendor-agnostic (GitHub, GitLab, Forgejo/Codeberg) |
MergeRequestNumber | integer or null | Vendor-agnostic (GitHub, GitLab, Forgejo/Codeberg) |
MergeRequestLabel | string or null | Vendor-agnostic (GitHub, GitLab, Forgejo/Codeberg) |
Messages | Message[] | Includes any messages or tips that would have been shown in the UI. |
Title | string | |
VcsProvider | string | One of github, gitlab, forgejo. |
Init | object or null | Any init parameters passed to the run (returned as key/value pairs) |
WebhookDefinitionKey | string or null | See webhook triggers. |
DispatchDefinitionKey | string or null | See dispatch triggers. |
Tasks | Task[] |
Run Status
| attribute | type | description |
|---|---|---|
Result | string | One of succeeded, debugged, sandboxed, failed, no_result. |
Execution | string | One of waiting, in_progress, finished, aborted. |
WaitingSubStatus | string | One of waiting_for_lease, waiting_for_manual_start, not_applicable. |
AbortedSubStatus | string | One of cancelled, timed_out, internal_failure, initialization_error, not_applicable. |
Task
Each entry in a run's Tasks (and in a task's Subtasks), and the top-level object when you request a single task. Only the latest attempt of each task is included; AttemptNumber / LatestAttemptNumber / AttemptCount expose the attempt history.
Every task carries an ID. When a task is the top-level result, it also carries TaskID (equal to ID) and the other top-level fields.
Attributes
| attribute | type | description |
|---|---|---|
ID | string | The task ID. |
Key | string | |
AttemptNumber | integer | |
LatestAttemptNumber | integer | |
AttemptCount | integer | |
TaskType | string | One of command, parallel, package, embedded-run, or app-config. |
CacheKey | string or null | SHA of the key used to determine if the task has a cache hit. |
CacheHitFromTaskID | string or null | If the given task was a cache hit, this is the ID of the task whose output was re-used. |
Status | Task Status | |
StartedAt | string (ISO 8601) or null | |
DebugReadyAt | string (ISO 8601) or null | Only present when a task was debugged. |
DebugStartedAt | string (ISO 8601) or null | Only present when a task was debugged. |
DebugEndedAt | string (ISO 8601) or null | Only present when a task was debugged. |
CompletedAt | string (ISO 8601) or null | |
CompletedRuntimeSeconds | integer or null | |
PreparingRuntimeSeconds | integer or null | The duration between when the task started and when execution started (e.g. when layers for the task are assembled). |
ExecutionRuntimeSeconds | integer or null | The duration of the user-provided code execution. |
PostProcessingRuntimeSeconds | integer or null | The duration of the post-processing of the task's output (e.g. uploading artifacts and cleaning up). |
SandboxReadyAt | string (ISO 8601) or null | Only present when a task was sandboxed. |
SandboxStartedAt | string (ISO 8601) or null | Only present when a task was sandboxed. |
SandboxEndedAt | string (ISO 8601) or null | Only present when a task was sandboxed. |
Messages | Message[] | Any messages that would have been shown in the UI. |
Env | object | The sanitized environment variables available to the task. |
ArtifactCount | integer | The number of artifacts produced by the task. To pull artifacts, see Artifacts. |
TestCount | integer or null | See test results. |
FailedTestCount | integer or null | More actionable information on failures will be in the LLM-friendly Prompt node. |
Tips | Tip[] | |
Init | object or null | Similar to run-level init key/value pairs - only relevant for embedded runs. |
PackageParams | object or null | Key/value pairs specifically exposed to subtasks of packages. |
ExecutionStartedAt | string (ISO 8601) or null | |
ExecutionFinishedAt | string (ISO 8601) or null | |
Agent | Agent Specification or null | |
ApproximateLogBytes | integer | |
Outputs | Outputs | |
RawDefinition | string (YAML) | The YAML definition of the task as of the time it ran (before expressions have been evaluated). |
Subtasks | Task[] |
Task Status
| attribute | type | description |
|---|---|---|
Result | string | One of succeeded, failed, no_result. |
Execution | string | One of not_generated, waiting, ready, running, finished, aborted, skipped, user_error. |
AbortedSubStatus | string | One of cancelled, subtasks_retried, terminated, timed_out, approval_request_denied, background_process_failure, before_hook_failure, after_hook_failure, internal_failure, spot_interrupted, app_failure, not_applicable. |
FinishedSubStatus | string | One of cache_hit, executed, sandbox_closed, app_stopped, not_applicable. |
WaitingSubStatus | string | One of not_ready, waiting_for_approval, waiting_for_duplicate_task, waiting_for_lease, waiting_for_app, not_applicable. |
Message
Appears in a run's Messages, a task's Messages, and a Tip's Details.
| attribute | type | description |
|---|---|---|
Type | string | The message category. For runs, one of error, cancelled_reason, waiting_for_manual_start, warning. For tasks, one of user_error, produced_error, timed_out, cancelled_reason, skip_reason, invalid_dynamic_tasks, warning, info. |
Message | string | |
Advice | string or null | |
FileName | string or null | |
Line | integer or null | |
Column | integer or null | |
StackTrace | Stack Frame[] or null | |
Frame | string or null |
Stack Frame
An entry in a Message's StackTrace.
| attribute | type | description |
|---|---|---|
FileName | string or null | |
Line | integer or null | |
Column | integer or null | |
Name | string or null |
Outputs
| attribute | type | description |
|---|---|---|
Values | Output Value[] | |
Links | Output Link[] |
Output Value
See output values.
| attribute | type | description |
|---|---|---|
Key | string | |
Value | string |
Output Link
See Links.
| attribute | type | description |
|---|---|---|
Name | string | |
Url | string |
Agent Specification
See Agent Specifications.
| attribute | type | description |
|---|---|---|
Cpus | integer | |
MemoryGb | integer | |
DiskSizeGigabytes | integer |
Tip
| attribute | type | description |
|---|---|---|
Key | string | |
Details | Message |