even-realities/everything-evenhub

cli-reference

Even Hub CLI command reference — login, init, qr, and pack commands with all options.

ソースを見る
リポジトリの原文

見出し、例、コード、表、リンク、参照画像を含む原文を表示しています。

Even Hub CLI Reference

Installation

bash
# 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>

Current version: v0.1.11

When installed as a dev dependency, use npx evenhub <command> to run. When installed globally, use evenhub <command> directly.


evenhub login

Authenticate with your Even Hub account. Credentials are saved locally for future use.

bash
evenhub login
evenhub login -e your@email.com
OptionDescription
-e, --email <email>Your account email

evenhub init

Generate a starter app.json manifest file.

bash
evenhub init
evenhub init -d ./my-project
evenhub init -o ./config/app.json
OptionDescription
-d, --directory <dir>Directory to create file in (default: ./)
-o, --output <path>Output file path (overrides --directory)

evenhub qr

Primary development command. Generates a QR code pointing to your local dev server. Auto-detects local IP and remembers previous settings on subsequent runs.

Scan the QR code with the Even Realities App on your phone — the app loads on your glasses with hot reload.

bash
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
OptionDescription
-u, --url <url>Full URL (ignores other URL options)
-i, --ip <ip>IP address or hostname
-p, --port [port]Port number
--path <path>URL path
--httpsUse HTTPS instead of HTTP
--httpUse HTTP (default)
-e, --externalOpen QR in external program instead of terminal
-s, --scale <n>Scale factor for file output (default: 4)
--clearClear cached scheme, IP, port, and path

evenhub pack

Package your app for distribution on Even Hub.

bash
evenhub pack app.json dist -o myapp.ehpk
evenhub pack app.json ./build --check
Argument/OptionDescription
<json>Path to app.json manifest
<project>Path to built output folder
-o, --output <file>Output filename (default: out.ehpk)
--no-ignoreInclude hidden files (dotfiles)
-c, --checkCheck if package_id is available on Even Hub

Shell Completions

bash
evenhub --completion-bash
evenhub --completion-zsh
evenhub --completion-fish

app.json Manifest Reference

Field Table

FieldTypeRequiredRules
package_idstringYesReverse-domain, lowercase, no hyphens, min 2 segments, each segment starts with a lowercase letter
editionstringYesMust be "202601"
namestringYesMax 20 characters
versionstringYesSemver x.y.z
min_app_versionstringYesMin Even Realities App version (e.g., "2.0.0")
min_sdk_versionstringYesMin SDK version (e.g., "0.0.12")
entrypointstringYesPath to HTML entry relative to build folder
permissionsarrayYesArray of permission objects. Can be []
supported_languagesarrayYesValid: en, de, fr, es, it, zh, ja, ko

Template

json
{
  "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 Format

Permissions is an array of objects. Each object requires:

  • name (string, required) — permission identifier
  • desc (string, required) — description, 1-300 characters
  • whitelist (string[]) — only valid for the network permission

Valid permission names: network, location, g2-microphone, phone-microphone, album, camera

Common mistake: permissions must be an array of objects, NOT a key-value map.

json
// 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"
}

Troubleshooting (evenhub pack)

ErrorFix
Invalid package idLowercase reverse-domain, min 2 segments, no hyphens, no uppercase, no leading numbers
name: must be 20 characters or fewerShorten app name
version: must be in x.y.z formatUse three-part semver
min_app_version/min_sdk_version: expected string, received undefinedBoth fields are required — add them to app.json
permissions: each permission must be an objectUse array of objects with name + desc fields
supported_languages: invalid languageUse lowercase ISO codes from the supported set
Entrypoint file not foundEnsure the file exists in the build folder
Project folder not foundRun npm run build first

Task

$ARGUMENTS

同じリポジトリから

関連する Skills

すべての Skills