token-dashboard について
token-dashboard は、セッションのコスト確認と Token Optimizer のダッシュボード表示を行うスキルです。セッション記録からコストを読み取り、コンテキスト使用量、品質、履歴、スキルを生成したダッシュボードに表示します。
主な機能
- 01ユーザーの表現によるセッションコスト検索
- 02コストの算出基準と部分結果の表示
- 03セッションデータの収集
- 04使用状況ダッシュボードの生成と表示
活用シーン
- 01指定したセッションの推定コスト確認
- 02コンテキスト使用量と履歴の視覚的な確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ alexgreensh/ token-optimizer --skill token-dashboardインストール後、Claude Code で/token-dashboardを入力して読み込まれたか確認します。
詳細
トークンオプティマイザーダッシュボード
ユーザー自身の言葉からセッションのコストを算出し、コンテキスト使用量、品質、セッション履歴、スキルを最新の状態で表示するダッシュボードを開きます。ダッシュボードを開くのは、ユーザーが表示を求めたときだけです。コストについて質問されても、ブラウザーは開きません。
手順
- ランタイムと measure.py のパスを解決する:
RUNTIME="${TOKEN_OPTIMIZER_RUNTIME:-}"
if [ -z "$RUNTIME" ]; then
if [ -n "$CLAUDE_PLUGIN_ROOT" ] || [ -n "$CLAUDE_PLUGIN_DATA" ]; then
RUNTIME="claude"
elif [ -n "$OPENCODE" ] || [ -n "$OPENCODE_BIN" ] || [ -n "$OPENCODE_CONFIG_DIR" ] || [ -n "$OPENCODE_CONFIG" ]; then
RUNTIME="opencode"
elif [ -n "$CODEX_HOME" ]; then
RUNTIME="codex"
# Explicit config-dir env of another harness: same tier as Python's
# detect_runtime() (above CLAUDECODE, which every Claude Code child inherits).
elif [ -n "$HERMES_HOME" ]; then
RUNTIME="hermes"
elif [ -n "$COPILOT_HOME" ] || [ -n "$TOKEN_OPTIMIZER_COPILOT_HOME" ]; then
RUNTIME="copilot"
elif [ -n "$TOKEN_OPTIMIZER_CURSOR_HOME" ]; then
RUNTIME="cursor"
elif [ -n "$TOKEN_OPTIMIZER_ANTIGRAVITY_HOME" ]; then
RUNTIME="antigravity"
elif [ -n "$GROK_HOME" ] || [ -n "$TOKEN_OPTIMIZER_GROK_HOME" ]; then
RUNTIME="grok"
elif [ -n "$CLAUDECODE" ] || [ -n "$CLAUDE_CODE_ENTRYPOINT" ] || [ -n "$CLAUDE_CODE_SESSION_ID" ]; then
RUNTIME="claude"
elif [ -d "$HOME/.config/opencode" ] && [ ! -d "$HOME/.codex" ]; then
RUNTIME="opencode"
elif [ -d "$HOME/.codex" ]; then
RUNTIME="codex"
else
RUNTIME="claude"
fi
fi
# Resolve measure.py to the NEWEST installed copy across channels so a stale
# plugin-cache copy never shadows a fresh install. find -L follows the
# install.sh symlink under ~/.claude/skills; cd -P resolves it before reading each
# copy's plugin.json for its version. find (not bare globs) never errors under zsh.
MEASURE_PY=""; _best_ver=""
while IFS= read -r _cand; do
[ -f "$_cand" ] || continue
_root="$(cd -P -- "$(dirname -- "$_cand")/../../.." 2>/dev/null && pwd)"
_ver="$(sed -n 's/.*"version"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' "$_root/.claude-plugin/plugin.json" 2>/dev/null | head -1)"
[ -n "$_ver" ] || _ver="0.0.0"
if [ -z "$_best_ver" ] || [ "$(printf '%s\n%s\n' "$_ver" "$_best_ver" | sort -t. -k1,1n -k2,2n -k3,3n -k4,4n | tail -n1)" = "$_ver" ]; then
_best_ver="$_ver"; MEASURE_PY="$_cand"
fi
done <<EOF
$(find -L "$HOME/.claude/skills" "$HOME/.claude/plugins/cache" "$HOME/.claude/token-optimizer" "$HOME/.codex/skills" "$HOME/.codex/plugins/cache" "$HOME/.config/opencode/plugins/cache" "$HOME/.config/opencode/plugins" -type f -name measure.py -path '*token-optimizer*/scripts/measure.py' 2>/dev/null)
EOF
if [ -z "$MEASURE_PY" ]; then echo "[Error] measure.py not found. Is Token Optimizer installed?"; exit 1; fi
export TOKEN_OPTIMIZER_RUNTIME="$RUNTIME"
- コストに関する質問(「昨日の Garden セッションのコストはいくらでしたか?」「TR sync セッションの料金はいくらですか?」「セッション のコストは?」)の場合は、手順 3~4 ではなく、以下を実行します。
python3 "$MEASURE_PY" session-cost <the user's words> --json
- ユーザー自身の言葉(
garden yesterday、tr sync、ID またはその先頭 8 文字)を渡します。名前はトピック、スラッグ、プロジェクトと大文字・小文字を区別せずに照合し、すべてが一致する必要があります。today、yesterday、YYYY-MM-DDは日付を指定します。「今週」の場合は--days Nを追加します(デフォルトは 30)。さらに多くの結果を一覧表示するには--limit Nを追加します。 sessions[]の値を使って回答します。日付、トピック、cost_usd.total、サブエージェントが実行された場合はメインスレッドとサブエージェントの内訳、日付が指定されていてセッションが複数日にまたがる場合はcost_usd.on_date、設定されている場合はpartial_reasonを示します。一致する項目が複数ある場合は、total_cost_usdを示して一覧表示します。どれかによって回答が変わる場合に限り、どの項目かを尋ねます。basisを 1 行で伝えます。API の通常価格に基づくため、サブスクリプションの場合、これは請求額ではなく、その作業にかかったはずの費用です。- 一致する項目がない場合はその旨を伝え、
closest[]を表示し、note(セッション終了時に収集されます)を伝えます。 - trends.db を照会したり、自分でトークン料金を計算したりしてはいけません。これはダッシュボード独自の数値であり、書き込みを行わずに読み取ります。
- 収集して開く:
# TOKEN_OPTIMIZER_INTERACTIVE=1 marks this as a user-initiated open, so the 20s
# hook budget does not cut off a heavy rebuild on a large history. The user is
# waiting for this open, so it runs unbounded.
TOKEN_OPTIMIZER_INTERACTIVE=1 python3 "$MEASURE_PY" collect --quiet && \
TOKEN_OPTIMIZER_INTERACTIVE=1 python3 "$MEASURE_PY" dashboard
これにより、最新のセッションデータを trends データベースに収集し、ダッシュボードの HTML を再生成して、デフォルトのブラウザーで開きます。
- ユーザーに伝える:ダッシュボードが開いたことを伝えます。URL に言及する前に、デーモンの状態を確認します。
- デーモンの状態を確認します:
python3 "$MEASURE_PY" daemon-status 2>/dev/null - DAEMON_RUNNING の場合:まず
URL: http://localhost:24842/token-optimizer(ブックマーク可能、自動更新)を示し、その後にファイルへのフォールバックを伝えます。 - DAEMON_NOT_RUNNING の場合:
localhost:24842の URL は表示しません。ダッシュボードはファイルとして開いたことを伝え、ブックマーク可能な URL が必要な場合はpython3 $MEASURE_PY setup-daemonを提案します(macOS と Windows)。 - ファイルパス:絶対にハードコードしないでください。インストール環境によって異なります。手順 3 の出力にある
Dashboard:の行を示します。 - DAEMON_NOT_RUNNING の Codex の場合:Claude デーモンが必須であるかのように伝えてはいけません。生成されたファイルはそのまま使え、balanced hooks がインストールされていれば Stop フックによって更新されます。
- デーモンの状態を確認します:
Claude Opus 5.5 と Sonnet 5.5、および Codex 上の GPT-5.6 向けに作成され、動作確認済みです。
コメント
Markdown 対応