Metadata-Version: 2.5
Name: olympicducks
Version: 0.0.1
Summary: Submit Microduck policies to OlympicDucks
Project-URL: Homepage, https://olympicducks.com
Requires-Python: >=3.10
Requires-Dist: httpx>=0.27
Requires-Dist: typer>=0.15
Description-Content-Type: text/markdown

# olympicducks

Submit a [MicroDuck](https://olympicducks.com) policy to OlympicDucks straight
from a training run, and manage it from a terminal after — list, download or
retire it. `retire` is the one thing this CLI can do that the browser can't
(there's no delete button there yet); everything else mirrors the web app.
The CLI holds nothing but a token.

```bash
pipx run olympicducks submit output.onnx --name "shover"
```

or install it once with [pipx](https://pipx.pypa.io):

```bash
pipx install olympicducks
olympicducks submit output.onnx --name "shover"
```

## Usage

Get a personal token from [olympicducks.com/settings](https://olympicducks.com/settings)
(shown once — copy it before you leave), then either:

```bash
olympicducks login <token>          # stored in ~/.config/olympicducks/config.json
```

or set `OLYMPICDUCKS_TOKEN` in the environment — handy for CI and training jobs.

```bash
olympicducks submit output.onnx --name "shover" --game sumo
olympicducks submit output.onnx --name "shover" --wait
```

`--wait` polls until validation finishes and prints why a policy was rejected,
if it was. Without it, `submit` returns as soon as the upload is queued.

`--moves key=path` is accepted but currently does nothing: the extra policies
are uploaded and the server keeps only the gait, so the entry runs without
them and reports success anyway. Don't rely on it until D69's open question —
what a move costs against an account's storage quota — is settled.

```bash
olympicducks list                   # your ducks, entries and their status
olympicducks download shover        # saves shover.onnx
olympicducks download shover -o weights.onnx
olympicducks retire shover          # off the ladder; weights and match history kept
```

`download` only works for a `valid` or `retired` version — one still
validating or rejected has nothing to fetch yet. `retire` is refused while
the duck has a climb in progress; wait for it to finish first.
