wyat
Decisions, made locally.
wyat.io · wyat-1-800m · Documentation
wyat chooses between options your application defines. You provide a message and a set of candidates. A small local model returns the ID of one of them. The model was trained on French and English decisions. Nothing leaves your machine, and nothing runs until you act on the result.
The model is wyat-1 800M. It runs with PyTorch on CPU, CUDA or Apple MPS, or with MLX on Apple Silicon. Version 0.1.2 downloads its pinned release and verifies every file before loading.
Try it
No model required. The demo uses fixed scores to show the interface.
git clone https://github.com/teilomillet/wyat && cd wyat
uv run python examples/quickstart/main.py --demo
# Selected: cancel
Install
Python 3.12 or newer, with uv.
uv add wyat --extra inference # PyTorch: CPU, CUDA or Apple MPS
uv add wyat --extra mlx # MLX on Apple Silicon
Add --extra server to serve over HTTP. The core alone (uv add wyat) has
no dependencies. Model weights are separate from the package. wyat.load()
downloads and verifies wyat-1 800M on first use, then reuses the verified cache.
Run uv run wyat download to fetch it ahead of time. Inference itself never
uses the network.
On Apple Silicon, use the GPU: wyat.load(backend="mlx") with the mlx extra,
or wyat.load(device="mps") with PyTorch. Both give the same scores as PyTorch
CPU, which is several times slower there.
Use it
import wyat
model = wyat.load("teilomillet/wyat-1-800m") # also the default for wyat.load()
decision = model.decide(wyat.Request(
query="Choose the requested booking action.",
context="Please cancel my booking.",
candidates=[
wyat.Candidate(id="create", text="Create a booking"),
wyat.Candidate(id="cancel", text="Cancel the booking"),
],
))
decision.selected # one of your IDs, such as "cancel"
Load once. Decide many times. The same request and result work in Python, JSONL, and HTTP:
uv run wyat decide teilomillet/wyat-1-800m < requests.jsonl > decisions.jsonl
uv run wyat serve teilomillet/wyat-1-800m
Besides choosing an option, wyat rates on an ordered scale (Request.score)
and answers yes or no with a probability (Request.noul).
Documentation
| Quickstart | Your first decision, step by step |
| Embedded demo | A coding agent acting on wyat's choice |
| Python API | Requests, results, batching, serving, evaluation |
| Workflows | Routing, review, recovery |
| Explaining decisions | Reading scores and owning policy |
| Use cases | Choice, Score and Noul in short scripts |
| Expert use cases | Triage, agents, RAG gates, calibration |
| Integrations | LangChain, LangGraph, LlamaIndex, MCP, pandas |
| All documentation |
Coding agents can start from llms.txt.
License
Code is licensed under Apache 2.0; see NOTICE. Model artifacts carry their own licenses. The 800M trained adapters and decision head are released for non-commercial use; its backbone and runtime use Apache 2.0. Contributions are welcome; see CONTRIBUTING.md.
Metadata
Release files for wyat 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| wyat-0.1.2.tar.gz | 557.9 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wyat-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 669.1 kB
Release files / wyat-0.1.2.tar.gz
| Download URL | wyat-0.1.2.tar.gz |
|---|---|
| Size | 557.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d7b1fc4a10c0f8e9b1187ea31c9c7eb61cae0710189b87c41e1e5aaacf53707c
|
|
BLAKE2b-256 checksum How to use checksums |
64e34e181fabccc74e2a0cc0b11236be36683328d62babf6aae8b65e3d4a7b45
|
| 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 18, 2026.
Transparency logRelease files / wyat-0.1.2-py3-none-any.whl
| Download URL | wyat-0.1.2-py3-none-any.whl |
|---|---|
| Size | 111.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fef32a116dfe84e4245c094ba8e8aa78af806235403d343bffcbc3c4a11393b3
|
|
BLAKE2b-256 checksum How to use checksums |
4351b31557a017c94743a4e0551f63a1ba894510b2a4d4a93fc58d19854c1b6d
|
| 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 18, 2026.
Transparency logSecurity for wyat 0.1.2
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
All 2 files in this release have been uploaded with provenance metadata.
Attestation for wyat-0.1.2.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 Oct 18, 2026.
Transparency logA 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.