s1-tui
Terminal UI for typed System One decisions that switches live between local laya on MLX and hosted Jev, logging every run.
Overview
s1 is a small Textual terminal UI for System One typed decisions. You type a state, pick noul, choice or score, write the instructions and options, and run; the right pane shows the pick, a confidence bar, the calibrated-confidence signal and every option's probability. Two interchangeable backends can be switched live from the command palette: laya-multilingual-mlx locally on Apple Silicon (about 6 ms per decision, no key or network) and jev-latest via TypeSafe's hosted API.
Every run appends a JSON line with backend, model, state, question, selected answer, confidence, probabilities and latency, and a history pane reloads past runs and their stored answers. The README notes the value of calibrated confidence for deciding easy cases locally and escalating low-confidence ones, while warning that calibration is dataset-dependent and thresholds should be validated.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which team should handle this ticket? | — |
| Score | How risky is this (ordered levels)? | — |
| Yes / no | Any yes/no question about the state | — |
How it works
- Enter state, question type, instructions and options
- Run against laya (local) or Jev (hosted)
- Inspect pick, confidence and full distribution
- Reload past runs from the JSONL history
Strengths
- Compare local and hosted models on the same input
- About 6 ms per decision locally per the README
- Every run logged for later review
Caveats
- Local backend requires Apple Silicon
- A playground, not a production tool
Getting started
uvx --from git+https://github.com/tnaftali/s1-tui s1 (set TYPESAFE_API_KEY), or uv run --extra local s1 for the laya backend.At a glance
- Type
- Project
- Status
- prototype
- Language
- Python
- Runtime
- Textual TUI
- Has code
- yes
Use cases and integrations
How curated lists describe it
Terminal UI for System One typed decisions (noul/choice/score) over laya (local MLX) + jev (TypeSafe) backends.
hellogumbo/awesome-jev
Frequently asked questions
Which models can I use?
Local laya-multilingual-mlx on Apple Silicon or hosted jev-latest.
Do I need a key?
Only for the Jev backend.
Are runs saved?
Yes, each run is appended to s1_runs.jsonl and shown in a history pane.
Related projects
Go harness for System One models: hosted Jev, open Kev in-process via llama.cpp, and Cloudflare Clef, with typed helpers and a CLI.
ServicebetaGoTypeScript library for one-line local decisions with open models (kev-0.6b, kev-4b, open-jev), no API keys or cloud.
ProjectbetaTypeScriptSwift 6 bridge that runs System One decision models behind Apple's Foundation Models API, on device with Laya or via hosted endpoints.
ProjectbetaSwiftPHP library, extracted from LLPhant, for typed Jev Noul, Choice and Score calls, also usable with a Laya endpoint.
LibrarybetaPHPUnofficial Rust gateway routing /v1/systemone requests to TypeSafe, Vercel, OpenRouter or local Laya via an editable DAG.
ProxybetaRustZero-dependency local gateway and live visualiser that proxies Jev calls, logs every decision to SQLite and draws them on a real-time map.
ProxybetaJavaScript