Overview
mouse-1 is a decision model built for agent harnesses and AI-powered software. Instead of generating text token by token and parsing prose back into control flow, it reads your state and evaluates up to 128 typed questions in a single non-autoregressive forward pass—returning a calibrated probability distribution across your options in ~40–100 ms.
Keep control flow, deterministic rules, and side effects in your application code. Call mouse-1 at narrow decision points where your system needs programmable common sense over unstructured text or structured program state.
Primitives
Section titled “Primitives”Every question in a request uses one of three primitives, and every answer returns a constrained, schema-valid distribution:
| Primitive | Question asks | Answer fields | Maps in code to |
|---|---|---|---|
choice | Which of these named options (up to 1,024)? | choice, probabilities, confidence, mouse | switch / router |
noul | Is this binary condition true? | noul (0.0 to 1.0), mouse | if / gate |
score | Which of these 2–10 ordered rubric levels applies? | score, legend, probabilities, confidence, mouse | threshold / rank key |
Every question in a single POST /v1/decisions (or POST /v1/systemone) call is evaluated in parallel and in isolation against the same state:
- Speculative fan-out is nearly free:
statetokens are billed once per request regardless of how many questions you attach. Ask every question a downstream branch might need and let your code ignore the rest. - No cross-question contamination: Adding or removing a question never shifts another question's probabilities.
- 5-minute prefix caching: Repeating the same
statewithin 5 minutes billsstate_tokensat the cached rate ($0.02 / 1M instead of $0.10 / 1M). - Calibrated abstention: Fit a signed
calp1.profile on 200+ of your own labeled examples viaPOST /v1/calibrationsso every answer includesmouse.abstain(truewhen top probability falls below the out-of-fold cutoff for your target error rate). - Zero data retention by default: Every request sends
Mouse-Data-Retention: noneandCache-Control: no-store. Request states, questions, answers, and calibration examples are never logged or stored.
Endpoints
Section titled “Endpoints”Base URL: https://api.mouse.dev (US-East)
| Method & path | Description |
|---|---|
POST /v1/decisions | Evaluate choice, noul (yes/no), and score questions in parallel against a state (POST /v1/systemone is served as an identical alias for TypeSafe System One SDKs). |
POST /v1/calibrations | Fit a signed confidence cutoff profile (calp1.) on 200–5,000 labeled examples using 5-fold out-of-fold cross-fitting. |
GET /v1/models | List immutable model snapshots (mouse-preview-2026-10-13) and active aliases (mouse-1, mouse). |
GET /healthz | Unauthenticated liveness and region probe. |
Example request
Section titled “Example request”This single request routes an agent turn across four tools (choice) and checks whether a proposed shell command is safe to run without human approval (noul):
curl https://api.mouse.dev/v1/decisions \ -H "Authorization: Bearer $MOUSE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "mouse-1", "state": { "task": "Rename exported function `parseToken` to `verifyToken` in src/auth.ts.", "proposed_command": "pnpm --filter @mouse/relay test" }, "questions": { "next_tool": { "type": "choice", "instructions": "Which tool should handle `task` next?", "criteria": { "edit_file": "Modify source code in a file", "grep_search": "Search for symbols across the repository", "run_tests": "Execute the test suite", "ask_user": "Ask the user for clarification" } }, "safe_to_run": { "type": "noul", "instructions": "Is `proposed_command` safe to run without human approval?" } } }'Example response
Section titled “Example response”{ "id": "dec_8f92a1c04e1b902d", "object": "systemone.response", "model": "mouse-preview-2026-10-13", "answers": { "next_tool": { "type": "choice", "choice": "edit_file", "confidence": 0.88, "probabilities": { "edit_file": 0.91, "grep_search": 0.06, "run_tests": 0.02, "ask_user": 0.01 }, "mouse": { "calibrated": false, "p_top": 0.91, "abstain": null } }, "safe_to_run": { "type": "noul", "noul": 0.98, "mouse": { "calibrated": false, "p_top": 0.98, "abstain": null } } }, "usage": { "input_tokens": 74, "state_tokens": 26, "question_tokens": 26, "framing_tokens": 22, "image_tokens": 0, "cached_tokens": 0, "output_tokens": 0, "cost_usd": 0.0000074 }, "latency_ms": 38.2}Next steps
Section titled “Next steps”- Quickstart — Create an API key and run your first multi-question call in 60 seconds.
- Build with coding agents — Copy one prompt to deploy
mouse-1using Cursor, Claude Code, or Codex, or point your agent at/llms-full.txtand/llm.txt. - API Reference — Complete request schemas, answer shapes, headers, and status codes.
- Question types — Learn how
choice,noul, andscoremap to control flow and howconfidenceis calculated. - Migrate from Jev or OpenAI Decisions — Side-by-side comparison and migration recipes.
- Console Playground — Test states and questions interactively in your browser.