# Nouli > Nouli is a ledger-backed decision network that records AI decisions and connects them to the facts and earlier answers they use. Its terminal app, CLI, and Rust library run decision models that return probabilities for a fixed set of answers. Nouli records the facts, questions, and answers of a session in a ledger, so each turn sends only what is new. Website: https://nouli.ai/ Install with `curl -fsSL https://nouli.ai/install.sh | sh` (Linux, or macOS without Homebrew) or `brew install nouli-ai/tap/nouli` (macOS). Define a provider in `~/.nouli/config.toml`, then run `nouli auth login PROVIDER`, which reads the key without echo; let the person type it. Rules for driving Nouli from an agent: - `nouli new NAME [FACT...] -q Q` starts a session; `--from A --from B` blends sessions, so their history is in view. - `nouli add SESSION [FACT...] -q Q` adds facts and asks one question; `nouli ask SESSION -q Q` asks without new facts; `nouli whatif SESSION [FACT...] -q Q` asks and saves nothing. - Each command asks exactly one `-q` question, in one call. A question is one line: `id: prompt [a, b]` for a choice, `id: prompt ` for an ordered score, `id: prompt` for yes/no. - A later turn can revisit a question with new information. Earlier saved answers stay unchanged. - Add `--json` to any command for a version-1 report. `--input FILE` takes a complete request instead of facts and `-q`. `--request-id KEY` replays a completed turn instead of calling the model again. - `nouli facts SESSION`, `nouli context SESSION`, and `nouli view SESSION` show the numbered facts, what reached the model, and the decision graph. ## Full-screen TUI `nouli` starts a named session; `nouli open NAME` resumes or creates one. Type plain text in Context and Question. Enter adds a nonempty Context row; Enter on a blank row advances to the next section without sending. Shift-Tab cycles Yes/No, Choose one and Score; Tab changes sections. Options/Levels use one item per row. Enter sends only from a nonempty Question; Ctrl-S sends from any section, including when reusing the previous question with new context. Empty options/levels reuse the prior list with a visible notice; Yes/No questions remain fresh. `@` searches files under the launch directory and saved answers across the local ledger. Selecting an input snapshots it without sending. `/rename NAME` renames the session. `/model` or Ctrl-L opens the model picker; choose a model, add a connection, or enter a missing API key without losing the draft. `/statusline` chooses saved fields or a preset for the footer. `/help` opens the shortcuts dialog; `/` lists session commands. Drag normally for native text selection and use terminal Copy. Ctrl-P holds the view while requests continue; Esc or Ctrl-P resumes. Ctrl-G enables graph keyboard navigation, divider dragging and mouse scrolling; Esc returns to form editing and native selection. There are no F5/F6 bindings. ## Published models Nouli AI publishes five task-specific open-source models on Hugging Face, under Apache-2.0 with upstream notices. Each includes weights, a local Python serving recipe and a Nouli CLI workflow. Inference runs on the user's machine. - [Nouli Route](https://nouli.ai/models/nouli-route/): the 77 BANKING77 banking intents. - [Nouli Clause](https://nouli.ai/models/nouli-clause/): evidence and entailment for 17 fixed NDA hypotheses. - [Nouli Push](https://nouli.ai/models/nouli-push/): PushT keypoint control. - [Nouli Doom](https://nouli.ai/models/nouli-doom/): structured-state ViZDoom Deadly Corridor control. - [Nouli Guard](https://nouli.ai/models/nouli-guard/): English hate-speech classification. [Models](https://nouli.ai/models/) ยท [Hugging Face](https://huggingface.co/nouli-ai). Follow each model's documented input schema, quickstart and limitations. The general trip and workshop examples require a suitable general-purpose decision service rather than the specialized model workflows. ## Docs - [Command line](https://raw.githubusercontent.com/nouli-ai/nouli/main/docs/cli.md): every command, facts, questions, request files, interactive sessions, and recovery - [Output formats](https://raw.githubusercontent.com/nouli-ai/nouli/main/docs/output.md): text, JSON, JSONL, and TOON reports - [Decision contract](https://raw.githubusercontent.com/nouli-ai/nouli/main/docs/contracts/decisions.md): `choice`, `noul`, and `score` questions and the compact question syntax - [Configuration](https://raw.githubusercontent.com/nouli-ai/nouli/main/docs/configuration.md): providers, models, credentials, and storage - [Workflows](https://raw.githubusercontent.com/nouli-ai/nouli/main/docs/cli-workflows.md): dependent decisions and resuming interrupted runs ## Optional - [User guide](https://nouli.ai/guide/): a walkthrough of setup, sessions, branching, and blending - [Rust library](https://raw.githubusercontent.com/nouli-ai/nouli/main/docs/embedding.md): embedding Nouli in an application - [Examples](https://nouli.ai/examples/): recorded walkthroughs, including the food recall decision graph