ralphterm

RALPHTERM / v0.4.16 / MIT

Hand off the plan. Come back to a branch.

RalphTerm turns a markdown checkbox plan into an unattended engineering run. One agent implements task by task in a real terminal. A different agent cross-reviews the diff across quality, implementation, testing, simplification, and docs. The loop keeps going until the plan is done and the review is clean.

— capabilities

SurfaceStatus
plan loop  ·  per-task commits, auto-move on completionsupported
cross-review  ·  different agent than implementer, 5-dimension single-sessionsupported
review retry  ·  implementer fixes findings, then re-review, with patience / stalematesupported
providers  ·  claude, codex, copilot, gemini, opencodesupported
resume  ·  Ctrl+C mid-iteration, rerun, pick up where you left offsupported
worktrees  ·  branch flag, plan-slug auto-id, docker isolationsupported
notifications  ·  telegram, slack, email, webhooksupported
dashboard  ·  ralphterm serve, live transcripts + run historysupported

— how it works

1. You write the plan. A markdown file. Each - [ ] is a task — one prompt's worth of work, with the validation command that proves it's done. That's the input; nothing else.


2. The implementer picks tasks. RalphTerm spawns your chosen agent (claude, codex, …) inside a real PTY and hands it the plan. The agent picks the next - [ ], edits files, runs your validation command, commits, ticks the box. Repeats until the plan is done.


3. A different agent cross-reviews. When the implementer signals done, a separate reviewer session — different vendor, different model, your choice — walks the diff across five dimensions: quality, implementation, testing, simplification, documentation. Critical findings get sent back to the implementer with a retry budget. The branch only lands when the cross-review is clean.


4. You walk away. Per-task commits + transcripts let you read what happened. A web dashboard, notifications (Telegram, Slack, Email, Webhook), and clean Ctrl+C resume mean you don't have to babysit it. Come back to a finished branch — or a clear "here's what blocked" if the cross-review couldn't be satisfied.

— trace

input

# docs/plans/imports.md

## Validation Commands
- `cargo test --all`

### Task 1
- [ ] Replace ad hoc imports
- [ ] Run validation

run

$ ralphterm docs/plans/imports.md

task 1: implementation committed
phase 1: reviewer found missing coverage
fixer: added regression test
phase 3: review clean

output

branch: imports-plan

commits:
  implement task 1
  address review feedback

status: ready for human review

— invoke

$ ralphterm docs/plans/feature.md                      # write plan, walk away (implement + cross-review)
$ ralphterm --tasks-only docs/plans/feature.md         # implement only, no cross-review
$ ralphterm serve                                      # web dashboard at 127.0.0.1:7878

Implementer defaults to claude; reviewer defaults to codex. Override either with --claude-command / --review-command to mix any combination of agents.

— install

$ curl -sSf https://ralphterm.rayforcedb.com/install.sh | sh
$ brew tap RayforceDB/ralphterm https://github.com/RayforceDB/ralphterm && brew install ralphterm
PS> irm https://ralphterm.rayforcedb.com/install.ps1 | iex
$ cargo install ralphterm

The shell and PowerShell installers land ralphterm in ~/.local/bin and support ralphterm update. Homebrew manages upgrades through brew upgrade ralphterm.

— more

Worktrees

Isolated git worktrees per plan; auto-derived branch slug from the plan filename.

Notifications

Telegram, Slack, Email (SMTP), and Webhook deliveries on plan / task / review / rate-limit events.

Docker

Optional containerized execution. Honors RALPHTERM_EXTRA_VOLUMES + EXTRA_ENV.

Multi-provider

Bundled wrappers for Codex, Copilot, Gemini, and OpenCode CLIs.

Review retry

Implementer + reviewer fixer loop with patience / stalemate detection.

Plan auto-move

Successful plans relocate to docs/plans/completed/ on configurable opt-in.

— next