# Parallel Chores

[Docs](https://www.rightnowai.co/docs) / [RightNow Agent](https://www.rightnowai.co/docs/agent) / [Parallel Chores](https://www.rightnowai.co/docs/parallel-chores)

Updated 2026-10-11

> **Release status**
>
> RightNow Agent, the terminal coding agent, is paused. Its guides stay online as reference.

**RightNow Agent** includes a persistent local chore queue. Use it when work can be expressed as typed steps that the queue can verify.

## Queue your first chore

Save this request as `request.json` and run the commands below from the same directory. Each directory has its own queue, stored under `<RIGHTNOW_HOME>/chore-queues/`.

**JSON**

```json
{
  "objective": "Check repository status",
  "objective_postcondition": "git status exits zero",
  "steps": [
    {
      "kind": "check_command",
      "program": "git",
      "args": ["status", "--short"],
      "scopes": ["."],
      "expected_exit_code": 0
    }
  ]
}
```

**Text**

```text
rightnow chore add request.json
```

**Text**

```text
rightnow chore run
```

**Text**

```text
rightnow chore status
```

## Command reference

`CHORE_ID` is the ID that `add` prints.

**rightnow chore commands**

| Syntax | Behavior |
| --- | --- |
| rightnow chore add FILE | Add one chore from a JSON request; prints its ID. |
| rightnow chore run | Drain eligible work until no more can start; prints a JSON summary. |
| rightnow chore run --background | Apply configured background and AC-power policy while draining. |
| rightnow chore status | List chores that are queued, running, verified-done, failed-with-reason, or cancelled. |
| rightnow chore status --json | Emit the persisted queue state as JSON. |
| rightnow chore pause | Pause at transaction boundaries. |
| rightnow chore resume | Unpause; it does not start work. |
| rightnow chore cancel CHORE\_ID | Request cancellation at the next transaction boundary. |
| rightnow chore retry CHORE\_ID | Requeue a failure from its last verified checkpoint. |

## Request format

A request needs `objective`, `objective_postcondition` (a human note; typed step checks decide completion), and 1 to 128 `steps`. The optional integer `priority` (default 0) runs higher values first, then older chores.

**Chore step kinds**

| Step kind | Behavior and fields |
| --- | --- |
| write\_file | Write the file atomically. path, contents |
| replace\_exact | Replace text that must occur exactly that many times. path, old, new, expected\_occurrences |
| one\_call\_write\_file | One bounded model turn that must write exactly contents to path. prompt, path, contents; optional read\_scopes, timeout\_secs |
| check\_command | Run a program without a shell as a check; scopes lists every path it reads. program, scopes; optional args, cwd, expected\_exit\_code (default 0), timeout\_secs |
| external\_transaction | Always fails from the CLI: no executor is registered. transaction\_kind, payload, postcondition, scopes |

Steps time out after 5 minutes by default (24 hours at most). File contents are capped at 8 MiB, model prompts at 64 KiB, and a queue at 10,000 chores.

## Default policy

The shipped configuration does not set these `[rightnow]` keys, so parser defaults apply:

**Chore policy defaults**

| Key | Default |
| --- | --- |
| chore\_queue\_background | false |
| chore\_queue\_parallelism | unset: one worker (range 1 to 64) |
| chore\_queue\_bounded\_prompt\_tokens | unset |
| chore\_queue\_heavy\_background | false |
| fan\_out\_transactions | false |

> **Shipped default**
>
> The shipped configuration performs no background chore execution and makes no parallel-speed claim.

## Enable bounded parallel work

A `chore_queue_parallelism` value above one requires all of these, or queue setup fails:

- `chore_queue_bounded_prompt_tokens` set to a positive measured value
- an active default model with a `model_provider`
- a context window on the model or provider that exceeds the bounded prompt ceiling

Only chores with disjoint scopes run together. Background heavy work (model turns and checks) also requires both background settings, confirmed AC power, and energy saver off; foreground `chore run` skips that policy. Parallel execution means concurrency across independent requests, not GPU batching or a provider-speed guarantee.

For help with a rejected request or invalid capacity settings, continue with [Troubleshooting](https://www.rightnowai.co/docs/troubleshooting).

## Previous

[Memory](https://www.rightnowai.co/docs/memory)

## Next

[Configuration](https://www.rightnowai.co/docs/configuration)
