メインコンテンツまでスキップ

log

デバッグとコンプライアンスのために、永続的な operations ログと audit ログを閲覧します。

skillshare log                    # インタラクティブ TUI(TTY 上のデフォルト)
skillshare log --audit # audit ログのみ表示
skillshare log --tail 50 # 直近 50 件のエントリを表示
skillshare log --cmd sync # sync のエントリのみ表示
skillshare log --status error # エラーのみ表示
skillshare log --since 2d # 直近 2 日間のエントリ
skillshare log --stats # サマリー統計を表示
skillshare log --json # JSONL として出力
skillshare log --no-tui # プレーンテキスト出力
skillshare log --clear # operations ログをクリア
skillshare log -p # project の operations + audit ログ

使うタイミング

  • ログエントリをインタラクティブに閲覧・フィルタする
  • 失敗した操作で何が起きたかをデバッグする
  • コンプライアンスやトラブルシューティングのために audit trail を確認する
  • コマンド、ステータス、時間範囲でログをフィルタして調査する

インタラクティブ TUI

TTY 上では、skillshare log は次のようなインタラクティブなターミナル UI を起動します。

  • ファジーフィルタリング — タイムスタンプ、コマンド、ステータス、source、または詳細内容で絞り込むために入力
  • キーボードナビゲーション — 矢印キーで移動、q で終了
  • 詳細パネル — 選択したエントリの完全なタイムスタンプ、コマンド、ステータス、所要時間、source、構造化された引数を表示
  • 統計フッター — 常に表示されるコンパクトなサマリー: ops 数、成功率、最後の操作
  • 統計パネルs を押すとコマンド別の成功/失敗件数を含む完全な内訳を切り替え表示
  • 統合ビュー — 両方を表示している場合、operations と audit のエントリは統合され、時間順にソートされます

--no-tui を使うと TUI をスキップし、代わりにプレーンテキストを出力します。

skillshare log --no-tui           # プレーンテキスト出力
skillshare log --no-tui | less # 手動でページャーにパイプする

記録される内容

すべての変更を伴う CLI および Web UI の操作は、タイムスタンプ、コマンド、ステータス、所要時間、コンテキスト引数を含む JSONL エントリとして記録されます。

コマンドログファイル
install, uninstall, sync, push, pull, collect, backup, restore, update, target, trash, config, check, diff, init, upgradeoperations.log
auditaudit.log

これらの API を呼び出す Web UI のアクションも、CLI の操作と同じ方法で記録されます。

ログの種類

デフォルトビュー

1 回の出力で両方のセクションを表示します。

  • Operations ログ
  • Audit ログ
skillshare log

Audit 専用ビュー

セキュリティ audit のスキャンを通常の操作とは別に記録します。

skillshare log --audit

フィルタリング

コマンド、ステータス、時間範囲で結果を絞り込みます。--cmd が特定のログのみを対象とする場合(例: --cmd audit は audit.log にのみ現れる)、関係のないセクションは自動的にスキップされます。

skillshare log --cmd install              # install のエントリのみ
skillshare log --status error # エラーのみ
skillshare log --since 1h # 直近 1 時間(30m, 2d, 1w も可)
skillshare log --since 2026-01-15 # 特定の日付以降
skillshare log --cmd sync --status error # フィルタの組み合わせ

JSON 出力

スクリプトや自動化のために、生の JSONL を出力します。

skillshare log --json                     # 全エントリを JSONL で
skillshare log --json --cmd sync # フィルタ済み JSONL

出力例(プレーンテキスト)

--no-tui を使う場合、または非 TTY 環境の場合:

┌─ skillshare log ────────────────────────────────────┐
│ Operations (last 2) │
│ mode: global │
│ file: ~/.local/state/skillshare/logs/operations.log │
└─────────────────────────────────────────────────────┘
TIME | CMD | STATUS | DUR
-----------------+-----------+---------+--------
2026-02-10 14:31 | SYNC | error | 0.8s
targets: 3
failed: 1
scope: global

2026-02-10 14:35 | SYNC | ok | 0.3s
targets: 3
scope: global

┌─ skillshare log ────────────────────────────────────┐
│ Audit (last 1) │
│ mode: global │
│ file: ~/.local/state/skillshare/logs/audit.log │
└─────────────────────────────────────────────────────┘
TIME | CMD | STATUS | DUR
-----------------+-----------+---------+--------
2026-02-10 14:36 | AUDIT | blocked | 1.1s
scope: all-skills
scanned: 12
passed: 11
failed: 1
failed skills:
- prompt-injection-skill
- data-exfil-skill

