typesafe
CLI for TypeSafe Jev. Run it from a shell, or let an agent run it.
Jev answers noul, choice, and score questions over JSON state. It does not chat, and it only sees what you send. Invalid answers fail closed. Unused speculative heads cannot act. Ranked find lines are not evidence when the document has no answer.
Install
Python 3.10+. API key: TypeSafe console.
curl -fsSL https://github.com/maddygoround/typesafeai-cli/releases/latest/download/install.sh | bash
pipx install typesafeai-cli
pip install typesafeai-cli is the same package.
export TYPESAFE_API_KEY=apikey_…
Usage
typesafe ask takes a state file and a questions file. Point each instruction at state with backticks.
{
"message": "I was charged twice for order A-104. Please refund the duplicate.",
"policy": "Duplicate charges are eligible for an immediate refund."
}
{
"refund_requested": {
"type": "noul",
"instructions": "Does `message` request a refund?"
},
"intent": {
"type": "choice",
"instructions": "What does `message` ask for?",
"criteria": {
"refund": "The customer wants money returned",
"information": "Explanation only",
"other": "Something else"
}
}
}
examples/ticket, examples/code-change, and examples/fan-out are full copies.
typesafe ask --state-file state.json --questions-file questions.json
typesafe noul "Does this request a refund?" --state "I was charged twice."
typesafe decide --answers-file last.json
Keep those JSON files under ${TMPDIR:-/tmp}/codex/<project>/. typesafe skills install matches npx skills add: --project (default) or --global / -g. A TTY asks which. Global also writes a pointer into the user agent file (~/.claude/CLAUDE.md, ~/.codex/AGENTS.md, or ~/.grok/rules/typesafe-cli.md) so investigations load typesafe. typesafe auth status reports has_key and nothing else.
Commands
ask |
State file + questions file |
noul / choice / score |
One question |
find |
Search a file |
rank |
Order a JSON shortlist |
extract |
Pick a span already in the text |
verify |
Check a claim against a source |
screen |
Jailbreak / injection / sensitive-data / harm |
suggest-skill |
At most one skill name |
decide |
Map answers to yes / no / uncertain (no HTTP) |
models |
Model aliases |
smoke |
Live docs quickstart |
auth status |
Whether a key is loaded |
agent schema |
JSON command tree |
skills install |
Official TypeSafe skill + typesafe-cli (-g for all projects) |
Exit 0 answered, 1 request failed or invalid answer, 2 bad flags or questions.
Metadata
Release files for typesafeai-cli 0.3.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| typesafeai_cli-0.3.3.tar.gz | 34.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| typesafeai_cli-0.3.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 81.4 kB
Release files / typesafeai_cli-0.3.3.tar.gz
| Download URL | typesafeai_cli-0.3.3.tar.gz |
|---|---|
| Size | 34.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dd4420560a38cdc7f8182bdb2a041bfd037720e67137199b3fc1afc0d5d54fc5
|
|
BLAKE2b-256 checksum How to use checksums |
75943213b6cf1b1e2e1469bc265076f271fb0edf848592283e747a285b765003
|
| 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 22, 2026.
Transparency logRelease files / typesafeai_cli-0.3.3-py3-none-any.whl
| Download URL | typesafeai_cli-0.3.3-py3-none-any.whl |
|---|---|
| Size | 47.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
19a5b8d5a09f017d09040b76267b84436858f518eb2a39bca60132ec7ee09fec
|
|
BLAKE2b-256 checksum How to use checksums |
ef11ae0dc7bcd26862c600a45c87a921406bd5f5725578a673dc4dca116af6d8
|
| 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 22, 2026.
Transparency log