sindri-cli 0.2.1

A command-line interface for interacting with Sindri's API
# Sindri Rust CLI

A command-line interface for interacting with Sindri's API distributed as a cargo binary.
An alternative Sindri CLI, written in typescript and distributed as a npm package, can be found [here](https://github.com/Sindri-Labs/sindri-js).

## Installation

Install the CLI directly from this repository via:

```bash
cargo install --path cli --locked
```

## Usage

### Deploy a Circuit

```bash
cargo sindri deploy <PATH> [OPTIONS]
```

#### Arguments
- `<PATH>`: Path to a local project directory or an archive file (.zip, .tar, .tar.gz, .tgz)

#### Options
- `--api-key <KEY>`: Sindri API key (overrides SINDRI_API_KEY env var)
- `--base-url <URL>`: Sindri API base URL (overrides SINDRI_BASE_URL env var)
- `--tags <TAGS>`: Optional comma-separated tags to identify the circuit
- `--meta <KEY1=VALUE1,KEY2=VALUE2>`: Optional metadata key-value pairs (comma-separated)

#### Example

```bash
# Deploy with tags and metadata
cargo sindri deploy ./my-circuit --tags test,v1 --meta version=1.0,env=staging --api-key=your-api-key

# Deploy using environment variables for authentication
export SINDRI_API_KEY="your-api-key"
cargo sindri deploy ./my-circuit
```

After successful deployment, the CLI will output the circuit's UUID and human-readable identifier which can be used for future proof requests.