ログフォーマット

エントリは JSONL フォーマット(1 行につき 1 つの JSON オブジェクト)で保存されます。

{"ts":"2026-02-10T14:30:00Z","cmd":"install","args":{"source":"anthropics/skills/pdf"},"status":"ok","ms":1200}
フィールド説明
tsISO 8601 タイムスタンプ
cmdコマンド名
argsコマンド固有のコンテキスト(source、name、target など)
statusokerrorpartial、または blocked
msgエラーメッセージ(ステータスが ok 以外の場合)
ms所要時間(ミリ秒)

ログの場所

~/.local/state/skillshare/logs/operations.log    # グローバルな operations
~/.local/state/skillshare/logs/audit.log # グローバルな audit
<project>/.skillshare/logs/operations.log # project の operations
<project>/.skillshare/logs/audit.log # project の audit

Git でログを追跡する(Project モード)

project モードでは、コミットが煩雑にならないよう、デフォルトで .skillshare/logs/ は無視されます。

チームでログファイルをバージョン管理したい場合は、管理対象ブロックの後に .skillshare/.gitignore へ次のユーザーオーバーライドルールを追加してください。

# ユーザーオーバーライド: ログを追跡する
!logs/
!logs/*.log

リポジトリルートの .gitignore.skillshare/ を無視している場合は、そちらにも対応する unignore ルールを追加してください。

オプション

フラグ説明
-a, --auditaudit ログのみ表示
-t, --tail <N>直近 N 件のエントリを表示(デフォルト: 20)
--cmd <name>コマンド名でフィルタ(例: sync, install, audit
--status <status>ステータスでフィルタ(ok, error, partial, blocked
--since <dur|date>時間でフィルタ(30m, 2h, 2d, 1w, または 2006-01-02
--statsサマリー統計を表示(合計、成功率、コマンド別の内訳)
--json生の JSONL を出力(1 行につき 1 つの JSON オブジェクト)
--no-tuiインタラクティブ TUI を無効化し、プレーンテキスト出力を使用
-c, --clear選択したログファイルをクリア(デフォルトは operations、--audit で audit)
-p, --projectproject レベルのログを使用
-g, --globalグローバルなログを使用
-h, --helpヘルプを表示

Web UI

ログは Web ダッシュボードの /log でも利用できます。

skillshare ui
# Log ページに移動

Log ページでは以下が提供されます。

  • AllOperationsAuditタブ
  • コマンド、ステータス、時間範囲(1h, 24h, 7d, 30d)の フィルタ
  • 時間、コマンド、詳細、ステータス、所要時間を含む テーブルビュー
  • 存在する場合に失敗/警告の Skill 名を示す Audit の詳細行
  • ClearRefresh のコントロール

統計ビュー

CLI

skillshare log --stats                # 全操作のサマリー
skillshare log --stats --cmd sync # sync のみの統計
skillshare log --stats --since 7d # 直近 7 日間の統計

TUI

TUI で s を押すと統計パネルが切り替わり、以下が表示されます。

  • 水平棒グラフ付きの、合計操作数とコマンド別の内訳
  • コマンドごとの成功/失敗件数(色分け)
  • 視覚的なプログレスバー付きの全体成功率
  • 最後の操作のタイムスタンプ

フッターバーには常にコンパクトなサマリーが表示されます: 20 ops | ✓ 92.3% | last: sync 2h ago

詳細パネルのスクロール

ログエントリの詳細内容が長い場合(多数の Skill を含む audit の結果など)、j/k で詳細パネルを上下にスクロールできます。

ログの保持

ログは無制限に増え続けないよう、自動的に切り詰められます。デフォルトの上限はログファイルごとに1000 エントリです(CLI または Web UI の各操作 = 1 エントリ)。operations.logaudit.log は別々に管理されます。

デフォルトを変更するには、config.yaml に以下を追加してください。

log:
max_entries: 500 # ファイルごとのエントリ数; 0 = 無制限(デフォルト: 1000)

関連項目

  • audit — セキュリティスキャン(audit.log に記録)
  • status — 現在の同期状態を表示
  • doctor — 問題を診断