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

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.0.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.0-py3-none-any.whl (37.2 kB view details)

Uploaded Python 3

File details

Details for the file eridani_cli-0.1.0.tar.gz.

File metadata

  • Download URL: eridani_cli-0.1.0.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.0.tar.gz
Algorithm Hash digest
SHA256 0460250c8289d228b66fbf514257cfe62ffb2bb915814b9fe0ddb58394279fc4
MD5 c903912b0ee9643fa8d88a7998905bd5
BLAKE2b-256 c6fefcb3af49ff183bfd8b6e8807b4a8a0d08e040ef78b5540dd6d07bfcdf50d

See more details on using hashes here.

File details

Details for the file eridani_cli-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: eridani_cli-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 37.2 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 63603973a3169b03dcb922d44ce07ad0894107161425729f62a3e03f4357f5cb
MD5 0695c3dc156eb1d32aee340390374a3e
BLAKE2b-256 0fe8eeb1a796f4c482ec8ce0464fcc5edba2ae654aa83f56063bc4f1206ce4f0

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