本文へスキップ
claudemods

After:作業に割り込まない Claude Code プロンプトキュー

Claude Code 用のプロンプトキュー。/after は現在のターンが終わってから次のタスクを実行し、作業の邪魔をしません。

権限

  • モデルを呼び出す(利用枠を消費)独自に Claude へリクエストを送信でき、その分はプランの利用量にカウントされます($.model.* / $.agent.spawn)。
  • プロンプトを読み取る入力内容と会話のトランスクリプトを参照できます(prompt.* / session.append / session.messages)。
  • UI を変更Claude Code の画面に描画します。バンド、ペイン、ステータス表示、トーストなど(ui.render / $.ui.*)。
  • コマンド・ツールを追加あなたや Claude が呼び出せる新しいスラッシュコマンドやツールを登録します($.command.register / $.tool.register)。
  • データを保存プラグイン専用のストアにセッションをまたいでデータを保持します($.store.*)。
検証バージョン
v2.1.303
最終検証日
必要バージョン
Claude Code ≥ 2.1.287
表示先
プロンプト上部、ペイン、トースト、ステータス

Claude Code 内でインストール:

/plugin install after --marketplace midudev/better-claude
すべてのインストール方法 ↓

このModでできること

After は Miguel Ángel Durán(midudev)によるコミュニティ Mod で、Claude Code のプロンプトキューとして働きます。/after <task> は Claude が今の作業を終えたあとに実行するタスクを追加します。Claude が待機中なら、すぐに始まります。/before <task> はタスクを先頭に置き、次に実行されるようにします。要点は、キューのタスクが現在のターンを操作しないことです。順番が来るまで Claude には見えません。

各コマンドは、会話履歴に枠付きのカードで答え、何が変わったかを示します。追加、移動、編集、削除のいずれかです。何かがキューにある間は、プロンプトの上に 1 行のバーが出て、今実行中のものと次に来るものを表示します。/after だけを入力するとパネルが開き、キーボードでタスクの選択、編集、並べ替え、削除ができます。/after remove the tests one や /after tests, write a README explaining them のように自然な言葉でも入力でき、すでにキューにあるものを指していそうなときは Haiku が意味を判断します。

そのほかのコマンドは /after rm 2、mv 3 1、edit 2 <text>、pause、resume、undo、clear、list、help です。作者の README は、Mod に対応した Claude Code(2.1.289 以降)を必要としています。

デモ

録画では、小さなデモプロジェクトで Mod を読み込んだ Claude Code を起動し、README.md を読んでこのプロジェクトが何かを 1 文で答えるよう頼みます。Claude がまだ作業している間に、/after read src/login.js and say what it does in one sentence と入力します。After というタイトルのカードが現れ、Queued #1 と、← new が付いたタスクが表示され、プロンプト上のバーにもそのタスクが出ます。最初の回答が終わると、Mod はキューのタスクをメッセージ(「Prompt from the after plugin」)として送信し、バーは ▶ read src/login.js and say what… nothing else queued に変わり、Claude が作業を始めます。録画はここで終わります。

インストール

インストール欄のどの方法でも使えます。いずれも作者自身のマーケットプレイスから直接インストールします。すでに開いているセッションにインストールする場合は、先に /reload-plugins を実行してください。そのあと Claude が作業している間に /after <task> を試します。

$ install after

Claude Code 2.1.287 以上が必要

作者のマーケットプレイスからインストール: midudev/better-claude

  1. 1.Claude Code 内で1行

    /plugin install after --marketplace midudev/better-claude

    実行中のセッション(v2.1.275 以降)に貼り付けます。最初に Claude Code がマーケットプレイスの追加を確認します。

  2. 2.シェルから

    claude plugin marketplace add midudev/better-claude
    claude plugin install after@better-claude

    その後、すでに開いているセッションでは /reload-plugins を実行してください。

  3. 3.インストールせずに試す

    git clone https://github.com/midudev/better-claude
    claude --plugin-dir ./better-claude/plugins/after

    その1セッションだけ Mod を読み込みます。設定には何も追加されません。

仕組み

Mod 全体は 1 つの hooks モジュール、hooks/register.tsx と、その下にある src/ の素の JavaScript です。/after と /before は即時コマンドとして登録されるので、ターンの途中でも動きます。キューはバーとパネル用に $.state に保持され、セッションごとに $.store にも保存されます。ターンが終わると、次のタスクが Claude に渡されます。

on('turn.complete', async ($, e, next) => {
  const result = await next(e)
  if (e.agentId === undefined) await finishTurn($, e.reason === 'answer')
  return result
})
// ...
reason = (await $.prompt.submit({ text: item.text, asUser: true })).drop

キューが進むのは、メインエージェントの回答で終わったターンだけです。Esc、拒否、API エラーのあとは、次に正常終了するまで止まります。タスクを Claude のコンテキストに入れないために、コマンドは #lq2x9k-3 のような短い参照だけを返し、CommandOutput の ui.render フックがその場所にカードを描きます。さらに session.append フックが、会話記録にあるコマンドの引数を空にします。デモの /after の行がその例です。自然言語の文章は、キューを指している可能性があるときだけ $.model.complete に送られ、モデルが答えなければローカルのヒューリスティクスが引き継ぎます。

カスタマイズ

/config に 3 つのオプションがあります。settings.json の pluginConfigs.after.options でも設定できます。

  • smart(既定はオン):コマンドの意味を小さなモデルに尋ねます。オフならローカル照合のみです。
  • model(既定は haiku):そのリクエストに使うエイリアスまたは完全なモデル ID。
  • display(既定は band):band はプロンプトの上、status はその下に 1 行、none は表示なしです。

権限と安全性

