The koyu command line: move robot-learning data and templates between koyu.dev and any machine. Umbrella for all koyu verbs.
Project description
koyu
The koyu command line: move robot-learning data and template files between
koyu.dev and any machine. Four verbs, two dependencies
(httpx, blake3), zero opinions about your ML stack — it installs cleanly
inside any training environment.
pip install koyu-cli
Verbs
# See what's there before downloading — files with sizes, a project's runs,
# a manifest's episode count. Look, then decide.
koyu ls proj_a1b2… # project files + its run ids
koyu ls run_e5f6… # run files (spot the 20 GB checkpoint)
koyu ls mf_c3d4… # episodes, total size, features
# Mirror a public template/project's files — no account needed
koyu fetch proj_a1b2… ./my-workdir
# Selective mirror: take the code, skip the weights
koyu fetch run_e5f6… ./run-info --exclude 'checkpoints/*'
koyu fetch run_e5f6… ./run-info --only 'stats.json,README.md'
# Materialize a dataset (manifest → episodes) — no account needed if public
koyu pull mf_c3d4… ./data/libero-spatial
koyu pull mf_c3d4… ./data/states-only --exclude '*.mp4' # partial by design
# Upload results to your own run — needs a token
export KOYU_TOKEN=koyu_… # mint at koyu.dev/settings/tokens
koyu push run_e5f6… checkpoints/best.pt metrics.jsonl results.json
koyu whoami # sanity-check the token
--only/--exclude are glob patterns against the stored path, repeatable and
comma-separable. Every verb takes --json for machine-readable output on
stdout (progress goes to stderr), so an agent can koyu ls --json, decide,
then fetch exactly what it needs.
pull writes the koyu dataset layout:
manifest.json + episodes/<ep_id>/{data.parquet, <camera>.mp4…, episode.json} —
directly readable by any template's vendored dataloader.py. Downloads stream
to disk, run concurrently, and resume (already-current files are skipped), so
re-running a pull is always safe.
push is blake3-diffed two-step sync: unchanged files cost nothing, large files
upload multipart automatically, and nothing is visible until commit succeeds.
What this deliberately is not
- Not a clone.
fetchproduces an anonymous mirror with no identity or sync relationship. If you want your variant of a project that syncs with your koyu cloud, that is koyu-workspace'sclone. - Not a workspace. No local store, no catalog, no server. Files in, files out.
Auth model
Reads of public entities are anonymous by design. A token
(KOYU_TOKEN env or --token) is needed only to touch your resources:
private data, and any push. Tokens are personal access tokens from
koyu.dev/settings/tokens; short-lived child tokens are recommended on rented
hardware.
Environment
| Variable | Meaning |
|---|---|
KOYU_TOKEN |
bearer token for authenticated calls |
KOYU_API |
API base override (default https://koyu.dev) |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file koyu_cli-0.1.0.tar.gz.
File metadata
- Download URL: koyu_cli-0.1.0.tar.gz
- Upload date:
- Size: 12.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f585ae11ae554af0e06d6a5b9d1d3678303a77d46d2f9f300db7e701ac831a64
|
|
| MD5 |
5dc02da9340716117ad25a57cb526c96
|
|
| BLAKE2b-256 |
7d87d349ec9183a2337efce9fa2df32259cdc0dacb2a1dd0662b91ad3717c1f9
|
File details
Details for the file koyu_cli-0.1.0-py3-none-any.whl.
File metadata
- Download URL: koyu_cli-0.1.0-py3-none-any.whl
- Upload date:
- Size: 13.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ec994b77ebd9880b75ee3b69980ee280898168fb8624a9004aa1e360c6a4fd2
|
|
| MD5 |
9afc3b7db79f40ed9a6ed81bae60bd4f
|
|
| BLAKE2b-256 |
72ffdd171692c9a9777ac2c668099aaaf96b1ca7b3c54154c6bbfe34914c03e3
|