uloop-cli 0.68.2 → 0.68.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -64,11 +64,12 @@ Skills are dynamically loaded from the uLoopMCP package in your Unity project. T
64
64
  - `/uloop-screenshot` - Take a screenshot of EditorWindow
65
65
  - `/uloop-control-play-mode` - Control Play Mode
66
66
  - `/uloop-execute-dynamic-code` - Execute dynamic C# code
67
- - `/uloop-get-provider-details` - Get search provider details
67
+ - `/uloop-launch` - Launch Unity project with matching Editor version
68
68
 
69
69
  Custom skills defined in your project are also automatically detected.
70
70
 
71
- ## CLI Command Reference
71
+ ## CLI Command Reference
72
+ ([日本語](README_ja.md#cli-コマンドリファレンス))
72
73
 
73
74
  You can also call the CLI directly without using Skills.
74
75
 
@@ -122,6 +123,11 @@ uloop compile
122
123
  uloop compile --force-recompile true --wait-for-domain-reload true
123
124
  ```
124
125
 
126
+ **Output:**
127
+ - `Success` (boolean | null) - Compilation succeeded (`null` when `--force-recompile` is used)
128
+ - `ErrorCount` / `WarningCount` (integer | null) - Number of errors/warnings (`null` when `--force-recompile` is used)
129
+ - `Errors` / `Warnings` (array | null) - Issues with `Message`, `File`, `Line` fields (`null` when `--force-recompile` is used)
130
+
125
131
  ### get-logs
126
132
 
127
133
  Retrieve logs from Unity Console.
@@ -141,6 +147,11 @@ uloop get-logs --log-type Error --max-count 10
141
147
  uloop get-logs --search-text "NullReference" --include-stack-trace true
142
148
  ```
143
149
 
150
+ **Output:**
151
+ - `TotalCount` (integer) - Total available logs matching filter
152
+ - `DisplayedCount` (integer) - Number of logs returned
153
+ - `Logs` (array) - Log entries with `Type` (Error/Warning/Log), `Message`, `StackTrace` fields
154
+
144
155
  ### run-tests
145
156
 
146
157
  Execute Unity Test Runner.
@@ -157,6 +168,11 @@ uloop run-tests --test-mode EditMode --filter-type regex --filter-value "MyTests
157
168
  uloop run-tests --filter-type assembly --filter-value "MyApp.Tests.Editor"
158
169
  ```
159
170
 
171
+ **Output:**
172
+ - `Success` (boolean) - All tests passed
173
+ - `TestCount` / `PassedCount` / `FailedCount` / `SkippedCount` (integer) - Test result counts
174
+ - `XmlPath` (string) - Path to NUnit XML result file (saved on failure)
175
+
160
176
  ### clear-console
161
177
 
162
178
  Clear Unity console logs.
@@ -169,6 +185,10 @@ Clear Unity console logs.
169
185
  uloop clear-console
170
186
  ```
171
187
 
188
+ **Output:**
189
+ - `Success` (boolean) - Operation succeeded
190
+ - `ClearedLogCount` (integer) - Number of logs cleared
191
+
172
192
  ### focus-window
173
193
 
174
194
  Bring Unity Editor window to front.
@@ -179,6 +199,10 @@ No parameters.
179
199
  uloop focus-window
180
200
  ```
181
201
 
202
+ **Output:**
203
+ - `Success` (boolean) - Operation succeeded
204
+ - `Message` (string) - Result message
205
+
182
206
  ### get-hierarchy
183
207
 
184
208
  Get Unity Hierarchy structure.
@@ -199,6 +223,9 @@ uloop get-hierarchy --root-path "Canvas" --max-depth 3
199
223
  uloop get-hierarchy --use-selection true
200
224
  ```
201
225
 
226
+ **Output:**
227
+ - `hierarchyFilePath` (string) - Path to saved JSON file containing hierarchy data
228
+
202
229
  ### unity-search
203
230
 
204
231
  Search Unity project.
@@ -224,6 +251,13 @@ uloop unity-search --search-query "t:Texture2D" --max-results 10
224
251
  uloop unity-search --search-query "t:MonoScript *.cs" --save-to-file true
225
252
  ```
226
253
 
254
+ **Output:**
255
+ - `TotalCount` (integer) - Total results found
256
+ - `DisplayedCount` (integer) - Results returned
257
+ - `Results` (array) - Search result items
258
+ - `SearchDurationMs` (integer) - Search time in milliseconds
259
+ - `ResultsFilePath` (string) - File path when results are saved to file
260
+
227
261
  ### get-menu-items
228
262
 
229
263
  Retrieve Unity MenuItems.
@@ -240,6 +274,11 @@ uloop get-menu-items
240
274
  uloop get-menu-items --filter-text "GameObject" --filter-type startswith
241
275
  ```
242
276
 
277
+ **Output:**
278
+ - `TotalCount` (integer) - Total MenuItems before filtering
279
+ - `FilteredCount` (integer) - MenuItems after filtering
280
+ - `MenuItems` (array) - Items with `Path`, `Priority`, `MethodName` fields
281
+
243
282
  ### execute-menu-item
244
283
 
245
284
  Execute Unity MenuItem by path.
@@ -254,6 +293,11 @@ uloop execute-menu-item --menu-item-path "File/Save"
254
293
  uloop execute-menu-item --menu-item-path "GameObject/Create Empty"
255
294
  ```
256
295
 
296
+ **Output:**
297
+ - `Success` (boolean) - Execution succeeded
298
+ - `MenuItemPath` (string) - Executed menu path
299
+ - `ExecutionMethod` (string) - Method used (EditorApplication or Reflection)
300
+
257
301
  ### find-game-objects
258
302
 
259
303
  Find GameObjects with search criteria.
@@ -275,15 +319,20 @@ uloop find-game-objects --required-components "Camera" --include-inactive true
275
319
  uloop find-game-objects --tag "Enemy" --max-results 50
276
320
  ```
277
321
 
322
+ **Output:**
323
+ - `totalFound` (integer) - Total GameObjects found
324
+ - `results` (array) - GameObjects with `name`, `path`, `isActive`, `tag`, `layer`, `components` fields
325
+
278
326
  ### screenshot
279
327
 
280
328
  Take a screenshot of Unity EditorWindow and save as PNG.
281
329
 
282
330
  | Flag | Type | Default | Description |
283
331
  |------|------|---------|-------------|
284
- | `--window-name` | string | `Game` | Window name (e.g., "Game", "Scene", "Console", "Inspector") |
332
+ | `--window-name` | string | `Game` | Window name (e.g., "Game", "Scene", "Console", "Inspector", "Project", "Hierarchy") |
285
333
  | `--resolution-scale` | number | `1` | Resolution scale (0.1 to 1.0) |
286
334
  | `--match-mode` | enum | `exact` | Matching mode: `exact`, `prefix`, `contains` (case-insensitive) |
335
+ | `--output-directory` | string | | Output directory path (uses .uloop/outputs/Screenshots/ when empty) |
287
336
 
288
337
  ```bash
289
338
  uloop screenshot
@@ -291,6 +340,10 @@ uloop screenshot --window-name Scene
291
340
  uloop screenshot --window-name Project --match-mode prefix
292
341
  ```
293
342
 
343
+ **Output:**
344
+ - `ScreenshotCount` (integer) - Number of windows captured
345
+ - `Screenshots` (array) - Items with `ImagePath`, `Width`, `Height`, `FileSizeBytes` fields
346
+
294
347
  ### execute-dynamic-code
295
348
 
296
349
  Execute C# code in Unity Editor.
@@ -306,35 +359,51 @@ uloop execute-dynamic-code --code 'using UnityEngine; Debug.Log("Hello!");'
306
359
  uloop execute-dynamic-code --code 'Selection.activeGameObject.name' --compile-only true
307
360
  ```
308
361
 
309
- ### get-provider-details
362
+ **Output:**
363
+ - `Success` (boolean) - Execution succeeded
364
+ - `Result` (string) - Return value of executed code
365
+ - `Logs` (array) - Log messages emitted during execution
366
+ - `CompilationErrors` (array) - Errors with `Message`, `Line`, `Column`, `Hint` fields
310
367
 
311
- Get Unity Search provider details.
368
+ ### control-play-mode
369
+
370
+ Control Unity Editor play mode.
312
371
 
313
372
  | Flag | Type | Default | Description |
314
373
  |------|------|---------|-------------|
315
- | `--provider-id` | string | | Specific provider ID (e.g., "asset", "scene") |
316
- | `--active-only` | boolean | `false` | Only active providers |
317
- | `--include-descriptions` | boolean | `true` | Include descriptions |
318
- | `--sort-by-priority` | boolean | `true` | Sort by priority |
374
+ | `--action` | enum | `Play` | Action: `Play`, `Stop`, `Pause` |
319
375
 
320
376
  ```bash
321
- uloop get-provider-details
322
- uloop get-provider-details --provider-id asset
323
- uloop get-provider-details --active-only true
377
+ uloop control-play-mode --action Play
378
+ uloop control-play-mode --action Stop
379
+ uloop control-play-mode --action Pause
324
380
  ```
325
381
 
326
- ### control-play-mode
382
+ **Output:**
383
+ - `IsPlaying` (boolean) - Currently in play mode
384
+ - `IsPaused` (boolean) - Currently paused
385
+ - `Message` (string) - Action description
327
386
 
328
- Control Unity Editor play mode.
387
+ ### launch
388
+
389
+ Open a Unity project with the matching Editor version.
329
390
 
330
391
  | Flag | Type | Default | Description |
331
392
  |------|------|---------|-------------|
332
- | `--action` | enum | `Play` | Action: `Play`, `Stop`, `Pause` |
393
+ | `[project-path]` | string | | Path to Unity project (searches current directory if omitted) |
394
+ | `-r, --restart` | flag | | Kill running Unity and restart |
395
+ | `-q, --quit` | flag | | Gracefully quit running Unity |
396
+ | `-d, --delete-recovery` | flag | | Delete Assets/_Recovery before launch |
397
+ | `-p, --platform <platform>` | string | | Build target (e.g., Android, iOS, StandaloneOSX) |
398
+ | `--max-depth <n>` | number | `3` | Search depth when project-path is omitted (-1 for unlimited) |
399
+ | `-a, --add-unity-hub` | flag | | Add to Unity Hub only (does not launch) |
400
+ | `-f, --favorite` | flag | | Add to Unity Hub as favorite (does not launch) |
333
401
 
334
402
  ```bash
335
- uloop control-play-mode --action Play
336
- uloop control-play-mode --action Stop
337
- uloop control-play-mode --action Pause
403
+ uloop launch
404
+ uloop launch /path/to/project
405
+ uloop launch -r
406
+ uloop launch -p Android
338
407
  ```
339
408
 
340
409
  ## Shell Completion
package/README_ja.md CHANGED
@@ -64,11 +64,12 @@ Skills はUnityプロジェクト内の uLoopMCP パッケージから動的に
64
64
  - `/uloop-screenshot` - EditorWindow のスクリーンショット
65
65
  - `/uloop-control-play-mode` - Play Mode の制御
66
66
  - `/uloop-execute-dynamic-code` - 動的 C# コードの実行
67
- - `/uloop-get-provider-details` - 検索プロバイダー詳細の取得
67
+ - `/uloop-launch` - Unity プロジェクトを対応する Editor バージョンで起動
68
68
 
69
69
  プロジェクトで定義したカスタム Skills も自動的に検出されます。
70
70
 
71
- ## CLI コマンドリファレンス
71
+ ## CLI コマンドリファレンス
72
+ ([English](README.md#cli-command-reference))
72
73
 
73
74
  Skills を使わずに、CLI を直接呼び出すこともできます。
74
75
 
@@ -122,6 +123,11 @@ uloop compile
122
123
  uloop compile --force-recompile true --wait-for-domain-reload true
123
124
  ```
124
125
 
126
+ **Output:**
127
+ - `Success` (boolean) - コンパイル成功(`--force-recompile` 使用時は `null`)
128
+ - `ErrorCount` / `WarningCount` (integer) - エラー数/警告数
129
+ - `Errors` / `Warnings` (array) - `Message`, `File`, `Line` フィールドを含む問題一覧
130
+
125
131
  ### get-logs
126
132
 
127
133
  Unity コンソールからログを取得します。
@@ -141,6 +147,11 @@ uloop get-logs --log-type Error --max-count 10
141
147
  uloop get-logs --search-text "NullReference" --include-stack-trace true
142
148
  ```
143
149
 
150
+ **Output:**
151
+ - `TotalCount` (integer) - フィルタに一致するログの総数
152
+ - `DisplayedCount` (integer) - 返されたログ数
153
+ - `Logs` (array) - `Type` (Error/Warning/Log), `Message`, `StackTrace` フィールドを含むログエントリ
154
+
144
155
  ### run-tests
145
156
 
146
157
  Unity Test Runner を実行します。
@@ -157,6 +168,11 @@ uloop run-tests --test-mode EditMode --filter-type regex --filter-value "MyTests
157
168
  uloop run-tests --filter-type assembly --filter-value "MyApp.Tests.Editor"
158
169
  ```
159
170
 
171
+ **Output:**
172
+ - `Success` (boolean) - 全テスト合格
173
+ - `TestCount` / `PassedCount` / `FailedCount` / `SkippedCount` (integer) - テスト結果の件数
174
+ - `XmlPath` (string) - NUnit XML 結果ファイルのパス(失敗時に保存)
175
+
160
176
  ### clear-console
161
177
 
162
178
  Unity コンソールログをクリアします。
@@ -169,6 +185,10 @@ Unity コンソールログをクリアします。
169
185
  uloop clear-console
170
186
  ```
171
187
 
188
+ **Output:**
189
+ - `Success` (boolean) - 操作成功
190
+ - `ClearedLogCount` (integer) - クリアされたログ数
191
+
172
192
  ### focus-window
173
193
 
174
194
  Unity Editor ウィンドウを前面に表示します。
@@ -179,6 +199,10 @@ Unity Editor ウィンドウを前面に表示します。
179
199
  uloop focus-window
180
200
  ```
181
201
 
202
+ **Output:**
203
+ - `Success` (boolean) - 操作成功
204
+ - `Message` (string) - 結果メッセージ
205
+
182
206
  ### get-hierarchy
183
207
 
184
208
  Unity Hierarchy 構造を取得します。
@@ -199,6 +223,9 @@ uloop get-hierarchy --root-path "Canvas" --max-depth 3
199
223
  uloop get-hierarchy --use-selection true
200
224
  ```
201
225
 
226
+ **Output:**
227
+ - `hierarchyFilePath` (string) - 階層データを含む JSON ファイルのパス
228
+
202
229
  ### unity-search
203
230
 
204
231
  Unity プロジェクトを検索します。
@@ -224,6 +251,13 @@ uloop unity-search --search-query "t:Texture2D" --max-results 10
224
251
  uloop unity-search --search-query "t:MonoScript *.cs" --save-to-file true
225
252
  ```
226
253
 
254
+ **Output:**
255
+ - `TotalCount` (integer) - 見つかった結果の総数
256
+ - `DisplayedCount` (integer) - 返された結果数
257
+ - `Results` (array) - 検索結果アイテム
258
+ - `SearchDurationMs` (integer) - 検索時間(ミリ秒)
259
+ - `ResultsFilePath` (string) - ファイル保存時のファイルパス
260
+
227
261
  ### get-menu-items
228
262
 
229
263
  Unity MenuItem を取得します。
@@ -240,6 +274,11 @@ uloop get-menu-items
240
274
  uloop get-menu-items --filter-text "GameObject" --filter-type startswith
241
275
  ```
242
276
 
277
+ **Output:**
278
+ - `TotalCount` (integer) - フィルタ前の MenuItem 総数
279
+ - `FilteredCount` (integer) - フィルタ後の MenuItem 数
280
+ - `MenuItems` (array) - `Path`, `Priority`, `MethodName` フィールドを含むアイテム
281
+
243
282
  ### execute-menu-item
244
283
 
245
284
  パスを指定して Unity MenuItem を実行します。
@@ -254,6 +293,11 @@ uloop execute-menu-item --menu-item-path "File/Save"
254
293
  uloop execute-menu-item --menu-item-path "GameObject/Create Empty"
255
294
  ```
256
295
 
296
+ **Output:**
297
+ - `Success` (boolean) - 実行成功
298
+ - `MenuItemPath` (string) - 実行されたメニューパス
299
+ - `ExecutionMethod` (string) - 実行方式(EditorApplication または Reflection)
300
+
257
301
  ### find-game-objects
258
302
 
259
303
  検索条件で GameObject を検索します。
@@ -275,15 +319,20 @@ uloop find-game-objects --required-components "Camera" --include-inactive true
275
319
  uloop find-game-objects --tag "Enemy" --max-results 50
276
320
  ```
277
321
 
322
+ **Output:**
323
+ - `totalFound` (integer) - 見つかった GameObject の総数
324
+ - `results` (array) - `name`, `path`, `isActive`, `tag`, `layer`, `components` フィールドを含む GameObject
325
+
278
326
  ### screenshot
279
327
 
280
328
  Unity EditorWindow のスクリーンショットを撮影して PNG として保存します。
281
329
 
282
330
  | フラグ | 型 | デフォルト | 説明 |
283
331
  |--------|------|---------|-------------|
284
- | `--window-name` | string | `Game` | ウィンドウ名(例: "Game", "Scene", "Console", "Inspector") |
332
+ | `--window-name` | string | `Game` | ウィンドウ名(例: "Game", "Scene", "Console", "Inspector", "Project", "Hierarchy") |
285
333
  | `--resolution-scale` | number | `1` | 解像度スケール(0.1〜1.0) |
286
334
  | `--match-mode` | enum | `exact` | マッチングモード: `exact`, `prefix`, `contains`(大文字小文字区別なし) |
335
+ | `--output-directory` | string | | 出力ディレクトリパス(空の場合 .uloop/outputs/Screenshots/ を使用) |
287
336
 
288
337
  ```bash
289
338
  uloop screenshot
@@ -291,6 +340,10 @@ uloop screenshot --window-name Scene
291
340
  uloop screenshot --window-name Project --match-mode prefix
292
341
  ```
293
342
 
343
+ **Output:**
344
+ - `ScreenshotCount` (integer) - キャプチャされたウィンドウ数
345
+ - `Screenshots` (array) - `ImagePath`, `Width`, `Height`, `FileSizeBytes` フィールドを含むアイテム
346
+
294
347
  ### execute-dynamic-code
295
348
 
296
349
  Unity Editor 内で C# コードを実行します。
@@ -306,35 +359,51 @@ uloop execute-dynamic-code --code 'using UnityEngine; Debug.Log("Hello!");'
306
359
  uloop execute-dynamic-code --code 'Selection.activeGameObject.name' --compile-only true
307
360
  ```
308
361
 
309
- ### get-provider-details
362
+ **Output:**
363
+ - `Success` (boolean) - 実行成功
364
+ - `Result` (string) - 実行コードの戻り値
365
+ - `Logs` (array) - 実行中に出力されたログメッセージ
366
+ - `CompilationErrors` (array) - `Message`, `Line`, `Column`, `Hint` フィールドを含むエラー
310
367
 
311
- Unity Search プロバイダーの詳細を取得します。
368
+ ### control-play-mode
369
+
370
+ Unity Editor のプレイモードを制御します。
312
371
 
313
372
  | フラグ | 型 | デフォルト | 説明 |
314
373
  |--------|------|---------|-------------|
315
- | `--provider-id` | string | | 特定のプロバイダー ID(例: "asset", "scene") |
316
- | `--active-only` | boolean | `false` | アクティブなプロバイダーのみ |
317
- | `--include-descriptions` | boolean | `true` | 説明を含める |
318
- | `--sort-by-priority` | boolean | `true` | 優先度でソート |
374
+ | `--action` | enum | `Play` | アクション: `Play`, `Stop`, `Pause` |
319
375
 
320
376
  ```bash
321
- uloop get-provider-details
322
- uloop get-provider-details --provider-id asset
323
- uloop get-provider-details --active-only true
377
+ uloop control-play-mode --action Play
378
+ uloop control-play-mode --action Stop
379
+ uloop control-play-mode --action Pause
324
380
  ```
325
381
 
326
- ### control-play-mode
382
+ **Output:**
383
+ - `IsPlaying` (boolean) - プレイモード中
384
+ - `IsPaused` (boolean) - 一時停止中
385
+ - `Message` (string) - アクション説明
327
386
 
328
- Unity Editor のプレイモードを制御します。
387
+ ### launch
388
+
389
+ Unity プロジェクトを対応する Editor バージョンで起動します。
329
390
 
330
391
  | フラグ | 型 | デフォルト | 説明 |
331
392
  |--------|------|---------|-------------|
332
- | `--action` | enum | `Play` | アクション: `Play`, `Stop`, `Pause` |
393
+ | `[project-path]` | string | | Unity プロジェクトのパス(省略時はカレントディレクトリを検索) |
394
+ | `-r, --restart` | flag | | 実行中の Unity を終了して再起動 |
395
+ | `-q, --quit` | flag | | 実行中の Unity を正常終了 |
396
+ | `-d, --delete-recovery` | flag | | 起動前に Assets/_Recovery を削除 |
397
+ | `-p, --platform <platform>` | string | | ビルドターゲット(例: Android, iOS, StandaloneOSX) |
398
+ | `--max-depth <n>` | number | `3` | project-path 省略時の検索深度(-1 で無制限) |
399
+ | `-a, --add-unity-hub` | flag | | Unity Hub に追加のみ(起動しない) |
400
+ | `-f, --favorite` | flag | | Unity Hub にお気に入りとして追加(起動しない) |
333
401
 
334
402
  ```bash
335
- uloop control-play-mode --action Play
336
- uloop control-play-mode --action Stop
337
- uloop control-play-mode --action Pause
403
+ uloop launch
404
+ uloop launch /path/to/project
405
+ uloop launch -r
406
+ uloop launch -p Android
338
407
  ```
339
408
 
340
409
  ## シェル補完