unity-console について
Unity Console の履歴を調査、管理する Unity Skills モジュールです。タイムスタンプ付きログのページ取得、絞り込み、統計、エクスポート、設定に対応します。
主な機能
- 01保持されたコンソールログの取得
- 02種類・文字列・時刻による絞り込み
- 03固定スナップショットのページ取得
- 04ログ統計の確認
- 05履歴のエクスポートと設定
活用シーン
- 01テスト実行後のエラー確認
- 02文字列に一致する警告の検索
- 03調査用ログのエクスポート
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ besty0728/ unity-skills --skill unity-consoleインストール後、Claude Code で/unity-consoleを入力して読み込まれたか確認します。
詳細
このモジュールのスキルを呼び出す前に: 名前や説明から推測したパラメーターを使ってスキルを呼び出そうとしている場合は、いったん停止してください。まずこのファイルを読むか、
GET /skills/recommend?includeSchema=trueでスキーマを取得してください。recommend/schema からパラメーター定義をすでに取得している場合は、そのまま dryRun に進めます。
トリガー
- コンソール出力の確認
- エラーや警告のフィルタリング
- ログメッセージの出力
- コンソールの設定
- コンソール出力の確認、エラーや警告のフィルタリング、ログの出力、コンソールの設定
Unity コンソールスキル
Unity コンソールを操作して、ログの取得、メッセージの書き込み、プロジェクトのデバッグを行います。
動作モード
- 承認:読み取り専用のスキル(
console_get_logs/console_get_stats、SkillMode.SemiAutoに設定)はそのまま実行します。それ以外のスキル(console_start_capture/console_stop_capture/console_clear/console_log/console_export/console_set_pause_on_error/console_set_collapse/console_set_clear_on_play、デフォルトのSkillMode.FullAuto)にはユーザーの grant が必要です。grant 後は 1 ステップで実行し、結果を返します。 - 自動 / バイパス:そのまま実行します。
- このモジュールには Delete / PlayMode / Reload / RiskLevel=high に該当するスキルはありません ——
IsForbiddenInSemiによるブロックはなく、実行に Bypass が必要な高リスク操作もありません。
次の操作は行わないでください(よくある誤認):
console_filterは存在しません →filterパラメーターを指定してconsole_get_logsを使用しますconsole_readは存在しません →console_get_logsを使用しますconsole_writeは存在しません →console_logを使用しますdebug_get_logsと混同しないでください。console_get_logsは永続的なタイムスタンプ付き履歴 API であり、debug_get_logsはネイティブ Console 互換の読み取り機能です
振り分け:
- コンパイルエラーに特化した処理 →
debugモジュールのdebug_check_compilationを使用します - エラーのスタックトレース →
debugモジュールのdebug_get_stack_traceを使用します - コンソール設定(折りたたみ、再生時にクリア)→ このモジュールの
console_set_collapse/console_set_clear_on_playを使用します
スキルの概要
| スキル | 説明 |
|---|---|
console_start_capture | ログの取得を開始します |
console_stop_capture | ログの取得を停止します |
console_get_logs | 固定スナップショット方式のページネーションで、永続的なタイムスタンプ付きログを取得します |
console_clear | コンソールをクリアします |
console_log | ログメッセージを書き込みます |
console_set_pause_on_error | Play モードでの Error Pause を有効または無効にします |
console_export | コンソールログをファイルにエクスポートします |
console_get_stats | ログ統計(種類別の件数)を取得します |
console_set_collapse | コンソールログの折りたたみモードを設定します |
console_set_clear_on_play | 再生時にクリアするモードを設定します |
スキル
console_start_capture
互換キャプチャセッションを開始します。管理対象のログ履歴は常に収集されるため、この操作ではセッションカーソルを記録し、以前のバックグラウンド履歴が消去されることはありません。
パラメーターはありません。
console_stop_capture
互換キャプチャセッションを停止します。保持された履歴は破棄されません。
パラメーターはありません。
console_get_logs
保持されている Unity Console のログを取得します。デフォルトでは、完全一致する (type, message, stackTrace) レコードを 1 つのグループにまとめます。この読み取り設定は、Unity Console の UI の「Collapse」切り替えとは独立しています。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
type | string | いいえ | "All" | All / Error / Warning / Log(大文字と小文字を区別しません。いずれにも該当しない値を指定すると SEMANTIC_INVALID で拒否されます) |
filter | string | いいえ | null | 完全なメッセージまたはスタックトレース内の、大文字と小文字を区別しない部分文字列 |
limit | int | いいえ | 100 | 1 ページあたりの結果数(1~1000) |
collapse | bool | いいえ | true | 個々のレコードではなく、安定した重複グループを返します |
fromUtc | string | いいえ | null | ISO-8601 UTC の開始境界(含む)(...Z またはゼロオフセット) |
toUtc | string | いいえ | null | ISO-8601 UTC の終了境界(含まない)。範囲は [fromUtc, toUtc) です |
groupId | string | いいえ | null | 折りたたまれたレスポンスで返された 1 つのグループ ID に絞り込みます |
cursor | string | いいえ | null | 前回のレスポンスで返された、不透明な固定スナップショットのページカーソル。console_clear によって無効になります |
includeStackTrace | bool | いいえ | false | 返されるレコード/グループに完全なスタックトレースを含めます |
戻り値: {count, logs, source, cursor, nextCursor, totalMatched, hasMore, complete, dropped, coverage}。個々のレコードには {seq, type, message, stackTrace?, utc, timeKnown, sessionId, source} が含まれます。折りたたまれた行には {groupId, type, message, stackTrace?, count, countKnown, firstUtc, lastUtc, firstSeq, lastSeq} が含まれます。groupId は完全な (type, message, stackTrace) タプルに対して安定しています。cursor は以降の各ページの最終シーケンス番号を固定するため、新しいログがそのページシーケンスに入ることはありません。complete:false または dropped>0 は、保持期間、クリア履歴、破損、永続化の問題、または古いネイティブログにより、完全であると断言できないことを意味します。このサービスより前のネイティブログでは utc:null および timeKnown:false となり、タイムスタンプが捏造されることはありません。Unity の古い Console リフレクションでは折りたたまれていない発生数を取得できないため、ネイティブログの count は null で、countKnown:false です。ネイティブメッセージは Unity のリフレクションによって切り詰められることがあるため、全文検索が保証されるのはマネージドレコードのみです。coverage は、この情報、保持件数の上限、永続化の健全性、利用可能な Editor.log のパスを報告します。Editor.log はカーソル履歴には取り込まれず、手動での代替手段としてのみ利用できます。
console_clear
Unity コンソールをクリアします。
パラメーターはありません。
console_log
カスタムログメッセージを書き込みます。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
message | string | はい | - | ログメッセージ |
type | string | いいえ | "Log" | Log/Warning/Error |
console_set_pause_on_error
Play モードでの Error Pause を有効または無効にします。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
enabled | bool | いいえ | true | エラーポーズを有効または無効にします |
戻り値: { success, enabled }
console_export
保持されているコンソール履歴をファイルにエクスポートします。利用可能な UTC タイムスタンプと完全なスタックトレースも含まれます。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
savePath | string | いいえ | "Assets/console_log.txt" | ログの保存先ファイルパス |
戻り値: { success, path, count, source, complete, dropped, truncated }。エクスポートを完全な証拠として扱う前に、truncated を確認してください。
console_get_stats
保持されているログ履歴の統計情報を取得します。
パラメーターはありません。
戻り値: {success, total, source, logs, warnings, errors, exceptions, asserts, complete, dropped, truncated}。エラー数がゼロであることをクリーンな実行の証拠として扱う前に、truncated を確認してください。
console_set_collapse
コンソールログの折りたたみモードを設定します。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
enabled | bool | はい | - | 折りたたみモードを有効または無効にします |
戻り値: { success, setting, enabled }
console_set_clear_on_play
再生時にクリアするモードを設定します。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
enabled | bool | はい | - | 再生時のクリアを有効または無効にします |
戻り値: { success, setting, enabled }
使用例
import unity_skills
# History starts automatically. The first response fixes a snapshot; later pages do not admit new logs.
page = unity_skills.call_skill("console_get_logs", type="Error", includeStackTrace=True)
while page["hasMore"]:
page = unity_skills.call_skill("console_get_logs", type="Error", includeStackTrace=True,
cursor=page["nextCursor"])
# For occurrence-level evidence instead of duplicate groups, opt out of collapse and constrain time.
logs = unity_skills.call_skill("console_get_logs", collapse=False,
fromUtc="2026-10-10T00:00:00Z", toUtc="2026-10-11T00:00:00Z")
# Write custom log
unity_skills.call_skill("console_log",
message="AI Agent: Task completed",
type="Log"
)
# Write warning
unity_skills.call_skill("console_log",
message="AI Agent: Performance issue detected",
type="Warning"
)
# Clear invalidates every old cursor and deletes retained history. A capture session is optional
# and limits reads/exports/stats to records created after its start without deleting background history.
unity_skills.call_skill("console_start_capture")
unity_skills.call_skill("console_clear")
unity_skills.call_skill("console_stop_capture")
ベストプラクティス
- まずエラーグループを折りたたんだ状態で開始し、個々の発生箇所が重要な場合にのみ、
collapse:falseとgroupIdまたは時間範囲を指定してリクエストします。 hasMore:falseになるまでnextCursorをたどります。最初のページで固定されたスナップショットを保持し、complete:falseの場合は結果を拒否します。dropped、coverage.corruptRows、またはcoverage.durabilityIssueは、証拠が不完全であることを示すものとして扱います。保持上限は50,000件、64 MiBです。console_start_captureは互換性セッションの範囲を区切る場合にのみ使用します。自動管理のキャプチャはすでに実行中であり、キャプチャを開始しても履歴はクリアされません。coverage.editorLogPathのフォールバックは手動調査にのみ使用します。これはタイムスタンプが正規化されず、このAPIにも統合されません。
正確なシグネチャ
正確な名前、パラメーター、デフォルト値、戻り値は、このファイルではなく、GET /skills/schema または unity_skills.get_skill_schema() で定義されています。