Releases: tumf/jev-cli
Release list
jev-cli v0.6.2
What changed
Visible API key input feedback
jev auth set now displays one * for each character entered while keeping the API key itself hidden.
$ jev auth set
TypeSafe API key: ****************
{"ok": true, "stored": true, "store": "~/.config/jev-cli/credentials.json"}Backspace removes the corresponding mask character. Piped input remains supported for automation and does not print the key.
printf '%s' "$TYPESAFE_API_KEY" | jev auth setClean cancellation
Pressing Ctrl-C while entering an API key now exits cleanly with status 130 and Cancelled. instead of printing a Python traceback.
Cross-platform test fix
v0.6.2 supersedes v0.6.1. The v0.6.1 source worked on supported platforms, but its new prompt test imported the POSIX-only termios module unconditionally and failed Windows CI. v0.6.2 keeps the masked prompt on POSIX terminals, retains the standard hidden-input fallback where termios is unavailable, and passes CI on Linux, macOS, and Windows.
Upgrade
uv tool upgrade jev-cli
jev --versionExpected output:
jev 0.6.2
PyPI: https://pypi.org/project/jev-cli/0.6.2/
Full Changelog: v0.6.0...v0.6.2
jev-cli v0.6.1 (superseded)
Superseded by v0.6.2
This release introduced masked API key input feedback and clean Ctrl-C handling. Its prompt test imported the POSIX-only termios module unconditionally, causing Windows CI to fail.
Use v0.6.2, which preserves the feature and passes CI on Linux, macOS, and Windows.
uv tool upgrade jev-cliFull Changelog: v0.6.0...v0.6.1
v0.6.0
Highlights
jev-cli 0.6.0 adds jev-mcp, a stdio MCP server for TypeSafe Jev. It exposes the same typed judgments as the CLI so MCP hosts can use Jev without invoking jev as a subprocess.
MCP tools
noul: answer one yes/no question as a probabilitychoice: select exactly one option from two or more candidatesscore: evaluate state against two or more ordered levelsrun: submit multiple typed questions in one request
The MCP server reuses the CLI's provider, model, endpoint, credential, and response-normalization behavior. Tool schemas include descriptions for every argument, and invalid choice or score cardinality is rejected before any provider request.
Install or upgrade
The normal package includes both jev and jev-mcp; no optional extra is required.
uv tool install --upgrade jev-cliVerify the installed commands:
jev --version
jev-mcp --helpMCP host configuration
{
"mcpServers": {
"jev": {
"command": "jev-mcp"
}
}
}Authentication and provider selection remain compatible with the CLI. The official TypeSafe API stays the default, while Vercel AI Gateway, OpenRouter, and Jev-compatible custom endpoints remain available.
Compatibility
- Python 3.13 or later
- Existing
jevCLI commands and credential files remain supported - MCP communication uses stdio; stdout is reserved for JSON-RPC and logs go to stderr
Package
- PyPI: https://pypi.org/project/jev-cli/0.6.0/
- Documentation: https://github.com/tumf/jev-cli#readme
Full Changelog: v0.5.0...v0.6.0
v0.5.0
Highlights
jev-cli 0.5.0 adds provider selection while keeping the official TypeSafe API as the default.
Providers
official: TypeSafe official API usingTYPESAFE_API_KEYvercel: Vercel AI Gateway usingAI_GATEWAY_API_KEYopenrouter: OpenRouter usingOPENROUTER_API_KEYcustom: a Jev-compatible endpoint usingJEV_API_KEY
Select a provider for one command with --provider, or set JEV_PROVIDER for the process. --model overrides the provider's default model.
jev noul \
--provider openrouter \
--question 'Does this message express urgency?' \
--state 'Please restore service today.' \
--valueProvider-specific credentials can be entered without placing the key in shell history:
jev auth set --provider vercel
jev auth test --provider vercelCustom Jev-compatible proxies can be configured with JEV_ENDPOINT, JEV_API_KEY, and optionally JEV_MODEL. Credentials remain isolated by provider.
Install or upgrade
uv tool install --upgrade jev-cliCompatibility
- Python 3.13 or later
- The official TypeSafe API remains the default
- Existing
TYPESAFE_API_KEY, credential files, and CLI commands remain supported - The CLI remains dependency-free outside Python's standard library
Package
- PyPI: https://pypi.org/project/jev-cli/0.5.0/
- Documentation: https://github.com/tumf/jev-cli/tree/v0.5.0#readme
Full Changelog: v0.4.1...v0.5.0
v0.4.1
Highlights
jev-cli 0.4.1 is the first public release of the unofficial TypeSafe Jev command-line client. It turns text or JSON state into machine-readable typed judgments for shell scripts, automation, and application code.
This is an independent community project. It is not affiliated with, maintained by, or endorsed by TypeSafe AI.
Typed judgments
noul: answer one yes/no question as a probabilitychoice: select one option from a defined setscore: evaluate state against ordered levelsrun: submit multiple typed questions in one request
CLI and input support
- Accepts inline text, JSON, files prefixed with
@, and stdin - Provides
-qand-sshort options for question and state - Emits compact JSON by default, with
--prettyand--valueoutput modes - Returns structured errors and meaningful exit codes
- Uses only Python's standard library at runtime
Authentication and Agent Skill
TYPESAFE_API_KEY takes precedence for automation. Local credentials can be entered through a hidden prompt and stored under the XDG configuration directory with restricted permissions.
jev auth set
jev auth status
jev auth testThe package also includes an Agent Skill that can be installed into a project or user-level skill directory:
jev install-skills
jev install-skills --globalInstall
uv tool install jev-cli==0.4.1Verify the installation:
jev --versionCompatibility
- Python 3.13 or later
- TypeSafe official API
- macOS, Linux, and Windows
Package
- PyPI: https://pypi.org/project/jev-cli/0.4.1/
- Documentation: https://github.com/tumf/jev-cli/tree/v0.4.1#readme
Full Changelog: https://github.com/tumf/jev-cli/commits/v0.4.1