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.7.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 soit-cli 1.7.0
File Size Uploaded
soit_cli-1.7.0.tar.gz 21.0 kB Details

Built distribution (wheel)

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

Total release size: 39.0 kB

Release files / soit_cli-1.7.0.tar.gz

Download URL soit_cli-1.7.0.tar.gz
Size 21.0 kB
Tags Source
SHA-256 checksum
How to use checksums
692472d24e16cfb0bef38f87ae7e2ee9b18c90aec56b3e7aaced64aa0b9bec17
BLAKE2b-256 checksum
How to use checksums
0e387d5a954281902da89273d747fd86a484dfb7b2a3e58db82940c8caf46116
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 3, 2026.

Transparency log

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

Download URL soit_cli-1.7.0-py3-none-any.whl
Size 18.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7005e565a9655cdf0745cbbfbfdc9956ae36f2d482f47b752219ced7855bd74b
BLAKE2b-256 checksum
How to use checksums
a1570bf76605c022bd251ae4ff800aecbeab45455587f5b8878c8111045669e3
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 3, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.7.0 This release

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.2

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