Parallel Chores
Updated
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>/.
Command reference
CHORE_ID is the ID that add prints.
| 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.
| 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:
| 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 |
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_set to a positive measured valuequeue_ bounded_ prompt_ tokens - 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.