runtag
runtagv0.1.0MIT
Record one child process under XDG so an agent can observe pid and exit later.
インストール
npm install runtagruntag は、1 つの子プロセスをラップし、その pid と終了コードを XDG のディレクトリにある JSON ファイルに記録します。
記録先は、コマンドを実行するリポジトリの外です。
テストの実行のような時間のかかるコマンドを起動し、後で結果を確認しに戻ってくるコーディングエージェントのためのツールです。
runtag は成功か失敗かを判定しません。
ジョブは running か exited のどちらかで、exit_code はプロセスが返した数値です。
- コマンドごとに 1 つのジョブファイル。
runtag exec -- <cmd>...は$XDG_DATA_HOME/runtag/jobs/<id>.jsonに書き込み、その変数が未設定なら~/.local/share/runtag/jobs/を使います。 作業ツリーには何も書かず、execはシェルを使いません。 - 切り離して後で戻る。
runtag exec --detachはジョブの JSON を出力して終了コード 0 で終了し、ジョブごとの監視プロセスが子プロセスの終了を待ってexit_codeを書き込みます。 切り離したプロセスの標準出力と標準エラー出力は破棄します。 - JSON での問い合わせ。
runtag status <id>は 1 つのジョブを出力します。runtag list --root DIR --status runningは、repo_rootかcwdが DIR の中にあるジョブを、新しい順に JSON の配列で出力します。 - 終了コードを作り出さない。
ジョブファイルが
runningのままで監視プロセスがいなくなったとき、statusとlistはorphan: trueを加え、exit_codeを null のままにします。 - 次のコマンドを示す失敗。
runtag が依頼された処理を実行できないときは、stderr に
{"error","do"}を出力し、終了コード 1 で終了します。 子プロセス自身が終了コード 1 で終わった場合は、この形式ではなく、子プロセスの終了コードがそのまま返ります。 - 片付け。
runtag gc --older-than 7dは、終了してからその期間以上たったジョブを削除し、実行中のジョブは残します。
エージェントでの使い方
Section titled “エージェントでの使い方”runtag exec --detach --cwd <repo> -- npm testでコマンドを始め、id を控えます。- ジョブが実行中でなくなるまで待ちます。
runtag 自身は監視しないので、この手順には
spacequery watch runs-in-dir --root <repo> --until status=exitedを使います。 runtag status <id>で終了コードを読みます。orphan: trueの場合は、終了コードが不明なものとして扱います。
runtag のスキルはパッケージの node_modules/runtag/skills/runtag/SKILL.md に含まれています。
gh skill install meganemura/runtag runtag --scope user --agent claude-code で、リポジトリからインストールできます。
runtag には Node.js 20 以降が必要です。
npm i -g runtagnpx runtag --help- runtag がジョブファイルを書き、spacequery がそれを読んで監視します。
ジョブがディレクトリの中にあるかどうかは
runtag list --rootと同じ規則で決まり、orphan のジョブはstatus=exitedを満たしません。