Skip to main content

systemonemodels

PyPI Python CI License

The command line and Python client for System One, the registry for decision models — models that return a typed decision with a calibrated confidence instead of generated text: choose, score, rank, classify, route.

pip install systemonemodels

This installs the systemone command and the systemone Python package. Python 3.10 or newer.

Sign in

systemone login

The CLI shows a one-time code and opens the registry in your browser, where you approve this machine. Over SSH, open the printed address on any device instead. For CI, skip the browser:

export SYSTEMONE_TOKEN=s1_pat_...   # create one at systemonemodels.tech/settings/tokens
systemone whoami

Find and pull models

systemone search routing
systemone search --capability route --architecture laya --sort downloads
systemone show biplov/snake-balanced-multilingual
systemone pull biplov/snake-balanced-multilingual --variant onnx-int8

Files are cached by content: a second pull downloads nothing, and variants that share a tokenizer store it once. --dest ./snake links the files into a folder of your choosing; systemone cache info and systemone cache clear manage the cache.

Publish

cd ~/my-workspace
systemone push

Run push in a folder and it finds every model underneath, however deep — trained checkpoints, ONNX and Core ML exports, GGUF files, any folder holding model.onnx, model.safetensors, a .gguf or an .mlpackage — lists them, and asks which to publish (1,3-5 or all). Datasets, virtual environments and caches are never searched.

 #  MODEL                        VARIANT        SIZE  FOLDER
 1  banking77-balanced           mlx        646.8 MB  runs/banking77-balanced-0922-234657/model
 2  snake-balanced-multilingual  mlx        646.8 MB  runs/snake-balanced-multilingual-0923-005225/model
 3  snake-balanced-multilingual  onnx-int8  342.7 MB  exports/snake-balanced-multilingual-0923-005225-onnx-int8

Variants of one model are published together, as one version of one repository with a folder each, so systemone pull you/snake-balanced-multilingual --variant onnx-int8 fetches only that folder. A model on its own keeps its files at the top of the repository, the way it sits on disk.

To publish one folder under a name of your choosing:

systemone push ./runs/snake/model --repo you/laya-snake

What gets published, without retyping any of it:

  • The model card. The folder's README.md, with its Hugging Face front matter read for the licence, tags and base model rather than shown. A model without one gets a card written from its evaluation, questions and variants.
  • The manifest. systemone.yaml — what the model decides, its runtime, and its evaluation: accuracy, calibration error and latency from a System One Studio run's eval.json, or an export's own measurements. A base model that came from Hugging Face is recorded as such, so the model page links to it. Pass --manifest to use your own, and check it first with systemone validate systemone.yaml.
  • The version. The next minor version after the latest (0.1.0, 0.2.0, …), or --version.

push shows the plan before sending anything and, in a terminal, asks first — unless you named the repository with --repo or passed --yes. It warns when a file would publish the path of your home folder. --dry-run prints the manifests, cards and files and stops. --namespace publishes under an organization, --license overrides the card's licence, and --all --yes publishes everything found without a question, for scripts and CI.

Files the registry already holds are never sent again, so republishing with one changed file sends one file, and large files stream from disk with a progress bar that moves by the byte.

What this machine can train on

systemone system          # OS, CPU, memory, GPUs and their driver stack, free disk
systemone system --json   # the same, for scripts

Run a model on this machine

systemone run opendxp convai-innovations/laya --checkpoint typed-decisions
systemone run opendxp convai-innovations/laya --state "Customer: where is my parcel?" \
    --questions '{"intent": {"type": "choice", "instructions": "What does the customer want?",
                              "criteria": ["refund", "track delivery", "cancel order"]}}'
systemone run opendxp ./my-package --request request.json --json

Runs the model through OpenDXP, the open standard that lets one runtime answer for any System One model. A model you pulled before is used as it is; otherwise only the checkpoint you asked for is downloaded. A model with no OpenDXP package yet, from a family OpenDXP converts (Laya, Julia 1, Decider), gets one built once on this machine. The runtime gets a Python environment of its own (the first conversion downloads PyTorch). --device picks a backend (cpu, cuda, coreml, ...); the default uses CUDA when it can and the CPU otherwise.

Fine-tune locally with System One Studio

System One Studio was called Laya Studio until September 2026.

systemone run studio

Fetches System One Studio (formerly Laya Studio) the first time, updates it on later runs, gives it its own Python environment (through uv when it is installed, otherwise a virtual environment on Python 3.11+) and opens it in your browser. It offers to sign you in first, so the studio's Publish button can push a finished run to the registry. Your datasets and runs stay in ~/.layastudio/workspace (the folder keeps its old name); the code lives in the platform's data folder and can be deleted at any time.

--port, --no-browser, --no-update and --workspace do what they say, and anything after -- goes to the studio: systemone run studio -- --model aac6fef/laya-mlx. It runs on Apple silicon (MLX), and on Windows and Linux with the PyTorch build for the machine's GPU — NVIDIA (CUDA 13 or 12.6), AMD (ROCm on Linux; RX 7000 and 9000 on Windows), Intel Arc (XPU) — or the CPU. systemone system shows what it found. --source DIR runs a System One Studio checkout instead of the managed copy.

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.

from systemone import Client

with Client() as registry:
    results = registry.search("routing", capability="route")
    model = registry.model("biplov/snake-balanced-multilingual")

Configuration

Variable
SYSTEMONE_TOKEN Access token. Takes precedence over a stored login, for CI.
SYSTEMONE_ENDPOINT API address, for a self-hosted registry.
SYSTEMONE_HOME Where the login is stored (0600). Defaults to the platform config directory.
SYSTEMONE_CACHE Where downloaded files are cached.

Development

git clone https://github.com/systemonemodels/systemonemodels-sdk
cd systemonemodels-sdk
uv sync
uv run pytest
uv run ruff check . && uv run mypy

Issues and pull requests are welcome. For anything security-related, see SECURITY.md instead of opening a public issue.

Licensed under Apache-2.0.

Metadata

Release files for systemonemodels 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for systemonemodels 0.3.0
File Size Uploaded Provenance Actions
systemonemodels-0.3.0.tar.gz 77.2 kB With provenance Details for systemonemodels-0.3.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for systemonemodels 0.3.0
File Interpreter ABI Platform Actions
systemonemodels-0.3.0-py3-none-any.whl Python 3 none any Details for systemonemodels-0.3.0-py3-none-any.whl

Total release size: 142.1 kB

Release files / systemonemodels-0.3.0.tar.gz

Download URL systemonemodels-0.3.0.tar.gz
Size 77.2 kB
Tags Source
SHA-256 checksum
How to use checksums
12e956f950b216904d82990f93c8e0e4bfe75fedb93b78bf2a2fa4073cc9dae3
BLAKE2b-256 checksum
How to use checksums
b510113ae09c4e134890d20da45ddd51dac43f4683f6af9d051d84703bcca5fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.

Transparency log

Release files / systemonemodels-0.3.0-py3-none-any.whl

Download URL systemonemodels-0.3.0-py3-none-any.whl
Size 65.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b73d15276a4c168e2f046b9a3cd35e2dd87745eedd0de64f993db774efb5d314
BLAKE2b-256 checksum
How to use checksums
7f98bed8d4933c271376fdf2a58ae358b57609fb6ad943e56cba6de1df960020
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.

Transparency log

Security for systemonemodels 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for systemonemodels-0.3.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page