CLI for managing robot training jobs on the Eridani GPU cluster.
Project description
Eridani CLI
Command-line interface for managing robot training jobs on the Eridani GPU cluster. Built with Typer and Rich.
Installation
Requires Python 3.10+
pip install eridani-cli
This installs the eridani command globally in your environment.
Commands
| Command | Description |
|---|---|
eridani init |
Initialize an Eridani project in the current directory |
| eridani tasks | List all tracked tasks |
| eridani info | Show project overview |
| eridani update | Re-scan project directory for new tasks |
| eridani train | Submit a training job to the Eridani cluster |
| eridani status | Show training job status |
| eridani cancel | Cancel a running training job |
| eridani logs | View training job logs |
| eridani pull | Download training weights from a completed job |
| eridani delete | Delete a training job |
| eridani revoke | Revoke the API key and remove the project |
Global Options
| Flag | Description |
|---|---|
--version, -v |
Show version and exit |
--help |
Show help and exit |
Typical Workflow
# 1. Initialize a project (authenticates and creates .eridani)
eridani init
# 2. Submit a training job
eridani train --task MyTask-v0 --library skrl
# 3. Check job status
eridani status
# 4. Stream logs from a running job
eridani logs <job_code> --follow
# 5. Cancel a running job
eridani cancel <job_code>
# 6. Download weights from the last completed job
eridani pull
# Or pull a specific job's weights to a custom directory
eridani pull trn_ab2e9a14 --output ./results
Project Structure
eridani/
├── main.py # Entry point, registers all commands
├── core/
│ ├── config.py # API URL, timeouts, keyring settings
│ └── exceptions.py # Base errors and @handle_errors decorator
├── shared/
│ ├── credentials.py # Keyring operations and login
│ ├── discovery.py # Task and script auto-discovery
│ ├── http.py # HTTP client (api_get, api_post, ApiError)
│ ├── jobs.py # Shared job-fetching logic
│ ├── project.py # .eridani project file I/O
│ └── ui.py # Shared console, spinners, error display
└── commands/
├── init/ # Project initialization and auth
├── revoke/ # API key revocation
├── update/ # Re-scan for tasks
├── tasks/ # List tracked tasks
├── info/ # Project overview
├── train/ # Training job submission
├── status/ # Training job status
├── cancel/ # Cancel a running job
├── delete/ # Delete a training job
├── logs/ # View training job logs
└── pull/ # Download training weights
Each command follows the same internal structure:
- service.py — Command definition and orchestration
- client.py — API calls and file operations (complex commands only)
- ui.py — Rich console output and formatting (interactive commands only)
Dependencies
- typer — CLI framework
- rich — Terminal formatting and tables
- httpx — HTTP client for API communication
- keyring — Secure API key storage
- questionary — Interactive prompts
Development
pip install -e ".[dev]"
Running Tests
python -m pytest tests/ -v
Tests use pytest-httpx for HTTP mocking and an in-memory keyring backend to isolate from the OS keyring.
Pre-commit Hooks
pre-commit install
pre-commit run --all-files
Hooks include linting (ruff) and running the full test suite.
Shell Completion
eridani --install-completion
Supports Bash, Zsh, Fish, and PowerShell.
License
MIT License
Project details
Release history Release notifications | RSS feed
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 eridani_cli-0.1.1.tar.gz.
File metadata
- Download URL: eridani_cli-0.1.1.tar.gz
- Upload date:
- Size: 20.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be2dd067b3e9490ba237c9f8312e605cd19c538fb4a3c22c51fb8c1c31592dc3
|
|
| MD5 |
48b06ca49c8eb6a45f23c2d7cd7ffc77
|
|
| BLAKE2b-256 |
5192c2f4e9c619432963bae0e30889ad27f1ef238bc2ab594cfe2f8b42fcc195
|
File details
Details for the file eridani_cli-0.1.1-py3-none-any.whl.
File metadata
- Download URL: eridani_cli-0.1.1-py3-none-any.whl
- Upload date:
- Size: 37.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
52c62d06cfe9cc3aab1dda3ae737e900806bf60d7dfa5d28dfefdcb0eeefa28c
|
|
| MD5 |
6c316158e28823584ea175e5b584834b
|
|
| BLAKE2b-256 |
8122bcec004476165cf88d7e832557be7837a0a5e75b75f093ae02ae626cd9c1
|