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:
- Saves credentials to
~/.vuer/credentials(used automatically by CLI) - Creates shell script at
~/.vuer/env.sh(for manual use if needed) - Windows: Sets user environment variables via
setx - 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:
- Reads
environment.jsonfrom the current directory - Parses the
dependenciesfield (e.g.,{"some-dependency": "1.2.3"}) - Validates all dependencies exist in the backend
- Fetches transitive dependencies for each environment
- Downloads all environments (direct + transitive) to
vuer_environments/directory - Preserves
environment.jsoninside 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
PUBLICorPRIVATE. - 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-publishexpects the target directory to contain a validenvironment.json. At minimumnameandversionmust be present;envs-publishwill validate metadata before uploading toVUER_HUB_URL.- The
environment.jsonbaked into an environment package is preserved when that package is later downloaded tovuer_environments/<name>/<version>/. - Keep the publishing
environment.jsonauthoritative: usedependenciesto declare exactname → versionmappings 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/versionform or a hub-specific environment ID (example:my-environment/1.0.0). - Behavior: validates the environment exists on the configured
VUER_HUB_URLand updates thedependenciessection ofenvironment.json. Runvuer syncafterwards to download the environment and its transitive dependencies intovuer_environments/.
Remove Command Details
- Purpose: remove a specific environment dependency from the current directory's
environment.json. - Input: a canonical
name/versionspec (exact match required). - Behavior: removes only the exact
name/versionentry fromenvironment.json. If the corresponding version directory exists undervuer_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.jsonto a newer version. - Input: a dependency name (to upgrade to the latest available) or an explicit
name/versionto target. - Behavior: queries the configured hub for available versions, updates
environment.jsonwith the selected version, and leaves installation tovuer sync.
envs-publish Command Details
- Purpose: publish a prepared environment directory to the configured hub.
- Input: a local directory containing an
environment.jsonand environment content. - Behavior: validates the local environment metadata, then uploads the environment as a new version to
VUER_HUB_URL. Authenticated operations requireVUER_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--outputpath), preserving the bundledenvironment.jsonmetadata.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6bf41f89c9e7d16091037cb3eadacd2af3c9f69d1f3ab140000910ca236bdfbb
|
|
| MD5 |
da3d38a153e49baf9e13a5cd1545ee59
|
|
| BLAKE2b-256 |
0003ec498482cc0bf5979bfd1c89c1e0d8018d3f16e56eab8c78c6931dc8f3cc
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb35f4afc71c1309d49e2d74730dd96d9bee0858e085e20a11a29410c95c5472
|
|
| MD5 |
c03024f51d103c98d45100712e731dd6
|
|
| BLAKE2b-256 |
e913132bc885d2b16d716eb41374c7f2e1bf3e3cd6b80ab223d66f37e0bdc1f7
|