何かを実行する前に、プラグインが読み込むすべてのファイルを確認しました。plugin.json、hooks/hooks.json、hooks/register.tsx、src/ 全体(Node API を使わず、プラグイン外のインポートもない素の JavaScript)、型定義、テストです。プラグインには package.json、インストールスクリプト、バンドル済みや圧縮されたコード、バイナリはありません。リポジトリには MIT の LICENSE ファイルがあります。

UI を変更するのは、バー、パネル、カード、トースト「After · all queued tasks done」です。コマンドを追加するのは /after と /before です。データを保存するのは、キューとカードで、プラグイン専用の $.store に入り、それぞれ 7 日後と 30 日後に整理されます。

知っておくべき点:

  • あなたに代わってプロンプトを送信します。 ターンが終わると、$.prompt.submit が各タスクをあなた自身のメッセージとして送ります。そのあとも Claude は通常の権限設定のもとで動きますが、キューのタスクは見ていない間に実行されるので、/after list やバーで確認してください。
  • キューの文章をモデルに送ります。 自然言語コマンドでは、コマンドとキュー内のタスクの文章を、Claude Code 自身のクライアント($.model.complete、タイムアウト 25 秒)経由で Haiku に送ります。すでに使っているアカウントと同じで、追加のホストやキーはありません。smart でオフにできます。
  • 会話記録を書き換えます。 session.append フックは、/after と /before の引数を、モデルが読む内容から取り除きます。ツール呼び出しやあなたのプロンプトをブロックしたり変更したりはしません。validate はこれを .catch のない介入フックとして挙げますが、コードは README と一致しています。
  • 自分からはネットワークを使わず、シェルコマンドも実行せず、環境変数も読まず、自身のストア以外には書き込みません。scripts/eval-haiku.js は claude -p を起動しますが、開発者向けのスクリプトで、プラグインが読み込むことはありません。
  • ~/.claude/commands に古い after.md と before.md がないか調べ、あれば削除を促すメッセージをログに出すだけです。ファイルには触れません。

claude plugin validate はエラーも警告も報告せず、作者の 20 件のテストは Claude Code 2.1.303 ですべて通りました。

モデルを呼び出す(利用枠を消費)
独自に Claude へリクエストを送信でき、その分はプランの利用量にカウントされます($.model.* / $.agent.spawn)。
プロンプトを読み取る
入力内容と会話のトランスクリプトを参照できます(prompt.* / session.append / session.messages)。
UI を変更
Claude Code の画面に描画します。バンド、ペイン、ステータス表示、トーストなど(ui.render / $.ui.*)。
コマンド・ツールを追加
あなたや Claude が呼び出せる新しいスラッシュコマンドやツールを登録します($.command.register / $.tool.register)。
データを保存
プラグイン専用のストアにセッションをまたいでデータを保持します($.store.*)。

互換性とトラブルシューティング

macOS 上の Claude Code 2.1.303 で確認しました(validate、テスト、デモ)。うまく動かない場合:

  • /after がない:プラグインが /plugin で読み込まれているか確認し、インストール後に /reload-plugins を実行します。
  • ~/.claude/commands の after.md や before.md(After 0.1 の名残)が Mod を覆い隠します。削除してください。
  • 何も実行されない:キューが一時停止中かもしれません。/after resume を実行します。Esc やエラーのあとは、ターンが正常に終わるまで待ちます。
  • パネルには、お使いの画面での入力サポートが必要です。ない場合はコマンドを直接使ってください。
  • Claude が待機中にキューを先に作りたいときは、/after pause を実行し、タスクを追加してから /after resume を実行します。

よくある質問

Claude の作業中に普通に入力するのと /after の違いは?
ターン中に入力した文章はそのターンに差し込まれ、Claude の今の作業を変えてしまうことがあります。/after で積んだタスクは現在のターンが終わるまで Claude のコンテキストに入らず、終わったあとにあなた自身のメッセージとして届きます。
After はモデルを呼び出しますか?
「/after remove the tests one」のような自然言語コマンドで、しかも文章がキュー内のタスクを指しているかもしれないときだけです。Claude Code 自身のクライアント経由で Haiku に尋ねるため、API キーは不要です。smart オプションをオフにするとローカル照合だけになります。
Esc を押すとどうなりますか?
Esc はこれまでどおり実行中のタスクを中断し、キューは後のターンが正常に終わるまで待ちます。/after pause で自分で止め、/after resume で再開することもできます。
再起動や /clear のあともキューは残りますか?
残ります。キューはセッションごとにプラグイン専用のストアへ保存され、再開したセッションでは実行中のタスクなしの状態で見つかります。/clear では新しい会話にもキューが引き継がれます。
プロンプト上のバーを隠すには?
display オプションを status にするとプロンプトの下に 1 行で表示され、none にすると /after を通してのみキューを確認できます。オプションは /config にあります。
Claude Code で動作中の 完了トーストおすすめ

完了トースト

Claude の長いターンが終わると「Done in 2m 14s」のトーストと短いチャイムでお知らせ。デスクトップ通知にも対応します。

  • トースト
  • コマンドを実行
  • UI を変更
  • 音を再生

v2.1.310 で検証済み

Claude Code で動作中の ツール呼び出しカウンターおすすめ

ツール呼び出しカウンター

Claude のツール呼び出しをターンごと・セッションごとに数え、スピナーの横に件数を表示。/tally で内訳も確認できます。

  • スピナー
  • トランスクリプト
  • ステータス
  • ツール呼び出しを傍受
  • UI を変更
  • コマンド・ツールを追加

v2.1.310 で検証済み

同じカテゴリの Mod: タイマー、ToDo、スタンドアップ、スラッシュコマンド。