Skip to main content

A Python CLI for Vuer, a real-time 3D visualization library

Project description

Vuer Hub Environment Manager

Vuer HUB and the vuer command line tool enable you to manage, version-control, and distribute physical simulation environments the same way you manage software packages.

Installation

pip install vuer-cli==0.0.6

or with uv:

uv add vuer-cli==0.0.6

Environment Variables

Variable Required Description
VUER_HUB_URL Base URL of the Vuer Hub API (required — no default; e.g. https://hub.vuer.ai/api)

Commands

Command Description
vuer Show top-level help and list available commands
vuer --help Show detailed CLI help
login Authenticate with Vuer Hub using OAuth Device Flow
sync Sync all environments from environment.json dependencies (like npm install)
add Add an environment dependency to environment.json
remove Remove an environment dependency from environment.json
upgrade Upgrade an environment dependency in environment.json to latest
envs-publish Publish an environment version
envs-pull Download an environment by ID or name/version

Usage

Authentication

The easiest way to authenticate is using the login command:

# Set the Hub URL first
export VUER_HUB_URL="https://hub.vuer.ai/api"

# Login with dev environment (default)
vuer login

# Or login with production environment
vuer login --env production

After successful authentication:

  • ✅ Credentials are automatically saved and configured
  • Vuer CLI will automatically use the saved credentials - no manual setup needed!
  • ✅ Works immediately in the current terminal
  • ✅ Works in all new terminals (auto-configured)
  • ✅ Cross-platform support (Windows, macOS, Linux)

How it works:

  1. Saves credentials to ~/.vuer/credentials (used automatically by CLI)
  2. Creates shell script at ~/.vuer/env.sh (for manual use if needed)
  3. Windows: Sets user environment variables via setx
  4. macOS/Linux: Automatically adds to your shell config (~/.zshrc or ~/.bashrc)

Manual setup (optional):

If you prefer to set environment variables manually:

export VUER_HUB_URL="https://hub.vuer.ai/api"
export VUER_AUTH_TOKEN="eyJhbGci..."
# Optional: enable dry-run mode to simulate operations (no network changes)
export VUER_CLI_DRY_RUN="1"

Basic Commands

# Sync all environments from environment.json dependencies
# Reads environment.json in current directory, validates dependencies,
# and downloads all environments (including transitive deps) to vuer_environments/
vuer sync
vuer sync --output ./my-envs

# Publish an environment (requires environment.json in the directory)
vuer envs-publish --directory ./my-environment

# Pull an environment (download and unpack into a directory)
vuer envs-pull <environmentId>
vuer envs-pull my-environment/1.0.0

# Add an environment
vuer add --env <environmentId>

Sync Command Details

The sync command works like npm install:

  1. Reads environment.json from the current directory
  2. Parses the dependencies field (e.g., {"some-dependency": "1.2.3"})
  3. Validates all dependencies exist in the backend
  4. Fetches transitive dependencies for each environment
  5. Downloads all environments (direct + transitive) to vuer_environments/ directory
  6. Preserves environment.json inside downloaded environment directories

Publishing metadata (used by envs-publish)

{
  "name": "my-environment",
  "version": "v1.0.0",
  "description": "Demo robotic arm env",
  "visibility": "PUBLIC",
  "env-type": "isaac",
  "dependencies": {
    "my-environment-1": "v4.0.0"
  }
}

Fields and recommendations for publishing metadata

  • name (string, required): logical name of the environment (no slashes). This becomes the directory name under vuer_environments/<name>/<version>/ when downloaded.
  • version (string, required): environment version string. Use a stable, reproducible format (we recommend semantic style like v1.0.0).
  • description (string, optional): short human-readable description of the environment.
  • visibility (string, optional): publishing visibility, commonly PUBLIC or PRIVATE.
  • env-type (string, optional): environment runtime/type identifier (for example isaac, gazebo, etc.).
  • dependencies (object, optional): mapping of dependency-name → version (e.g. "some-dependency": "v1.2.3"). These declare upstream environment dependencies and are validated during publish.

Publishing notes

  • envs-publish expects the target directory to contain a valid environment.json. At minimum name and version must be present; envs-publish will validate metadata before uploading to VUER_HUB_URL.
  • The environment.json baked into an environment package is preserved when that package is later downloaded to vuer_environments/<name>/<version>/.
  • Keep the publishing environment.json authoritative: use dependencies to declare exact name → version mappings for transitive resolution.

Project-level environment.json used by vuer sync

For projects that consume environments (i.e., run vuer sync), you usually keep a simple environment.json at the project root that focuses on the dependencies map:

{
  "dependencies": {
    "some-dependency": "v1.2.3",
    "another-dependency": "v4.5.6"
  }
}

Note: The project-level environment.json used by vuer sync typically only needs a dependencies mapping. The publishing environment.json (shown above) must include name and version.

Use vuer <command> --help for full options.

Add Command Details

  • Purpose: add an environment dependency to the current directory's environment.json.
  • Input: an environment identifier in canonical name/version form or a hub-specific environment ID (example: my-environment/1.0.0).
  • Behavior: validates the environment exists on the configured VUER_HUB_URL and updates the dependencies section of environment.json. Run vuer sync afterwards to download the environment and its transitive dependencies into vuer_environments/.

Remove Command Details

  • Purpose: remove a specific environment dependency from the current directory's environment.json.
  • Input: a canonical name/version spec (exact match required).
  • Behavior: removes only the exact name/version entry from environment.json. If the corresponding version directory exists under vuer_environments/<name>/<version>/, the local copy will be removed; empty parent directories are cleaned up automatically.

Upgrade Command Details

  • Purpose: update an existing dependency in environment.json to a newer version.
  • Input: a dependency name (to upgrade to the latest available) or an explicit name/version to target.
  • Behavior: queries the configured hub for available versions, updates environment.json with the selected version, and leaves installation to vuer sync.

envs-publish Command Details

  • Purpose: publish a prepared environment directory to the configured hub.
  • Input: a local directory containing an environment.json and environment content.
  • Behavior: validates the local environment metadata, then uploads the environment as a new version to VUER_HUB_URL. Authenticated operations require VUER_AUTH_TOKEN.

envs-pull Command Details

  • Purpose: download an environment from the hub and place it into a local directory.
  • Input: a hub environment ID or canonical name/version (e.g., my-environment/1.0.0).
  • Behavior: downloads the environment and creates the nested path vuer_environments/<name>/<version>/ (or an alternate --output path), preserving the bundled environment.json metadata.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vuer_cli-0.0.6.tar.gz (57.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vuer_cli-0.0.6-py3-none-any.whl (58.5 kB view details)

Uploaded Python 3

File details

Details for the file vuer_cli-0.0.6.tar.gz.

File metadata

  • Download URL: vuer_cli-0.0.6.tar.gz
  • Upload date:
  • Size: 57.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.5

File hashes

Hashes for vuer_cli-0.0.6.tar.gz
Algorithm Hash digest
SHA256 6bf41f89c9e7d16091037cb3eadacd2af3c9f69d1f3ab140000910ca236bdfbb
MD5 da3d38a153e49baf9e13a5cd1545ee59
BLAKE2b-256 0003ec498482cc0bf5979bfd1c89c1e0d8018d3f16e56eab8c78c6931dc8f3cc

See more details on using hashes here.

File details

Details for the file vuer_cli-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: vuer_cli-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 58.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.5

File hashes

Hashes for vuer_cli-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 fb35f4afc71c1309d49e2d74730dd96d9bee0858e085e20a11a29410c95c5472
MD5 c03024f51d103c98d45100712e731dd6
BLAKE2b-256 e913132bc885d2b16d716eb41374c7f2e1bf3e3cd6b80ab223d66f37e0bdc1f7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page