コンテンツにスキップ

Claude プラグイン

Claude Code 向け Spantail プラグインは、Claude Code のセッションを エージェント活動として自動で取り込み、さらに Claude Code の中から作業を記録しレポートを作るためのスキルとエージェントを追加します。

Claude Code v2.1.143 以降が必要です。

/plugin marketplace add spantail/spantail
/plugin install spantail@spantail

プラグインを有効化すると、インスタンスの URL とエージェントアクセストークン (先にエージェントを登録してください)、スキルの MCP サーバー用の個人用 API トークン(任意。スキルとエージェントを 参照)の入力を求められます。Claude Code はこの設定をプラグイン単位で保存し、 インストールスコープに関わらず全リポジトリで共有します。ワークスペースと プロジェクトがこの設定に含まれないのはそのためです。インストーラーにスコープを 聞かれたら user scope を選んでください。1 回のインストールで全リポジトリを カバーし、帰属はリポジトリごとに設定します(下記)。

各設定は環境変数(SPANTAIL_API_URLSPANTAIL_AGENT_TOKENSPANTAIL_SEND_SESSION_SUMMARY)で上書きでき、環境変数が優先されます。これらの 上書きはフックにのみ適用されます。同梱の MCP サーバーはプラグインの apiUrl / apiToken の設定を読むため、SPANTAIL_API_URL でインスタンスを 上書きする場合は、プラグイン設定側も同じ値に揃えてください。

フックの動作には bashjqcurlPATH に必要です。フックがターンを失敗 させたり、セッションの終了を妨げたりすることはありません。問題があれば stderr に ログを残してスキップします。

リポジトリのセッションがどのワークスペース・プロジェクトに記録されるかは、 リポジトリ自身に設定します。記録したい各リポジトリで次を実行してください:

/spantail:link

ワークスペースとプロジェクトの ID を尋ねられるので、サイドバーのコピーボタン (ワークスペーススイッチャーとプロジェクト一覧)でコピーして貼り付けると、 個人用の .spantail/config.local.json に書き込まれます。このファイルは git 管理外に 置いてください(未 ignore の場合はスキルが案内します)。チームで 共有するリンクは /spantail:link --shared.spantail/config.json に書き込みます。 一度コミットすれば、プラグインをインストールしたコラボレーター全員に適用されます。

これらのファイルに書けるのは workspaceIdprojectId だけです。clone した リポジトリは信頼できない入力であるため、フックはリポジトリ内のファイルから apiUrl やトークンを読みません。リンク済みのリポジトリは帰属を完全に所有し、 個人用の local ファイルはコミット済みの共有ファイルを丸ごと置き換えます。 ワークスペースだけのリンクが、別の場所で設定されたプロジェクトを引き継ぐことは ありません。環境変数(SPANTAIL_WORKSPACE_IDSPANTAIL_PROJECT_ID)は 両ファイルより優先されます。

リンクしていないリポジトリには記録先がなく、セッションは黙ってどこかに 記録される代わりに取り込み時に拒否されます(それでもリンクなしのリポジトリを 一律にあるワークスペースへ送りたい場合は、SPANTAIL_WORKSPACE_ID を ユーザーグローバルに設定します)。各設定がどこから解決されているか、 現在のリポジトリがリンク済みか、直すべき点は何かは、いつでも /spantail:doctor で確認できます。

プラグインのフックが送るのはコンパクトなテレメトリのみです。会話本文・思考・ ツールの入出力がマシンの外に出ることはありません。

  • 毎回の Stop(ターン終了)で: ターンごとのトークン使用量・タイムスタンプ・ モデル名に加え、git ブランチ・リポジトリ URL・作業ディレクトリ・Claude Code の バージョン・プロバイダのリクエスト ID を イベント属性として送ります。送信はバックグラウンドに 切り離して実行されるため、ネットワークが遅くても次のプロンプトが待たされる ことはありません。
  • SessionEnd で: イベントの最終再送(冪等)に続けて、実時間の終了時刻と セッションが触れたプルリクエスト(context.refs)を finalize に送ります。

1 つだけオプトインの項目があります。sendSessionSummary 設定(または単一セッション なら /spantail:summary on)を有効にすると、SessionEnd フックはタイトルをエントリの 説明として送ります。使われるのはそのセッションのプランファイルのタイトル、 プランがないセッションでは transcript 自身のセッションタイトル(Claude Code が 生成するもの。compact または resume したセッションにのみ存在)です。どちらも transcript の構造化レコードから機械的に抽出され、追加の推論は行いません。 どちらもないセッションでは説明は空のままです。 他の説明と同様そのまま保存されてレポートや共有リンクに表示され得るため、 自分で有効にしない限りオフのままです。

名前 用途
/spantail:log-work 作業エントリを作成 — 指示した内容からも、現在のセッションの作業内容からも。現在のセッションの作業を記録した場合、そのセッションのエージェントエントリ(記録済みのもの)が作業エントリに自動で紐づきます。
/spantail:log-work #N <duration> [date] GitHub Issue に対して記録します。サーバーがリポジトリのマッピング(GitHub 連携参照)からプロジェクトを解決し、Issue の件名とラベルを補完し、関連するエージェントセッション — テレメトリが記録済みなら(最初のターン完了後)、実行中のセッション自身も含む — を紐づけます。紐づいたセッションにタイトルがあれば、エントリのメモに追記されます。
/spantail:create-report レポートを作成。保存前に必ずプレビューします。
/spantail:summary on|off セッション単位で、セッションのタイトル(プランタイトル、なければ生成されたセッションタイトル)を説明として送るかを切り替え。
/spantail:link [--shared] 現在のリポジトリをワークスペース・プロジェクトにリンク(リポジトリをリンクする参照)。
/spantail:doctor 各設定がどこから解決されているかと、直すべき点を表示。
spantail-work-analyst(エージェント) 作業エントリのふりかえり分析。
spantail-agent-activity-analyst(エージェント) エージェントのセッションテレメトリ分析。

スキルと分析エージェントはあなたとして動くため、個人用 API トークンによる Spantail MCP 接続を使います(フックの書き込み専用エージェント トークンとは別の資格情報です)。この MCP サーバーはプラグインに同梱されています。任意の apiToken を設定すると、インスタンスの /mcp に HTTP であなたとして接続します。フック だけ使う場合は apiToken を空欄のままにでき、CLI も不要です。例外が 2 つあります。 /spantail:doctor/spantail:link は MCP なしで動作します。

別のクライアントから、あるいはプラグインを使わずに MCP を使う場合は、手動で登録します。 MCP を参照してください。

フックのスクリプトは、settings.json に手動で配線し SPANTAIL_* 環境変数を設定すれば 単体でも動きます。手順は プラグインの README を参照してください。プログラムから直接送るには 取り込み API を使います。