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).
  • visibilityPUBLIC, 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

Download files

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

Source Distribution

vuer_hub-0.3.0.tar.gz (30.4 kB view details)

Uploaded Source

Built Distribution

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

vuer_hub-0.3.0-py3-none-any.whl (29.0 kB view details)

Uploaded Python 3

File details

Details for the file vuer_hub-0.3.0.tar.gz.

File metadata

  • Download URL: vuer_hub-0.3.0.tar.gz
  • Upload date:
  • Size: 30.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.11

File hashes

Hashes for vuer_hub-0.3.0.tar.gz
Algorithm Hash digest
SHA256 fe99ae58808c511ee194b851472e384bc240d0e36be2172375c1b230d50df208
MD5 93d853daed565ff0f5e4abdb92d826b2
BLAKE2b-256 396f9e13ac6ea2de8008f3a808dbb96e00d92f1b8f93b839659fdfbc2409c9a2

See more details on using hashes here.

File details

Details for the file vuer_hub-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: vuer_hub-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 29.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.11

File hashes

Hashes for vuer_hub-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6f527a20e1eb76d7cb22df5cd1178234e6d21d8bb12c6210d9053377e21e5b6c
MD5 c10e510203cccca94de2427b1ebeeba2
BLAKE2b-256 141a910fa224ff8f6f8c7c66cbec431082f46f4d781c3fcaf7e1a130494a3441

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 files

0.1.0

2 files

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