Worktrees
Isolated git worktrees per plan; auto-derived branch slug from the plan filename.
RALPHTERM / v0.4.16 / MIT
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
| Surface | Status |
|---|---|
| plan loop · per-task commits, auto-move on completion | supported |
| cross-review · different agent than implementer, 5-dimension single-session | supported |
| review retry · implementer fixes findings, then re-review, with patience / stalemate | supported |
| providers · claude, codex, copilot, gemini, opencode | supported |
| resume · Ctrl+C mid-iteration, rerun, pick up where you left off | supported |
| worktrees · branch flag, plan-slug auto-id, docker isolation | supported |
| notifications · telegram, slack, email, webhook | supported |
dashboard · ralphterm serve, live transcripts + run history | supported |
— 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