Terminal frontend for codex app-server.
Alpha.
- start a new codex thread with
carlos - resume with
carlos resume <SESSION_ID>or pick fromcarlos resume - runtime Ralph mode toggle (
Ctrl+R) with:- prompt auto-injection from
.agents/ralph-prompt.md(or--ralph-prompt) - blocked marker wait state (
@@BLOCKED@@by default) - completion marker detection + auto-exit from Ralph mode (
@@COMPLETE@@by default) - configurable markers (
--ralph-done-marker,--ralph-blocked-marker)
- prompt auto-injection from
- multiline input with
Shift+Enter/Alt+Enter - shell-like input history navigation with
Up/Down - rewind mode for prompt replay/edit (
Esc,Escon empty input) - turn interrupt while agent is running (
Esc) - markdown rendering and code syntax highlighting
- diff rendering with hunk-oriented display
- compact tool/action rows (
Read,Search,Edit,Diff,run ...) - mouse scroll and drag selection with auto-copy on release
- OSC52 clipboard support for SSH sessions
- context usage indicator (
used/max (%)) on the activity line - Ralph mode visual indicators (
RALPH MODElabel, pink KITT/input gutter) - context compaction markers in transcript
If you want to run a repository in Ralph mode, this repo includes a generic starter bundle in
examples/ralph-loop/. That directory is laid out to mirror the root of
the target repository, so you can copy its contents verbatim into another repo and start from
there.
Copy the bundle into the target repo root with:
cp -r examples/ralph-loop/. /path/to/target-repo/The bundle contains only files that belong at the target repo root or under .agents/:
- an example
AGENTS.md - an example
PROGRAM_PLAN.md - ExecPlan guidance in
PLANS.md - a seed ExecPlan in
EXECPLAN_001_example.md - the Ralph prompt in
ralph-prompt.md - the current reviewer prompts:
spec_reviewer.mdandengineering_reviewer.md - an empty
.agents/done/directory placeholder for completed ExecPlans
The intended flow is:
- Copy the contents of
examples/ralph-loop/into the repository you want to automate. - Replace the example ExecPlan with a real one and update
PROGRAM_PLAN.md. - Start
carlosand pressCtrl+R, or launch with:
carlos --ralph-prompt .agents/ralph-prompt.mdcarlos handles the continuation loop inside the TUI, watches for @@BLOCKED@@ and
@@COMPLETE@@, and lets you answer blockers directly in the session.
cargo build --releasecargo run
cargo run -- resume
cargo run -- resume <SESSION_ID>
cargo run -- --ralph-prompt .agents/ralph-prompt.mdcargo testEnter: send message (or steer while a turn is active)Shift+Enter/Alt+Enter: newline in inputUp/Down: input history navigationEsc(while turn active): interrupt running turnEsc,Esc(idle + input non-empty): clear inputEsc,Esc(idle + input empty): enter rewind mode- rewind mode
Up/Down: select prior user prompts (also repositions transcript) - rewind mode
Enter: send selected/edited prompt - rewind mode
Esc: leave rewind mode and restore current draft Ctrl+R: toggle Ralph mode on/off (queued if a turn is currently active)Ctrl+Y: copy selection or last assistant messageCtrl+L: clear selectionPageUp/PageDown: transcript scrollHome/End: jump top/bottom (empty input)F6: invert scroll directionF8orCtrl+P: toggle perf overlay (or setCARLOS_METRICS=1at startup)- mouse wheel: scroll
- left drag: select
- left release: copy selection
Ctrl+C: quit
- SSH clipboard uses OSC52
- currently tested mainly on Linux terminals
- optional perf overlay/report:
CARLOS_METRICS=1
