Metadata-Version: 2.4
Name: aircloud-cli
Version: 0.1.0
Summary: AirCloud CLI — endpoint management, SSH, and container exec
Author-email: AirCloud Team <support@aieev.com>
License: Proprietary
Project-URL: Homepage, https://aieev.com
Project-URL: Repository, https://github.com/aieev/aircloud-cli
Keywords: aircloud,ssh,cli,endpoint,exec
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development
Classifier: Topic :: System :: Shells
Classifier: Topic :: Utilities
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: websockets>=12.0
Requires-Dist: click>=8.0
Requires-Dist: httpx>=0.27.0
Requires-Dist: paramiko>=3.0
Requires-Dist: cryptography>=3.0

# aircloud-cli

CLI for the [AirCloud](https://aieev.com) platform — endpoint management,
SSH access, and container shell exec.

## Install

```bash
pip install aircloud-cli
```

Requires Python 3.9+.

## Quick start

```bash
# one-time setup
aircloud config set api-key <YOUR_API_KEY>
aircloud config set api-base-url <API_BASE_URL>

# inspect endpoints
aircloud endpoints list
aircloud endpoints get <endpoint_id>

# open a shell in a container
aircloud ssh <endpoint_id>            # public-key auth, sshd-based
aircloud exec <endpoint_id>           # docker exec over WS, no sshd needed
```

## Commands

### `aircloud config`

Manage CLI configuration in `~/.aircloud/config.json`.

```bash
aircloud config set api-key <key>
aircloud config set api-base-url <url>
aircloud config list
aircloud config get <key>
```

### `aircloud endpoints`

```bash
aircloud endpoints list                          # paged list
aircloud endpoints get <id>                      # detail
aircloud endpoints start <id>
aircloud endpoints stop <id>
aircloud endpoints scale <id> --replicas N
aircloud endpoints patch <id> --command "..." --port 8080 --env KEY=VALUE
aircloud endpoints replicas <id>                 # current replicas
aircloud endpoints logs <id> [--replica-id X] [--start-line N --end-line M]
```

### `aircloud ssh`

SSH into a container via WebSocket tunnel using public-key authentication.

```bash
aircloud ssh <endpoint_id>                       # auto-discover ~/.ssh/id_*
aircloud ssh <endpoint_id> -i ~/.ssh/aircloud_key
aircloud ssh <endpoint_id> -r <replica_id>       # pin to specific replica
aircloud ssh <endpoint_id> --tunnel-only         # open tunnel only
```

Auto-discovers identity files in this order: `~/.ssh/id_ed25519`,
`~/.ssh/id_ecdsa`, `~/.ssh/id_rsa`. Override with `-i / --identity-file`.

The container image must have `sshd` running and consume the
`AIRCLOUD_AUTHORIZED_KEYS` environment variable (AirCloud-provided template
images do this by default).

### `aircloud exec`

Open an interactive shell in the container via `docker exec` over a
WebSocket. Works on any image — no `sshd` required.

```bash
aircloud exec <endpoint_id>
aircloud exec <endpoint_id> -r <replica_id>      # pin replica
aircloud exec <endpoint_id> -c "/bin/sh"         # custom command
```

### `aircloud whoami`

Print the identity associated with the current API key.

```bash
aircloud whoami
```

## Status

This is an early functional release. Interfaces may change before `1.0.0`.

## License

Proprietary. © AIEEV / AirCloud.
