Skip to main content

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


Download files

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

Source Distribution

eridani_cli-0.1.1.tar.gz (20.1 kB view details)

Uploaded Source

Built Distribution

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

eridani_cli-0.1.1-py3-none-any.whl (37.1 kB view details)

Uploaded Python 3

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

Hashes for eridani_cli-0.1.1.tar.gz
Algorithm Hash digest
SHA256 be2dd067b3e9490ba237c9f8312e605cd19c538fb4a3c22c51fb8c1c31592dc3
MD5 48b06ca49c8eb6a45f23c2d7cd7ffc77
BLAKE2b-256 5192c2f4e9c619432963bae0e30889ad27f1ef238bc2ab594cfe2f8b42fcc195

See more details on using hashes here.

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

Hashes for eridani_cli-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 52c62d06cfe9cc3aab1dda3ae737e900806bf60d7dfa5d28dfefdcb0eeefa28c
MD5 6c316158e28823584ea175e5b584834b
BLAKE2b-256 8122bcec004476165cf88d7e832557be7837a0a5e75b75f093ae02ae626cd9c1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page