Skip to main content

soit: the SOIT command line

A small client for the SOIT API: sign in with an API key, run an agent, replay regression sets on a new model, run and manage evaluation datasets, and take evidence out.

uv tool install soit-cli           # or: pipx install soit-cli
soit login --url https://soit.example.com

The package on PyPI is soit-cli; the command it installs is soit. To run the checkout instead, for example to try a change before it is released, install from the repository:

uv tool install ./cli        # or: pipx install ./cli

soit login asks for an API key (create one under Settings › API), checks it, and stores it with the address in your configuration directory, readable by you alone. In CI, set SOIT_API_URL and SOIT_API_KEY instead; the environment wins over the stored file. SOIT_CONFIG names another file.

Command Does
soit login [--url URL] [--api-key KEY | --api-key-stdin] check a key and remember it
soit whoami show who the stored key signs in as
soit logout forget the stored key
soit run AGENT_ID "message" [--thread ID] [--json] run an agent's published version once; the answer on stdout, the run on stderr
soit eval MODEL_REF [--agent ID]... [--dataset NAME] [--max-cases N] [--json] [--fail-on-regression] replay agents' regression sets on a model next to the one they use (model replays)
soit eval run AGENT_ID [--dataset NAME] [--version ID] [--model MODEL_REF] [--max-cases N] [--json] [--fail-on-regression] [--fail-on-failure] run one dataset on an agent now (the published version unless --version), print each case's result and the report it records (evaluations)
soit dataset list [--agent ID] [--archived] [--json] list the workspace's datasets with revision, case count and latest report
soit dataset export DATASET [--agent ID] [-o FILE] write a dataset's cases as JSONL (DATASET is its id or name; standard output by default)
soit dataset import DATASET FILE [--agent ID] [--create] [--note TEXT] add the cases of a JSONL file, all or none: a file with any bad line imports nothing and every bad line is listed with its number; --create --agent ID creates the dataset first
soit agent export AGENT_ID [-o FILE] write an agent and its published (or current) version's specification as YAML, without ids
soit agent import FILE [--name NAME] create an agent, and its version as a draft, from such a file; the model, tool and knowledge refs it names must exist in the workspace
soit export evidence RUN_ID [-o FILE] save a run's evidence bundle, after checking it against the server's SHA-256 (ledger)
soit export runs|steps|costs|audit|events --since ISO [--until ISO] [--format jsonl|csv] [-o FILE|-] save one kind of ledger record for a window

Exit codes: 0 success, 1 a refusal or failure, 2 a usage error, 3 an eval --fail-on-regression that found cases passing on the current model and failing on the candidate, so a CI job can stop a model switch:

soit eval model:openai:gpt-6 --dataset smoke --fail-on-regression

soit eval run exits 3 the same way: with --fail-on-regression when a case that passed in the report's baseline fails now, and with --fail-on-failure when any case fails, as the publish gate would. A CI job can keep a dataset in the repository and evaluate every change against it:

soit dataset import refunds evals/refunds.jsonl --agent agt_123 --create
soit eval run agt_123 --dataset refunds --fail-on-regression

Metadata

Release files for soit-cli 1.5.2

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

Source distribution (sdist)

Source distribution for soit-cli 1.5.2
File Size Uploaded
soit_cli-1.5.2.tar.gz 21.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for soit-cli 1.5.2
File Interpreter ABI Platform
soit_cli-1.5.2-py3-none-any.whl Python 3 none any Details

Total release size: 39.0 kB

Release files / soit_cli-1.5.2.tar.gz

Download URL soit_cli-1.5.2.tar.gz
Size 21.0 kB
Tags Source
SHA-256 checksum
How to use checksums
132880a45582cd77c2b2252f90522cea10fe1e6f664e59e177fe171446a3db9a
BLAKE2b-256 checksum
How to use checksums
b1e897ed56069867b42cc5cdd816f9cbd719987cb746823955bd3472dd724db2
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 Oct 2, 2026.

Transparency log

Release files / soit_cli-1.5.2-py3-none-any.whl

Download URL soit_cli-1.5.2-py3-none-any.whl
Size 18.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
29fd39b1ca93616761e69d43bed6a6c2939b7d7bdbcf4c724f9ffbc94f251342
BLAKE2b-256 checksum
How to use checksums
ecf6660926b195141382c1372a6bf78e8eeaf4365e2658fe0572fdd40f63c86a
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 Oct 2, 2026.

Transparency log

Release history Release notifications | RSS feed

1.7.0

2 release files

1.6.1

2 release files

1.6.0

2 release files

This release

1.5.2 This release

2 release files

1.5.1

2 release files

0.1.0

2 release files

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