Metadata-Version: 2.4
Name: krabby-launcher
Version: 0.1.1
Summary: CLI for installing, updating, and running the Krabby locomotion stack
Author-email: James Childers <james.childers@gmail.com>
License-Expression: Apache-2.0
Requires-Python: >=3.10
Description-Content-Type: text/markdown

# krabby

CLI for installing, updating, and running the Krabby locomotion stack on a Jetson Orin host.

## Install

```bash
pip install krabby
```

## Usage

```
krabby install            # pull mainline-latest, set up udev + dialout
krabby install --image <ref>   # pull a specific tag or digest

krabby update             # re-pull the last installed image
krabby update --image <ref>    # pull a different tag

krabby run                # start the locomotion container
krabby run --image <ref> -- --checkpoint /path/to/ckpt.pt

krabby firmware show      # run krabby-firmware show inside the container
krabby firmware update    # run krabby-firmware update inside the container
krabby firmware <args>    # any krabby-firmware subcommand/flags

krabby --version
krabby --help
```

## Image refs

The default image is pulled from ECR:

```
632914961627.dkr.ecr.us-east-1.amazonaws.com/krabby-locomotion:mainline-latest
```

A bare tag (e.g. `--image v1.2.3`) is expanded to the full ECR URI automatically.
Pass a fully-qualified URI to use a different registry entirely.

## State

The last installed image ref and digest are recorded at `~/.config/krabby/state.json`.
`krabby update` and `krabby run` read this file when `--image` is omitted.

## GPU

On `aarch64` (Jetson) the container is started with `--runtime=nvidia`.
On `x86_64` it uses `--gpus all`.

## Firmware pass-through

`krabby firmware` mounts `~/.cache/krabby-firmware` into the container so cached
firmware artifacts are shared across runs.  Serial devices (`/dev/ttyACM*`,
`/dev/ttyUSB*`) are passed through automatically via `--device`.
