Command-line interface for managing GPU pods on the Lium platform.
pip install lium.io# First-time setup
lium init
# List available executors (GPU machines)
lium ls
# Create a pod using executor index
lium up 1 # Use executor #1 from previous ls
# Or create a pod using filters
lium up --gpu A100 # Auto-select best A100 executor
# List your pods
lium ps
# Copy files to pod
lium scp 1 ./my_script.py
# SSH into a pod
lium ssh <pod-name>
# Stop a pod
lium rm <pod-name>The SDK and decorator API ship with Sphinx-powered docs that are ready for Read the Docs. Build them locally with:
pip install -e .[docs]
sphinx-build -b html docs docs/_build/htmlThe generated HTML lives in docs/_build/html. Publishing to Read the Docs only
requires connecting this repository; the .readthedocs.yaml file points RTD at
docs/conf.py.
lium init- Initialize configuration (API key, SSH keys)lium ls [GPU_TYPE]- List available executorslium up [EXECUTOR_ID]- Create a pod (use executor ID or filters like--gpu,--count,--country)lium ps- List active podslium ssh <POD>- SSH into a podlium exec <POD> <COMMAND>- Execute command on podlium scp <POD> <LOCAL_FILE> [REMOTE_PATH]- Copy files to pods (add-dto download from pods)lium rsync <POD> <LOCAL_DIR> [REMOTE_PATH]- Sync directories to podslium rm <POD>- Remove/stop a podlium reboot <POD>- Reboot a podlium update <POD>- Install Jupyter on a podlium templates [SEARCH]- List available Docker templateslium fund- Fund account with TAO from Bittensor wallet
lium volumes list- List all volumeslium volumes new <NAME>- Create a new volumelium volumes rm <VOLUME>- Remove a volume
lium bk show <POD>- Show backup configuration for a podlium bk set <POD> <PATH>- Configure automatic backupslium bk logs <POD>- View backup logslium bk now <POD>- Trigger immediate backuplium bk restore <POD> <BACKUP_ID>- Restore from backuplium bk rm <POD>- Remove backup configuration
lium schedules list- List scheduled terminationslium schedules rm <POD>- Cancel scheduled termination
lium config show- Show all configurationlium config get <KEY>- Get configuration valuelium config set <KEY> <VALUE>- Set configuration valuelium config unset <KEY>- Remove configuration keylium config edit- Edit configuration filelium config path- Show configuration file pathlium config reset- Reset all configuration
lium theme [THEME]- Get or set UI theme (light/dark/auto)lium mine- Set up a compute subnet executor/minersudo lium gpu-splitting setup [--device /dev/...] [--yes]- Prepare Docker storage for LIUM GPU splittinglium gpu-splitting check [--device /dev/...]- Inspect the host and print the GPU-splitting planlium gpu-splitting verify- Verify Docker storage matches LIUM GPU-splitting requirements
# Filter executors by GPU type
lium ls H100
lium ls A100
# Create pod with executor index
lium up 1 --name my-pod --yes
# Create pod with filters (auto-selects best executor)
lium up --gpu A100 --count 8 --name my-pod --yes
lium up --gpu H200 --country US
# Create pod with specific template
lium up 1 --template_id <TEMPLATE_ID> --yes
# Set up executor bootstrap flow
lium mine --auto --hotkey <HOTKEY>
# Inspect or configure Docker storage for GPU splitting (Ubuntu/Debian + systemd, run setup as root)
lium gpu-splitting check
sudo lium gpu-splitting setup --yes
lium gpu-splitting verify
# Create pod with volume
lium up 1 --volume id:<VOLUME_HUID>
lium up 1 --volume new:name=mydata,desc="My dataset"
# Create pod with auto-termination
lium up 1 --ttl 6h # Terminate after 6 hours
lium up 1 --until "today 23:00" # Terminate at 11 PM today
# Create pod with Jupyter
lium up 1 --jupyter --yes
# Execute commands
lium exec my-pod "nvidia-smi"
lium exec my-pod "python train.py"
# Copy files to and from pods
lium scp my-pod ./script.py # Copy to /root/script.py
lium scp 1 ./data.csv /root/data/ # Copy to specific directory
lium scp all ./config.json # Copy to all pods
lium scp 1,2,3 ./model.py /root/models/ # Copy to multiple pods
lium scp my-pod /root/output.log ./downloads -d # Download into ./downloads directory
# Reboot pods
lium reboot my-pod # Reboot a single pod
lium reboot 1,2 --yes # Reboot pods 1 and 2 without confirmation
lium reboot all # Reboot all active pods
lium reboot my-pod --volume-id <VOLUME_ID> # Reboot with a specific volume ID
# Sync directories to pods
lium rsync my-pod ./project # Sync to /root/project
lium rsync 1 ./data /root/datasets/ # Sync to specific directory
lium rsync all ./models # Sync to all pods
lium rsync 1,2,3 ./code /root/workspace/ # Sync to multiple pods
# Remove multiple pods
lium rm my-pod-1 my-pod-2
lium rm all # Remove all pods
# Install Jupyter on existing pod
lium update my-pod
# Manage volumes
lium volumes list
lium volumes new mydata --description "My dataset"
lium volumes rm <VOLUME_HUID>
# Manage backups
lium bk show my-pod
lium bk set my-pod /root/data --frequency 24 --retention 7
lium bk logs my-pod
lium bk now my-pod --name manual-backup
lium bk restore my-pod <BACKUP_ID> /root/restore
lium bk rm my-pod
# Manage schedules
lium schedules list
lium schedules rm my-pod
# Configuration management
lium config show
lium config get api.api_key
lium config set ssh.key_path /path/to/key
lium config edit
# Theme management
lium theme # Show current theme
lium theme dark # Set to dark theme
lium theme auto # Auto-detect based on system
# Fund account with TAO
lium fund # Interactive mode
lium fund -w default -a 1.5 # Fund with specific wallet and amount
lium fund -w mywal -a 0.5 -y # Skip confirmation- Pareto Optimization:
lscommand shows optimal executors with ★ indicator - Flexible Pod Creation: Use executor index or auto-select with filters (GPU type, count, country)
- Index Selection: Use numbers from
lsoutput in commands - Full-Width Tables: Clean, readable terminal output
- Cost Tracking: See spending and hourly rates in
ps - Interactive Setup:
initcommand for easy onboarding - Volume Management: Create and attach persistent storage volumes
- Backup & Restore: Automated backups with configurable frequency and retention
- Auto-Termination: Schedule pods to terminate after duration or at specific time
- Jupyter Integration: One-command Jupyter installation on pods
- Theme Support: Light, dark, or auto-detect themes for better visibility
Configuration is stored in ~/.lium/config.ini:
[api]
api_key = your-api-key-here
[ssh]
key_path = /home/user/.ssh/id_ed25519You can also use environment variables:
export LIUM_API_KEY=your-api-key-here- Python 3.9+
# Clone repository
git clone https://github.com/Datura-ai/lium-cli.git
cd lium-cli
# Install in development mode
pip install -e .MIT License - see LICENSE file for details.
