Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Claude Codeセッション現状確認 2026福岡 / fukuoka-aicoding-...

Claude Codeセッション現状確認 2026福岡 / fukuoka-aicoding-00-beacon

2026.02.25 AIコーディング現状確認会 2026福岡
https://connpass.com/event/383789/

Avatar for monochromegane

monochromegane

February 25, 2026
Tweet

More Decks by monochromegane

Other Decks in Programming

Transcript

  1. Claude Code セッション現状確認 2026 福岡 beacon: Claude Code のセッション状態を可視化する CLI

    ツール 三宅悠介 / Pepabo R&D Institute, GMO Pepabo, Inc. 2025-02-25 AI コーディング現状確認会 2026 福岡
  2. 目次 はじめに . . . . . . . .

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ⁠3 Claude Code のセッション状態を可視化する CLI ツール . . . . . . . . . . . . . ⁠7 ユースケース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ⁠17 まとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ⁠25 2 / 27
  3. Claude Code と並行作業 • Claude Code を tmux で複数セッション同時に動かしている •

    タスクごとにウィンドウを分けて並行作業 ▐▛███▜▌ ▐▛███▜▌ ▐▛███▜▌ ▝▜█████▛▘ ▝▜█████▛▘ ▝▜█████▛▘ ▘▘ ▝▝ ▘▘ ▝▝ ▘▘ ▝▝ 4 / 27
  4. beacon • Claude Code のセッション状態を追跡する自作 CLI ツール • Hook イベントを

    4 つの状態に変換して可視化 • ファイルベースの状態管理のため、デーモン不要 8 / 27
  5. beacon のメタファー • Claude Code のセッションごとにビーコンを設置するイメージ • emit で、状態が変わるたびにシグナルを発信 •

    scan で、全ビーコンのシグナルを受信して一覧表示 ((( ▐▛███▜▌ ▝▜█████▛▘ ▘▘ ▝▝ ))) 9 / 27
  6. 4 つの状態 状態 意味 • started セッション開始 • running エージェントが処理中

    • waiting ユーザーの応答待ち(許可・入力) • idle 処理完了、次の入力待ち 10 / 27
  7. アーキテクチャ write •••• read •••• Claude Code Session ▐▛███▜▌ ▝▜█████▛▘

    ▘▘ ▝▝ Hooks SessionStart UserPromptSubmit PreToolUse Notification Stop SessionEnd beacon emit Signal File beacon scan tmux status line fzf macOS menu bar (SwiftBar/xbar) 12 / 27
  8. beacon emit • Hook から標準入力で JSON イベントを受け取る • イベント種別に応じた状態をシグナルファイルに書き出す •

    引数で任意のメッセージを付与可能 ‣ 例: beacon emit " 🚀"(Hook ごとに設定) 13 / 27
  9. Hooks 設定例 ~/.config/claude/settings.json に追加: { "hooks": { "SessionStart": [ {

    "command": "beacon clean && beacon emit" } ], "PreToolUse": [ { "command": "beacon emit" } ], ... // SessionEnd, UserPromptSubmit, Stop, // Notification も同様に設定 } } 14 / 27
  10. --template の例 beacon scan --template \ '{{range .Signals}}{{.State}}: {{.CustomMessage}} {{end}}'

    出力イメージ: running: 🚀 waiting: 👋 idle: 💤 16 / 27
  11. tmux ステータスバー • --template で各状態の有無を色つき•で表現し、ステータスラインに表示 ‣ • cyan = idle

    ‣ • green = running ‣ • yellow = waiting ‣ • blue = started • ウィンドウを切り替えずに全体を把握 ‣ 表示例: • • • • ‣ → idle・running・waiting が各 1 件以上、started は 0 件 18 / 27
  12. tmux ステータスバー設定例 スクリプト例・抜粋(beacon-status として配置): # idleの例(running, waiting, startedも同様) TEMPLATE=' {{$i:=false}}

    {{range .Signals}} {{if eq .State "idle"}}{{$i = true}}{{end}} {{end}} {{if $i}}#[fg=cyan]•{{else}}#[fg=white]•{{end}} ' beacon scan --scope session -a --template "$TEMPLATE" 2>/dev/null tmux.conf: set -g status-right '#(beacon-status)' 19 / 27
  13. macOS メニューバー • SwiftBar / xbar プラグインとして動作 • --template で色つきインジケータをメニューバーに常時表示

    • ターミナル以外の作業中でも状態を確認できる プラグイン例・抜粋(beacon.5s.sh として配置): HEADER=$(beacon scan --env none --template "$TEMPLATE" 2>/dev/null) echo -e "$HEADER | ansi=true" 20 / 27
  14. --env による環境連携 • --env tmux を指定すると(デフォルト) ‣ emit: tmux 環境情報(セッション名・ウィンドウ・ペイン)も記録

    ‣ scan: シグナルを tmux ウィンドウと紐付けて表示 • --env none を指定すると ‣ tmux に依存せずシグナルファイルのみで動作 ‣ macOS メニューバー等の tmux 外からの利用に対応 21 / 27
  15. ファジーファインダー beacon scan --scope window -a --color=always | fzf --ansi

    • k1LoW/tcmux ライクに動作 • 状態付きの tmux ウィンドウ一覧を表示 • 状態やセッションタイトルを参考にセッションをフィルタ・選択 表示例: 0: beacon/readme (2 panes) | running: "Update README" 1: myproject/main (1 panes) | idle: "Fix bug", waiting: "Review changes" 2: docs/feature (1 panes) 22 / 27
  16. ウィンドウ選択・ジャンプ beacon scan --scope window -a --color=always \ | fzf

    --ansi --tmux 80%,50% \ --preview 'tmux capture-pane -t {1}:{2} -p -e' \ --preview-window=right:50% \ | awk -F: '{print $1":"$2}' \ | xargs tmux switch-client -t • fzf の --tmux でポップアップ表示 • --preview で選択中のペイン内容をプレビュー • 選択したウィンドウにそのままジャンプ 23 / 27
  17. 私の使い方 1. tmux のペインで Claude Code を起動、プロンプトを入力 2. running 中は他のタスクを進めつつ、インジケータをたまに確認

    3. waiting があれば、fzf で対象セッションを選択して指示 • idle より waiting を優先して処理 • started のままはプロンプト検討中に割り込みが入ったケースが多い インジケータ上で、タスク群が左から右へ移動していくイメージ • ← • ← • ← • 24 / 27
  18. まとめ • beacon で Claude Code の並行セッションを一目で管理 • Hook ベースでリアルタイムに状態を追跡

    • tmux / fzf / macOS メニューバーと柔軟に連携 • デーモン不要、ファイルベースのシンプル設計 ((( ▐▛███▜▌ ▝▜█████▛▘ ▘▘ ▝▝ ))) 26 / 27