Metadata-Version: 2.4
Name: hiverge-cli
Version: 0.2.8
Summary: Universal Command Line Interface for Hive agent.
Author: Hiverge Team
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: PyYAML>=5.1
Requires-Dist: pydantic>=1.8.2
Requires-Dist: gitpython>=3.1.24
Requires-Dist: rich>=12.5.1
Requires-Dist: kubernetes>=33.1.0
Requires-Dist: portforward>=0.3.0
Provides-Extra: test
Requires-Dist: pytest>=6.2.4; extra == "test"
Requires-Dist: flask==2.3.3; extra == "test"
Requires-Dist: requests; extra == "test"
Requires-Dist: psutil; extra == "test"
Provides-Extra: dev
Requires-Dist: ruff>=0.12; extra == "dev"
Dynamic: license-file

# Hive-CLI

Hive-CLI is a command-line interface for managing and deploying the Hive agent and experiments on Kubernetes and other platforms.

```bash
     ███          █████   █████  ███
    ░░░███       ░░███   ░░███  ░░░
      ░░░███      ░███    ░███  ████  █████ █████  ██████
        ░░░███    ░███████████ ░░███ ░░███ ░░███  ███░░███
         ███░     ░███░░░░░███  ░███  ░███  ░███ ░███████
       ███░       ░███    ░███  ░███  ░░███ ███  ░███░░░
     ███░         █████   █████ █████  ░░█████   ░░██████
    ░░░          ░░░░░   ░░░░░ ░░░░░    ░░░░░     ░░░░░░
```

## Installation

### Pre-requisites

- Python 3.8 or higher
- [docker](https://www.docker.com/) for image building.
- [gcloud CLI](https://cloud.google.com/sdk/docs/install) via `brew install gcloud` for authentication.

**Notes**:

- Make sure to enable the `✅ Use containerd for pulling and storing images` option in Docker Desktop settings, which is required for multi-arch image support.

### Install via pip

```bash
pip install hiverge-cli
```

### Install from source

```bash
source start.sh
```

## How to run

**Note**: Hive-CLI reads the configuration from a yaml file, by default it will look for the `~/.hive/sandbox-config.yaml`. You can also specify a different configuration file using the `-f` option. Refer to the [config.yaml](./config.yaml) for examples.

Below we assume that you have a `~/.hive/sandbox-config.yaml` file.

### Verify the version

```bash
hive version
```


### Edit the experiment

`Edit` command will open the configuration file in your default editor (e.g., vim, nano, etc.) for you to modify the experiment configuration. You can also specify a different editor using the `EDITOR` environment variable, by default it will use `vim`.

```bash
hive edit config
```

### Create an experiment

```bash
hive create exp my-experiment
```

*Note: This will build a Docker image for the experiment and push it to the container registry which may take some time, based on the Dockerfile and network speed. You can enable the Debug mode in the configuration file to see more detailed logs.*

### List experiments

```bash
hive show exps
```

### Visit Dashboard

```bash
hive dashboard
```

### Show logs

Sandboxes are the isolated environments where experiments run in parallel. You can list all the sandboxes and view their logs.

```bash
hive show sands
hive log <sandbox-name>
```

### Delete an experiment


```bash
hive delete exp my-experiment
```

### More

See `hive -h` for more details.

## Development

### Debugging

Change the `log_level` in the configuration file to `DEBUG` to see more detailed logs.
