wuji-cli-user について
wuji-cli-user は、`wuji user` CLI でローカルのユーザープロファイルとキャリブレーションバンドルを管理するスキルです。デバイスに接続せず、プロファイル選択やデータ確認、インポートとエクスポートを行えます。
主な機能
- 01ユーザープロファイルの一覧と確認
- 02プロファイルの作成、切り替え、変更、削除
- 03キャリブレーションバンドルのインポートとエクスポート
- 04手と触覚のキャリブレーションデータ確認
- 05構造化 JSON 出力
活用シーン
- 01手のキャリブレーション用プロファイルの作成
- 02マシン間でのキャリブレーションデータ移行
- 03インポート前のバンドル確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ wuji-technology/ wuji-cli --skill wuji-cli-userインストール後、Claude Code で/wuji-cli-userを入力して読み込まれたか確認します。
詳細
ユーザープロファイルは、~/.wuji/sdk に保存される、1 人分のキャリブレーションデータを記録したローカルレコードです。wuji user はこれらのプロファイルを管理し、キャリブレーションバンドルをマシン間で移動します。各サブコマンドはローカル操作(レジストリとファイルのみで、デバイスには接続しません)で、--json に対応しています。
基本概念
- プロファイルは名前をキーとして識別します。これはユーザーに表示される唯一の識別子です(OS アカウントとの紐付けはなく、SDK 内部の ID は公開されません)。
- キャリブレーションの範囲はプロファイルごとに異なります。ハンドモデルはユーザー + 手の左右ごと、触覚データはデバイスの SNごとです。
- Default ユーザーはキャリブレーション済みハンドモデルを保存できません。名前付きプロファイルがアクティブになるまで、
wuji calib hand-modelは実行できません。触覚キャリブレーションはデバイス固有であり、Default がアクティブな間も保存、確認、エクスポート、インポートできます。 - ステートレスでローカルに動作します。永続的な接続はなく、デバイスも関与しません。
コマンド
| コマンド | 目的 |
|---|---|
wuji user list | プロファイルを一覧表示します。現在のプロファイルには * が付き、Default には (hand model not calibratable) と表示されます。各行には左右それぞれのハンドモデルのキャリブレーション状態が表示されます |
wuji user show [name] | プロファイルの説明、ハンドモデル(状態/ファイル/サイズ/時刻)、触覚データ(SN ごと)の成果物を表示します。省略した場合は現在のプロファイルが対象です |
wuji user create <name> [-d|--description <text>] [--switch] | 任意の説明を付けて名前付きプロファイルを作成します(--switch を指定しない限り、切り替えません) |
wuji user switch [name] | プロファイルを現在のものに設定します。Human TTY で名前を省略すると、プロファイル選択画面が開きます |
wuji user rename <old> <new> | プロファイルの名前を変更します。キャリブレーションデータも引き継がれます |
wuji user delete [name] [--yes] | プロファイルとそのキャリブレーションデータをすべて削除します。Human TTY で名前を省略すると、プロファイル選択画面が開きます |
wuji user export <path> [--force] | 現在のプロファイルのキャリブレーションバンドルを .zip にエクスポートします |
wuji user import <path> [--preview] [-y|--yes] [--as <name>] | バンドルを現在のプロファイル(または新しいプロファイル)にインポートします |
詳細を確認するには、任意のサブコマンドに --help を追加してください。
安全性(破壊的な操作の前にお読みください)
deleteは取り消せない操作であり、プロファイルのすべてのキャリブレーションデータが削除されます。Human TTY で名前を省略すると、Defaultを除外し、現在のプロファイルを示し、Cancel operationをデフォルトにしたセレクターが開きます。選択後、CLI は削除される内容を表示し、バックアップとしてwuji user exportを提案したうえで、デフォルトが「いいえ」の確認を求めます。ユーザーに代わってプロファイルを選択しないでください。ユーザーがその特定のプロファイルの削除を明示的に許可していない限り、--yesを渡さないでください。--yesを使うには、名前を指定する必要があります。Defaultは削除できません。importは対象プロファイルのアーティファクトを上書きします。まず--preview(または対話型 Cliclack のプレビュー)で内容を確認し、続行する前にソースユーザー、バンドルのバージョン、内容、競合の有無を伝えてください。Human TTY モードでは、固定フッターのメニューを使って、現在のプロファイルを上書きするか、新しいプロファイルを作成するか、キャンセルするかを選択します。--as <name>を指定すると、新しいプロファイルを作成する方法があらかじめ選択されます。バンドルのユーザーが異なり、対象にすでにアーティファクトがある場合、CLI は上書き前にcalibration-import-backups/の下へバックアップを作成します。- ハンドモデルを含むバンドルは
Defaultにインポートできません。Defaultはハンドモデルのアーティファクトを保持できないため、モデルが気付かれないまま破棄されて処理が成功するのではなく、CLI は拒否します(終了コード5)。--as <name>を指定して名前付きプロファイルにインポートするか、先にwuji user create <name> --switchを実行してください。触覚データのみのバンドルは、通常どおりDefaultにインポートできます。 - **インポートはアトミックではありません。**途中で失敗すると、プロファイルに新旧のアーティファクトが混在することがあります。CLI はその旨を伝え、バックアップが作成されている場合はそのディレクトリを示し、
wuji user show <name>で確認するよう案内します。その復旧方法を伝えてください。むやみに再試行しないでください。 - 非対話モードでは明示的な同意が必要です。
--json/--jsonlを使用する場合、または TTY がない場合、読み取り専用のインポートプレビューには--previewを、インポートの実行には-y/--yesを使用してください。deleteには、明示的なプロファイル名と--yesの両方が必要です。ユーザーの意図を確認してから確認フラグを追加してください。デフォルトで追加してはいけません。 exportが既存のファイルを黙って上書きすることはありません。Human TTY モードで既存のファイルにエクスポートすると確認が求められ、デフォルトは「いいえ」です。非対話モードや構造化出力では、引き続き--forceが必要です。自動生成名が既存の名前と衝突するディレクトリの指定も同様です。キャリブレーションデータがないプロファイルのエクスポートは失敗し、まずキャリブレーションを完了するよう案内されます。何も書き込まれません。Defaultは保護されています。削除も名前の変更もできません。現在のプロファイルを削除すると、現在のユーザーはDefaultにリセットされます(CLI がその旨を報告します)。- 複数のプロファイルからユーザーに代わって選択しないでください。Human TTY で名前を指定せずに
wuji user switchを実行すると、Defaultを含み、現在のプロファイルを示し、Cancel operationをデフォルトにしたセレクターが開きます。ユーザーに選択してもらってください。TTY 以外では、明示的に指定されたプロファイル名を渡してください。プロファイル名が見つからない場合は、wuji user listを実行して利用可能なプロファイルを伝え、どれを使うか尋ねてください。
キャリブレーションのワークフロー
初回またはデフォルトユーザーの場合のワークフロー:
wuji user create alice -d "Left-hand operator" --switch # named profile is now current
wuji calib hand-model # calibration is allowed
ハンドモデルのキャリブレーションでデフォルトユーザーに関する案内(先に create/switch が必要)が表示された場合は、名前付きプロファイルを作成して切り替えてから、再試行してください。触覚キャリブレーションには名前付きプロファイルは必要ありません。いずれかのキャリブレーションワークフローを開始する前に確認を得てください(wuji-cli-calib スキルを参照)。
終了コードと JSON
| コード | 意味 |
|---|---|
| 0 | 成功(現在のプロファイルへの切り替えが不要な場合を含む) |
| 2 | ユーザー名が無効です |
| 3 | ユーザーはすでに存在します |
| 4 | ユーザーが見つかりません |
| 5 | デフォルトユーザーの保護(Default の削除/名前変更、またはデフォルトとしての手のモデルのキャリブレーションを実行) |
| 6 | バンドルファイルが見つかりません |
| 7 | バンドルが無効、または互換性のないバージョンです |
| 8 | エクスポート先がすでに存在します(--force を使用してください) |
| 9 | 確認時にキャンセルされました |
--json/--jsonl を指定すると、成功時はコマンドごとに 1 つのドキュメントが出力され、エラー時は {"error":{"code":N,"message":...}} が出力されます。メッセージのテキストを解析するのではなく、code(およびプロセスの終了コード)に基づいて分岐してください。
create、switch、rename、delete はすべて current_user を報告します。これは、その操作によって変更されたかどうかにかかわらず、操作後にアクティブなプロファイルです。list --json を追加で実行せず、コマンド自体の出力から読み取ってください。このフィールドは常に存在するため、操作が自分に影響したかどうかで分岐する必要はありません。rename は previous_name も報告するため、スクリプトで名前を変更したプロファイルを確認できます。
例
wuji user list --json # Inspect profiles + calibration state
wuji user create alice --description "Left-hand operator" --switch # Create and activate a profile
wuji user show --json # Current profile's artifacts
wuji user export ./alice.zip # Export current profile
wuji user import ./alice.zip --preview # Inspect a bundle without importing
wuji user import ./alice.zip # Preview, then confirm import
wuji user import ./alice.zip --as bob # Import into a fresh profile