cli-reference について
cli-referenceは、Even Hub CLIとアプリマニフェストを解説するエージェントスキルです。ログイン、初期化、QRコードでのテスト、パッケージ化、シェル補完、検証方法を扱います。
主な機能
- 01アカウントへのログイン
- 02app.jsonの生成
- 03QRコードによるローカルテスト
- 04アプリのパッケージ化
- 05シェル補完
- 06マニフェスト検証のガイダンス
活用シーン
- 01初期マニフェストの生成
- 02ローカルアプリのメガネへの読み込み
- 03配布用アプリのパッケージ化
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ even-realities/ everything-evenhub --skill cli-referenceインストール後、Claude Code で/cli-referenceを入力して読み込まれたか確認します。
詳細
Even Hub CLI リファレンス
インストール
# Install as dev dependency (recommended)
npm install -D @evenrealities/evenhub-cli
# Install globally
npm install -g @evenrealities/evenhub-cli
# Or run without installing via npx
npx @evenrealities/evenhub-cli <command>
現在のバージョン:v0.1.11
開発用依存関係としてインストールした場合は、npx evenhub <command> を使用して実行します。グローバルにインストールした場合は、evenhub <command> を直接実行します。
evenhub login
Even Hub アカウントで認証します。認証情報は今後も使用できるよう、ローカルに保存されます。
evenhub login
evenhub login -e [email protected]
| オプション | 説明 |
|---|---|
-e, --email <email> | アカウントのメールアドレス |
evenhub init
スターター用の app.json マニフェストファイルを生成します。
evenhub init
evenhub init -d ./my-project
evenhub init -o ./config/app.json
| オプション | 説明 |
|---|---|
-d, --directory <dir> | ファイルを作成するディレクトリ(デフォルト:./) |
-o, --output <path> | 出力ファイルのパス(--directory を上書きします) |
evenhub qr
開発の主なコマンドです。ローカルの開発サーバーを指す QR コードを生成します。ローカル IP を自動検出し、以降の実行では前回の設定を記憶します。
スマートフォンで Even Realities App を使って QR コードをスキャンすると、アプリがグラス上でホットリロードに対応して読み込まれます。
evenhub qr
evenhub qr --url "http://192.168.1.100:5173"
evenhub qr -i 192.168.1.100 -p 5173 --path /my-app
evenhub qr --url "http://192.168.1.100:5173" -e
| オプション | 説明 |
|---|---|
-u, --url <url> | 完全な URL(その他の URL オプションを無視します) |
-i, --ip <ip> | IP アドレスまたはホスト名 |
-p, --port [port] | ポート番号 |
--path <path> | URL パス |
--https | HTTP の代わりに HTTPS を使用します |
--http | HTTP を使用します(デフォルト) |
-e, --external | QR コードをターミナルではなく外部プログラムで開きます |
-s, --scale <n> | ファイル出力時の拡大率(デフォルト:4) |
--clear | キャッシュされたスキーム、IP、ポート、パスをクリアします |
evenhub pack
Even Hub で配布するために、アプリをパッケージ化します。
evenhub pack app.json dist -o myapp.ehpk
evenhub pack app.json ./build --check
| 引数/オプション | 説明 |
|---|---|
<json> | app.json マニフェストのパス |
<project> | ビルド済み出力フォルダーのパス |
-o, --output <file> | 出力ファイル名(デフォルト:out.ehpk) |
--no-ignore | 隠しファイル(ドットファイル)を含めます |
-c, --check | package_id が Even Hub で利用可能か確認します |
シェル補完
evenhub --completion-bash
evenhub --completion-zsh
evenhub --completion-fish
app.json マニフェストリファレンス
フィールド一覧
| フィールド | 型 | 必須 | ルール |
|---|---|---|---|
package_id | string | はい | リバースドメイン形式、小文字、ハイフンなし、セグメントは 2 個以上、各セグメントは小文字で始まること |
edition | string | はい | "202601" であること |
name | string | はい | 最大 20 文字 |
version | string | はい | Semver x.y.z |
min_app_version | string | はい | Even Realities App の最小バージョン(例:"2.0.0") |
min_sdk_version | string | はい | SDK の最小バージョン(例:"0.0.12") |
entrypoint | string | はい | ビルドフォルダーを基準とした HTML エントリーポイントのパス |
permissions | array | はい | 権限オブジェクトの配列。[] も指定できます |
supported_languages | array | はい | 有効な値:en、de、fr、es、it、zh、ja、ko |
テンプレート
{
"package_id": "com.example.myapp",
"edition": "202601",
"name": "My App",
"version": "0.1.0",
"min_app_version": "2.0.0",
"min_sdk_version": "0.0.12",
"entrypoint": "index.html",
"permissions": [],
"supported_languages": ["en"]
}
権限の形式
permissions はオブジェクトの配列です。各オブジェクトには次の項目が必要です。
name(string、必須)— 権限識別子desc(string、必須)— 説明、1~300 文字whitelist(string[])—network権限でのみ有効
有効な権限名: network、location、g2-microphone、phone-microphone、album、camera
よくある間違い: permissions はオブジェクトの配列である必要があります。キーと値のマップではありません。
// Correct
"permissions": [
{ "name": "network", "desc": "Access the internet", "whitelist": ["https://api.example.com"] },
{ "name": "location", "desc": "Access device location" }
]
// Wrong — do NOT use a map/object
"permissions": {
"network": "Access the internet"
}
トラブルシューティング(evenhub pack)
| エラー | 解決方法 |
|---|---|
Invalid package id | 小文字のリバースドメイン形式にし、セグメントを 2 個以上にします。ハイフン、大文字、先頭の数字は使用できません |
name: must be 20 characters or fewer | アプリ名を短くします |
version: must be in x.y.z format | 3 つの部分からなる Semver を使用します |
min_app_version/min_sdk_version: expected string, received undefined | 両方のフィールドが必須です。app.json に追加してください |
permissions: each permission must be an object | name と desc フィールドを含むオブジェクトの配列を使用します |
supported_languages: invalid language | サポート対象の ISO コードを小文字で使用します |
Entrypoint file not found | ファイルがビルドフォルダー内に存在することを確認します |
Project folder not found | まず npm run build を実行します |
タスク
$ARGUMENTS
コメント
Markdown 対応