cli-anything-nslogger について
cli-anything-nsloggerは、NSLoggerのログを読み取り、絞り込み、書き出し、受信するコマンドラインツールです。構造化出力と対話型コマンドを備え、アプリログを調べる開発者やエージェント向けです。
主な機能
- 01NSLoggerログファイルの読み取り
- 02レベル、タグ、テキストによる絞り込み
- 03テキスト、JSON、CSVへの書き出し
- 04ログ統計の集計
- 05ライブ接続の受信
- 06対話型コマンドREPL
活用シーン
- 01取得済みクラッシュセッションの調査
- 02エラーやネットワーク障害の検索
- 03絞り込んだログの分析用書き出し
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ hkuds/ cli-anything --skill cli-anything-nsloggerインストール後、Claude Code で/cli-anything-nsloggerを入力して読み込まれたか確認します。
詳細
cli-anything-nslogger
iOS/macOS アプリ向けの macOS ログビューアである NSLogger 用の完全な CLI ハーネスです。
インストール
cd nslogger/agent-harness
pip install -e .
# Verify
cli-anything-nslogger --help
コマンドリファレンス
generate — テスト用のサンプルファイルを作成する
cli-anything-nslogger generate sample.rawnsloggerdata --count 50
read — ファイルからメッセージを表示する
# All messages
cli-anything-nslogger read session.rawnsloggerdata
# Errors only (level 0)
cli-anything-nslogger read session.rawnsloggerdata --level 0
# Filter by tag and text search
cli-anything-nslogger read session.rawnsloggerdata --tag Network --search "timeout"
# First 20 messages as JSON
cli-anything-nslogger read session.rawnsloggerdata --limit 20 --json
filter — 高度なフィルタリング
# Errors and warnings only
cli-anything-nslogger filter session.rawnsloggerdata --level 1
# By tag
cli-anything-nslogger filter session.rawnsloggerdata --tag Auth --tag Network
# Regex search
cli-anything-nslogger filter session.rawnsloggerdata --regex "(timeout|failed|error)"
# By thread
cli-anything-nslogger filter session.rawnsloggerdata --thread "main"
# JSON output
cli-anything-nslogger filter session.rawnsloggerdata --level 0 --json
export — text/JSON/CSV へエクスポートする
# JSON to stdout
cli-anything-nslogger export session.rawnsloggerdata --format json
# CSV to file
cli-anything-nslogger export session.rawnsloggerdata --format csv --output logs.csv
# Filtered text export
cli-anything-nslogger export session.rawnsloggerdata --format text --level 1 --tag Network
stats — 集計統計
# Human-readable summary
cli-anything-nslogger stats session.rawnsloggerdata
# JSON for agent consumption
cli-anything-nslogger stats session.rawnsloggerdata --json
JSON 出力の形式:
{
"total": 342,
"by_level": {"ERROR": 12, "WARNING": 34, "INFO": 200, "DEBUG": 96},
"by_tag": {"Network": 89, "Auth": 45, "UI": 120},
"by_thread": {"main": 200, "bg-queue": 142},
"by_type": {"text": 340, "client_info": 1, "disconnect": 1},
"clients": ["MyApp"],
"first_timestamp": "2024-01-01T10:00:00+00:00",
"last_timestamp": "2024-01-01T10:05:30+00:00",
"duration_seconds": 330.0
}
listen — ライブ接続を受信する
# Match the NSLogger.app GUI Bonjour behavior for iOS auto-discovery
cli-anything-nslogger listen --bonjour --name bazinga --debug
# Mirror live logs to a text file while still printing stdout
cli-anything-nslogger listen --bonjour --name bazinga --output app.log
# Write machine-readable JSON Lines
cli-anything-nslogger listen --bonjour --name bazinga --output app.jsonl --output-format jsonl
# Direct TCP/TLS mode for manually configured clients
cli-anything-nslogger listen --port 50000 --ssl --debug
# Show only errors while listening, output as JSON stream
cli-anything-nslogger listen --bonjour --name bazinga --level 0 --json
# Run until Ctrl-C
cli-anything-nslogger listen --bonjour --name bazinga
iOS アプリでは、デスクトップの NSLogger GUI と一致するため、まず Bonjour モードを使用してください。
CLI は _nslogger-ssl._tcp を持つネイティブの macOS NetService を公開し、
TLS NSLogger フレームを受け入れます。直接 TCP/TLS を使用するのは、アプリが
Mac のホストとポートを手動で設定されている場合だけにしてください。
repl — 対話型コマンド REPL
cli-anything-nslogger repl session.rawnsloggerdata
# Or launch it by running cli-anything-nslogger with no subcommand.
ログレベル
| 値 | 名前 | 用途 |
|---|---|---|
| 0 | ERROR | 復旧不可能な障害 |
| 1 | WARNING | 復旧可能な問題 |
| 2 | INFO | 通常の動作 |
| 3 | DEBUG | 開発者向けの詳細 |
| 4 | VERBOSE | トレースレベルのノイズ |
メッセージの JSON 形式
{
"sequence": 42,
"timestamp": "2024-01-01T10:01:23+00:00",
"timestamp_ms": 456,
"thread_id": "main",
"tag": "Network",
"level": 0,
"level_name": "ERROR",
"type": "text",
"text": "Connection timed out after 30s",
"image_width": 0,
"image_height": 0,
"client_name": "MyApp",
"client_version": "2.1.0",
"os_name": "iOS",
"os_version": "17.0",
"machine": "iPhone15,2"
}
エージェントのワークフロー例
# 1. Inspect a captured crash session
cli-anything-nslogger stats crash.rawnsloggerdata --json
# 2. Find all errors in the 5 minutes before crash
cli-anything-nslogger filter crash.rawnsloggerdata --level 0 --json
# 3. Get network failures only
cli-anything-nslogger filter crash.rawnsloggerdata --tag Network --regex "fail|timeout|error" --json
# 4. Export full log for offline analysis
cli-anything-nslogger export crash.rawnsloggerdata --format json --output crash_log.json
# 5. Monitor an iOS app live and keep a local copy
cli-anything-nslogger listen --bonjour --name bazinga --output app.log --debug
コメント
Markdown 対応