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.7
or with uv:
uv add vuer-cli==0.0.7
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 to
~/.vuer/credentials - ✅ Vuer CLI will automatically use the saved credentials - no manual setup needed!
- ✅ Automatic token refresh - expired tokens are refreshed automatically using refresh token
- ✅ Works immediately across all terminals
- ✅ Cross-platform support (Windows, macOS, Linux)
How it works:
- Credentials (access_token + refresh_token) are saved to
~/.vuer/credentials(JSON file) - CLI automatically reads from this file when needed
- When access token expires, CLI automatically refreshes it using the refresh token
- If refresh fails, you'll be prompted to run
vuer loginagain - Priority: Environment variable
VUER_AUTH_TOKEN> credentials file
Manual setup (optional):
If you prefer to set environment variables manually instead of using vuer login:
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.
Metadata
Release files for vuer-cli 0.0.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vuer_cli-0.0.7.tar.gz | 58.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vuer_cli-0.0.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 117.3 kB
Release files / vuer_cli-0.0.7.tar.gz
| Download URL | vuer_cli-0.0.7.tar.gz |
|---|---|
| Size | 58.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
aadf96281b39c3079fea6ce889520b4151f531494d9750654d0a33e11cf6cd9f
|
|
BLAKE2b-256 checksum How to use checksums |
08adaf1320356b89f355bfdab759c0b15b588b7a8ab3d294db4d89be84ea2c6b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.5
|
Release files / vuer_cli-0.0.7-py3-none-any.whl
| Download URL | vuer_cli-0.0.7-py3-none-any.whl |
|---|---|
| Size | 59.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5ee2834644222a7945e5adebe79c3a1fca29dc5fd4d6101c7af1f5e772cb3058
|
|
BLAKE2b-256 checksum How to use checksums |
4c470d3bedc659fbdd56838b45725a84919568c0dd825a4b48c4810264d0384d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.5
|