Skip to content

Command line

Every command has --help. The reasoning model is chosen with --llm backend[:model] (for example openrouter:qwen/qwen3.7-flash) and its reasoning with --reasoning default|off|minimal|low|medium|high; see LLM backends.

Every command reads ./.env first. Variables already set in the environment win, and values are never printed.

thinkless doctor

Checks the environment: Python, torch and the accelerator, which optional backends are installed, which API keys are set, and the active settings. Include its output in bug reports.

thinkless demo

Runs the support agent on one ticket and prints the trace tree, the action and the reply.

Option Default
--ticket T-001 A scenario id from the bundled set (T-001 to T-053)
--message, --customer Your own ticket text instead of a scenario
--mode hybrid hybrid, llm or models; repeat to compare
--llm local Reasoning model
--device auto Device for local models
--threshold 0.8 Engine default threshold
--view off Write and open the HTML viewer

thinkless bench support

Runs every scenario in every mode and writes results.json, report.md, per-ticket traces and viewer.html to the output directory.

Option Default
--mode llm, hybrid, models Repeat to choose
--llm local Reasoning model, also the LLM decision provider
--limit all Only the first N tickets
--out .thinkless/bench/support-<time> Output directory
--reference anthropic:claude-sonnet-5 Price list used to estimate cost
--threshold 0.8 Engine default threshold
--jev off Add TypeSafe Jev to the cascade (needs TYPESAFE_API_KEY)

thinkless bench intents

Accuracy, calibration and the simulated cascade on a public dataset.

Option Default
--dataset banking77 banking77, clinc150 or emotion
--provider gliner, laya, llm Repeat to choose; llm is the cascade fallback
--limit 500 Examples sampled from the test split
--seed 13 Sampling seed
--target 0.95 Accuracy target for threshold recommendations
--out .thinkless/bench/intents-<dataset>-<time> Output directory

thinkless calibrate DATA

Sweeps thresholds for one question and provider on labeled JSON Lines and recommends the lowest threshold that meets the target.

Option Default
--provider gliner gliner, laya, llm or jev
--kind choice choice or yes_no
--question The instructions to ask
--labels from the data Choice options, comma-separated
--demo-question Use a question from the support demo by name
--text-field, --label-field text, label Field names in the data
--target 0.95 Accuracy the accepted answers must reach

thinkless trace

Command
trace ls [DIR] Recent traces with their headline numbers
trace show FILE One trace as a tree with its summary
trace view [PATHS...] [--out FILE] [--no-open] Write the self-contained HTML viewer
trace export PATHS... --out FILE Traced decisions as labeling rows for calibrate; filter with --question, --status, --plane, --limit
trace drift --baseline PATHS --current PATHS Compare two periods question by question; exits with 1 when a question drifted

thinkless shadow

Reads the logs written by shadow mode.

Command
shadow report LOGS... Agreement with a 95% interval, share settled without an LLM, cost and latency on both sides, fitted thresholds and a verdict per question
shadow export LOGS... --out FILE Disagreements (or every call with --all) as labeling rows for calibrate

shadow report options: --target (agreement the lower bound must reach, default 0.95), --min-calls (default 100), --volume (decisions a month, for the monthly projection) and --json. shadow export options: --question, --all and --label-from primary|shadow|none.

thinkless serve ENGINE

Serves an engine over HTTP; see serving. ENGINE is module:attribute, an engine or a function that returns one.

Option Default
--questions QUESTIONS in the engine's module Registered questions, as module:attribute
--host, --port 127.0.0.1, 8080 Where to listen
--api-key-env THINKLESS_API_KEY Variable holding the bearer token clients must send
--registered-only off Refuse question specs that are not registered

thinkless mcp ENGINE

Serves the registered questions as MCP tools, one decide_<question> tool each. --transport stdio (default) or streamable-http.

Environment variables

Variable Default
THINKLESS_TRACE_DIR .thinkless/traces Where the CLI writes traces
THINKLESS_DEVICE auto Default device for local models
THINKLESS_CAPTURE_CONTENT true Record inputs and outputs in traces
THINKLESS_LOG_LEVEL WARNING Log level for the CLI
THINKLESS_PRICING bundled table Path to a pricing TOML file
TYPESAFE_API_KEY For SystemOne.jev()
OPENROUTER_API_KEY For openrouter: models
ANTHROPIC_API_KEY, OPENAI_API_KEY For hosted reasoning models
THINKLESS_API_KEY Bearer token for thinkless serve