DOCUMENTATION

SDK and CLI

The systemone Python package: browser login, search, pull with a shared cache, create and push.

The systemonemodels package installs the systemone command and a small Python library over the same HTTP API the website uses. It needs Python 3.10 or newer. It is open source — systemonemodels/systemonemodels-sdk on GitHub, Apache-2.0 — so you can read exactly what it does with your token.

pip install systemonemodels

Sign in

systemone login

The CLI shows an eight-letter code and opens systemonemodels.tech/device in your browser. Check the code matches, choose Authorize, and the terminal finishes on its own. The token it receives is listed under Settings → Access tokens as "CLI · your-machine", where you can revoke it.

Over SSH, or anywhere a browser cannot open, the CLI prints the address instead — open it on your laptop or phone and type the code. --no-browser does the same on purpose.

For CI and scripts, skip the browser and use a token created in settings:

systemone login --token "$SYSTEMONE_TOKEN"   # store it
export SYSTEMONE_TOKEN=s1_pat_...            # or just set it; nothing is stored
systemone whoami

The stored token lives in your config directory with 0600 permissions. systemone logout forgets it.

Discover

systemone search snake
systemone search --capability route --architecture laya --sort downloads
systemone show biplov/snake-balanced-multilingual

--sort takes relevance, recent, stars, downloads, accuracy or latency.

Pull

systemone pull biplov/snake-balanced-multilingual --variant onnx-int8
systemone pull biplov/snake-balanced-multilingual --version 0.1.0 --dest ./snake

Files are cached by content, so a second pull downloads nothing and two variants that share a tokenizer store it once. --dest links the tree into a folder of your choosing instead of printing the cache path. systemone cache info shows where the cache is and how big it has grown; systemone cache clear empties it.

Create and push

systemone create you/support-router
systemone validate ./support-router/systemone.yaml
systemone push ./support-router --repo you/support-router --version 0.1.0

push uploads a directory as a new version. Files already in the registry are not uploaded again, so republishing with one changed file sends one file. Useful options:

  • --variant onnx-int8 puts the files under that folder, so one repository can hold several exports of the same model.
  • --manifest path/to/systemone.yaml uses that manifest instead of inferring one from the files.
  • --notes adds release notes, --private creates the repository private, and --dry-run shows what would be uploaded without sending anything.

validate runs the same check the registry does, so a manifest that passes locally will not be rejected on push. Publishing needs a verified email address.

In Python

from systemone import snapshot_download

path = snapshot_download("biplov/snake-balanced-multilingual", variant="onnx-int8")
# path is a local directory with the version's files, served from the cache
# on every call after the first.

Running a model is up to the runtime it was exported for — ONNX Runtime, Core ML and so on. The repository's model card says which, and show prints its runtime.