Skip to main content

doom-runner

Manage long-running commands started by bash: dev servers, watchers, builds, tails, and anything that prompts for input. Trigger when a command needs to outlive the current turn, when bash output was truncated, or when a background process needs to be inspected, followed, given input, or stopped.

Quellinformationen

Repository
AgiFlow/doompi
Letzte Quellaktivität
21. September 2026 um 00:43
Erkannte Sprache von SKILL.md
Englisch
Sterne
45
Forks
4

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
doom-runner
description
Manage long-running commands started by bash: dev servers, watchers, builds, tails, and anything that prompts for input. Trigger when a command needs to outlive the current turn, when bash output was truncated, or when a background process needs to be inspected, followed, given input, or stopped.
# doom-runner `bash` supervises what it starts. A command that outlives the background threshold keeps running instead of blocking the turn. Use the `doom-runner` CLI to manage it without adding another model tool. ## Backgrounding - A command still running after 60 seconds (`DOOM_RUNNER_BG_THRESHOLD_MS`) is moved to the background automatically. You get its unique ID and streaming log path. - Pass `background: true` for commands you already know will not finish: dev servers, watchers, `tail -f`. Waiting out the threshold first wastes a turn. - Pass `interactive: true` when the command will prompt for confirmation or input. It runs under a terminal and backgrounds immediately. Answer it with `doom-runner input <id> --text <text> --enter`, or use Runner Space. - Pass `timeout` (seconds) when you want a command killed rather than supervised. A timeout above the threshold has no effect: the command is promoted first. - Pass `name` to choose the runner name. A name already in use gets a numbered suffix. ## CLI Invoke the CLI through the available Bash tool to inspect or control an existing runner. Do not relaunch its original command to recover output. The CLI inherits `PI_SESSION_ID` from the active Pi session and only accesses that session's runners. A manual shell without `PI_SESSION_ID` fails closed. Use the unique runner ID returned by `bash`: | Command | Purpose | | -------------------------------------------------- | ---------------------------------------------- | | `doom-runner list [--all]` | List active runners, or include completed ones | | `doom-runner status <id>` | Show command, state, backend, and log path | | `doom-runner logs <id> [--lines N] [--follow]` | Read or stream the saved log | | `doom-runner stop <id> [--reason <text>]` | Stop one runner and keep its log | | `doom-runner stop-all [--reason <text>]` | Stop active runners owned by this Pi session | | `doom-runner input <id> [--text <text>] [--enter]` | Send input to an interactive RMUX runner | ## Rules - **Read the log, do not re-run the command.** When output is truncated, the full text is already on disk. Use `doom-runner logs <id>` or standard file search tools against the reported path. - **Read the truncation notice before reading the file.** It states the real file size and line count, so you do not read past the end. - **CLI access is session-scoped.** `list`, direct ID commands, and `stop-all` only access runners owned by the inherited Pi session. - **`input` needs `interactive: true`.** A normal runner does not expose stdin. - **Stop what you no longer need.** Everything still running is stopped when the session ends, but a forgotten dev server holds a port until then. - **Completion delivery depends on the client.** Local DoomPi can notify its agent, but remote MCP callers must not assume that this wakes their chat. Use a bounded status or log read when needed. Do not sleep or poll in a loop, promise automatic continuation, or report a running command as completed. - **Do not pipe to head or tail.** Results are already bounded and the full log is on disk. A tail pipe also leaves the live log empty until the command exits, which blanks the log pane in Runner Space. ## Where things live Run metadata and logs sit under `$PI_CODING_AGENT_DIR/doom-runner/<session-id>/{runs,logs}`. Without an override, `$PI_CODING_AGENT_DIR` defaults to `~/.pi/agent`. Completed metadata and complete raw logs remain readable for seven days. RMUX is bundled for supported macOS and Linux platforms. Non-interactive runs fall back to a supervised subprocess when RMUX is unavailable; interactive runs require RMUX. Eligible simple commands use a command-specific RTK stdin filter after completion. Compound shell commands and unsupported formats keep bounded raw output. `SPC r l` opens Runner Space. Escape returns from logs or an attached terminal.
Auf GitHub ansehen