install
source · Clone the upstream repo
git clone https://github.com/jmagly/aiwg
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jmagly/aiwg "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.agents/skills/ralph-attach" ~/.claude/skills/jmagly-aiwg-ralph-attach && rm -rf "$T"
manifest:
.agents/skills/ralph-attach/SKILL.mdsource content
Al Attach
Attach to a running external agent loop and tail its output log in real time. Press Ctrl+C to detach without interrupting the loop.
Natural Language Triggers
Users may say:
- "ralph attach"
- "attach to ralph"
- "follow ralph"
- "watch ralph output"
- "tail the agent loop"
- "stream ralph progress"
Parameters
--loop-id (optional)
The ID of the loop to attach to. If omitted, attaches to the most recently started active loop.
/ralph-attach --loop-id abc123
When multiple loops are active, you must specify
--loop-id. Run /ralph-status first to list active loop IDs.
Behavior
When triggered:
- Read
to find active loop state files.aiwg/ralph-external/loops/ - If
is not provided, select the loop with the most recent--loop-id
timestamp that hasstartedAtstatus: "running" - If no active loop is found, report clearly and exit
- If multiple loops are active and no
is given, list them and prompt the user to specify--loop-id - Resolve the loop's
path from its state JSON (typicallylogFile
).aiwg/ralph-external/logs/<loop-id>.log - Begin reading the log file from the current end, streaming new lines as they are appended
- Display each new line to the user as it arrives, prefixed with a timestamp
- Continue until the user presses Ctrl+C or the loop reaches a terminal state (
,succeeded
,failed
)aborted - On loop completion, print a final status banner and exit cleanly
Output format while tailing:
[10:42:01] Agent loop abc123 — ACTIVE (iteration 3/10) [10:42:01] Running verification: npm test [10:42:03] PASS src/auth/auth.test.ts [10:42:03] Tests: 12 passed, 0 failed [10:42:04] Iteration 3: VERIFIED — criteria met [10:42:04] Agent loop: SUCCESS
On loop completion:
═══════════════════════════════════════════ Agent Loop Completed: SUCCESS Loop ID: abc123 Iterations: 3 Duration: 4m 12s Report: .aiwg/ralph-external/reports/abc123.md ═══════════════════════════════════════════ Detached from loop abc123.
Error Handling
No active loops:
No active agent loops found. Start one with: aiwg ralph "your task" --completion "criteria" Or check completed loops with: /ralph-status --all
Loop ID not found:
Loop 'xyz999' not found in .aiwg/ralph-external/loops/. Active loops: abc123 — Fix auth tests (running, iteration 2/10) def456 — Migrate to ESM (running, iteration 5/20) Attach with: /ralph-attach --loop-id abc123
Log file missing or unreadable:
Cannot read log for loop abc123. Expected: .aiwg/ralph-external/logs/abc123.log Check that the loop process is still running and has write access to the log directory.
Multiple loops active (no --loop-id):
Multiple active agent loops. Specify which to attach to: abc123 — Fix auth tests (running, iteration 2/10, started 10:38) def456 — Migrate to ESM (running, iteration 5/20, started 09:15) Usage: /ralph-attach --loop-id <id>
State File Location
- Loop states:
.aiwg/ralph-external/loops/<loop-id>.json - Loop logs:
.aiwg/ralph-external/logs/<loop-id>.log - Reports:
.aiwg/ralph-external/reports/<loop-id>.md
Examples
Example 1: Attach to the only active loop
/ralph-attach
Response: Streams live output from the single running agent loop.
Example 2: Attach to a specific loop by ID
/ralph-attach --loop-id abc123
Response: Streams output only from loop
abc123.
Example 3: Detach without stopping
Press
Ctrl+C while attached.
Response: Returns to normal prompt; the agent loop continues running unaffected.
Related
— Check loop IDs and current iteration progress/ralph-status
— Stop a loop entirely/ralph-abort
— Resume a paused loop/ralph-resume
— Start a new crash-resilient external loop/ralph-external
References
- @$AIWG_ROOT/src/cli/handlers/ralph.ts — Al handler (attachToLoopOutput)
- @$AIWG_ROOT/src/cli/handlers/ralph-launcher.ts — Loop launcher and state management
- @$AIWG_ROOT/agentic/code/addons/ralph/README.md — Al documentation
- @$AIWG_ROOT/tools/ralph-external/README.md — External loop architecture