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.

ソース情報

リポジトリ
AgiFlow/doompi
ソースの最終更新活動
2026年9月21日 00:43
検出された SKILL.md の言語
英語
スター
42
フォーク
4

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
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.
GitHubで見る