Skip to main content

Vuer Hub CLI

Environment management plugin for the Vuer CLI. Provides commands for managing simulation environments through the Vuer Hub registry.

Installation

pip install vuer-hub==0.3.0

Or with uv:

uv add vuer-hub==0.3.0

Requirements

  • Python >= 3.10
  • Vuer CLI (vuer>=0.1.6) — vuer-hub ships no command of its own; it registers subcommands that the vuer CLI discovers and runs.

Quick Start

# 1. Point the CLI at the hub and authenticate
export VUER_HUB_URL=https://api.vuer.ai
vuer login --env production

# 2. Publish an environment directory (must contain environment.json)
vuer envs-publish --directory ./my-environment

# 3. Download it back anywhere
vuer envs-pull my-environment/1.0.0 --output ./downloads

Commands

Once installed, the following commands become available through the vuer CLI:

Authentication

# Login to Vuer Hub (dev environment)
vuer login

# Login to production environment
vuer login --env production

Uses the OAuth Device Flow: the command prints a URL and a code, you authorize in the browser, and credentials are saved to ~/.vuer/credentials.

Environment Management

# Sync all dependencies from environment.json into vuer_environments/
vuer sync

# Add an environment to environment.json and sync
vuer add some-environment/1.2.3

# Remove an environment from environment.json and sync
vuer remove some-environment/1.2.3

# Upgrade an environment to the latest version
vuer upgrade some-environment

sync resolves transitive dependencies via the backend, downloads each environment into vuer_environments/<name>/<version>/, and writes an environments-lock.yaml with the resolved set. Re-running skips already-synced environments.

Browsing Versions

# List every published version of an environment, newest first
vuer envs-versions some-environment
[INFO] Found 3 versions for 'some-environment':
  1.2.5  2026-03-01 10:22
  1.2.4  2026-02-11 08:05
  1.0.0  2026-01-05 14:40

Useful for picking a version to pass to vuer add or vuer envs-pull, and for seeing what vuer upgrade would resolve to. Reading versions is a public operation, so this command works without vuer login; it only needs VUER_HUB_URL.

Publishing & Pulling

# Publish current directory as an environment
vuer envs-publish

# Publish from a specific directory
vuer envs-publish --directory ./my-environment

# Publish under an organization (environment becomes org-owned)
vuer envs-publish --org acme

# Simulate a publish without uploading (recommended first run)
vuer envs-publish --directory ./my-environment --dry-run

# Pull an environment from the registry (positional name/version)
vuer envs-pull my-environment/1.0.0

# Pull to a custom output directory
vuer envs-pull my-environment/2.0.0 --output ./downloads

envs-publish archives the directory into a .tgz (excluding __pycache__, .cache, .git and *.pyc) and uploads it. envs-pull streams the archive with a progress bar and extracts it to <output>/<name>/<version>/.

Public environments can be pulled, synced and listed without logging in. Anything else -- PRIVATE or ORG_MEMBERS -- requires vuer login, and reads as though it does not exist if you cannot see it.

Note: the same name + version cannot be published twice (the registry returns a conflict). Bump the version in environment.json to publish an update.

Ownership and visibility

Two independent choices. --org (or organization in environment.json) sets who owns the environment; visibility sets who can see it. Without an org, it is owned by you personally.

visibility Who can see it Needs an org
PUBLIC Anyone, without logging in No
PRIVATE Only you, even when org-owned No
ORG_MEMBERS Every member of the owning org Yes

To publish something your team can use but outsiders cannot:

{
  "name": "acme-robot",
  "version": "1.0.0",
  "visibility": "ORG_MEMBERS",
  "organization": "acme"
}
vuer envs-publish          # or: vuer envs-publish --org acme

You have to be a member of the org, otherwise the publish is rejected. --org overrides organization from the file, warns when the two differ, and never rewrites the file.

The environment.json file

envs-publish, sync, add and remove all operate on an environment.json in the target directory. Minimum required fields are name and version:

{
  "name": "my-environment",
  "version": "1.0.0",
  "description": "Short description of the environment",
  "visibility": "PUBLIC",
  "organization": "acme",
  "env-type": "genesis",
  "dependencies": {
    "some-dependency": "1.2.3"
  }
}
  • name — required, no whitespace.
  • version — required, valid semver (e.g. 1.0.0).
  • visibility — PUBLIC, PRIVATE, or ORG_MEMBERS (default PUBLIC).
  • organization — org slug to publish under; omit to own it yourself. See Ownership and visibility.
  • env-type — free-form environment type tag (e.g. genesis, isaac).
  • dependencies — map of name → exact version for transitive resolution. Ranges (^1.2.3, ~1.2.3) are not supported; vuer envs-versions <name> lists what you can pin to.

Environment Variables

  • VUER_HUB_URL - Base URL of the Vuer Hub API (e.g. https://api.vuer.ai)
  • VUER_AUTH_TOKEN - JWT token, used instead of your vuer login credentials. A stale value here silently shadows a fresh login, so unset it if you get "invalid or expired token" right after logging in.
  • VUER_CLI_DRY_RUN - Set to any value (except "0", "false", "False") to enable dry-run mode

Configuration

Credentials are stored in ~/.vuer/credentials after running vuer login.

License

MIT

Metadata

Release files for vuer-hub 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vuer-hub 0.3.0
File Size Uploaded Provenance Actions
vuer_hub-0.3.0.tar.gz 30.4 kB Without provenance Details for vuer_hub-0.3.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for vuer-hub 0.3.0
File Interpreter ABI Platform Actions
vuer_hub-0.3.0-py3-none-any.whl Python 3 none any Details for vuer_hub-0.3.0-py3-none-any.whl

Total release size: 59.4 kB

Release files / vuer_hub-0.3.0.tar.gz

Download URL vuer_hub-0.3.0.tar.gz
Size 30.4 kB
Tags Source
SHA-256 checksum
How to use checksums
fe99ae58808c511ee194b851472e384bc240d0e36be2172375c1b230d50df208
BLAKE2b-256 checksum
How to use checksums
396f9e13ac6ea2de8008f3a808dbb96e00d92f1b8f93b839659fdfbc2409c9a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.11

Release files / vuer_hub-0.3.0-py3-none-any.whl

Download URL vuer_hub-0.3.0-py3-none-any.whl
Size 29.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6f527a20e1eb76d7cb22df5cd1178234e6d21d8bb12c6210d9053377e21e5b6c
BLAKE2b-256 checksum
How to use checksums
141a910fa224ff8f6f8c7c66cbec431082f46f4d781c3fcaf7e1a130494a3441
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.11

Security for vuer-hub 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page