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.4
or with uv:
uv add vuer-cli==0.0.4
Environment Variables
| Variable | Required | Description |
|---|---|---|
VUER_AUTH_TOKEN |
✅ | JWT token used for all authenticated requests |
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 |
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
Quick start — configure environment variables
VUER_HUB_URL is required and has no default. Set it to the base URL of your Vuer Hub API.
export VUER_HUB_URL="https://hub.vuer.ai/api"
# Optional: token for private hubs or authenticated operations
export VUER_AUTH_TOKEN="eyJhbGci..."
# Optional: enable dry-run mode to simulate operations (no network changes)
export VUER_CLI_DRY_RUN="1"
# 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.4.tar.gz.
File metadata
- Download URL: vuer_cli-0.0.4.tar.gz
- Upload date:
- Size: 52.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1937958b8930978ba6539a470a8ac395ba26b76a3fe22f05f631c71aa1a7cde4
|
|
| MD5 |
abe4b9a815e6a6276eeefc6e2bd97a4d
|
|
| BLAKE2b-256 |
d1be82562baa9b545056d0f5437fdd3bf0586824eb0e978924ce55e8679e6e04
|
File details
Details for the file vuer_cli-0.0.4-py3-none-any.whl.
File metadata
- Download URL: vuer_cli-0.0.4-py3-none-any.whl
- Upload date:
- Size: 52.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7be6e3c8f2eef3b9b217876e097a40760d2ea290a79b700f126515cfe73289a6
|
|
| MD5 |
12acc4a5d4e9e8fdac710fab9676b4d1
|
|
| BLAKE2b-256 |
471c0d5551137e34bb6708a63e8cc09cdfcbd2d2f0e1e90d95a13fda065db143
|