diff --git a/AGENTS.md b/AGENTS.md
index 9845119bd..524542707 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -50,7 +50,7 @@ The OpenAPI spec at `docs/api-reference/fabro-api.yaml` is the source of truth f
Fabro is an AI-powered workflow orchestration platform. Workflows are defined as Graphviz graphs, where each node is a stage (agent, prompt, command, conditional, human, parallel, etc.) executed by the workflow engine.
### Rust crates (`lib/crates/`)
-- **fabro-cli** — CLI entry point. Commands: `run`, `exec`, `serve`, `validate`, `parse`, `cp`, `model`, `doctor`, `install`, `ps`, `system prune`, `llm`
+- **fabro-cli** — CLI entry point. Commands: `run`, `exec`, `serve`, `validate`, `parse`, `cp`, `model`, `doctor`, `install`, `ps`, `system prune`
- **fabro-workflow** — Core workflow engine. Parses Graphviz graphs, runs stages, manages checkpoints/resume, hooks, retros, and human-in-the-loop interactions
- **fabro-agent** — AI coding agent with tool use (Bash, Read, Write, Edit, Glob, Grep, WebFetch). `Sandbox` trait abstracts execution environments
- **fabro-server** — Axum HTTP server. Routes for runs, sessions, models, completions, usage. SSE event streaming. Demo mode via header
diff --git a/docs/administration/deploy-server.mdx b/docs/administration/deploy-server.mdx
index c946b27f5..a5919397a 100644
--- a/docs/administration/deploy-server.mdx
+++ b/docs/administration/deploy-server.mdx
@@ -125,7 +125,7 @@ Or use the `--server-url` flag:
fabro --server-url https://fabro.example.com:3000/api/v1 model list
```
-This applies to commands like `fabro model list`, `fabro llm chat`, and `fabro exec`. See [User Configuration](/reference/user-configuration#mode) for the full options including mTLS setup.
+This applies to commands like `fabro model list`, `fabro model test`, and `fabro exec`. See [User Configuration](/reference/user-configuration#mode) for the full options including mTLS setup.
## Next steps
diff --git a/docs/changelog/2026-03-02.mdx b/docs/changelog/2026-03-02.mdx
index 5ce901351..94cad1f13 100644
--- a/docs/changelog/2026-03-02.mdx
+++ b/docs/changelog/2026-03-02.mdx
@@ -20,7 +20,7 @@ Persistent chat sessions with SQLite storage. Start a conversation with an agent
-- `fabro llm chat` command for interactive multi-turn conversations with any configured model
+- Introduced interactive CLI chat sessions via the now-removed `fabro llm chat` command
diff --git a/docs/changelog/2026-03-07.mdx b/docs/changelog/2026-03-07.mdx
index c6a3a4d1c..6799c39d9 100644
--- a/docs/changelog/2026-03-07.mdx
+++ b/docs/changelog/2026-03-07.mdx
@@ -7,12 +7,7 @@ date: "2026-03-07"
Fabro now exposes a `POST /completions` endpoint for single-turn LLM completions. You can use it for structured output via JSON Schema, one-off prompts, or building custom frontends on top of Fabro's model routing. Streaming uses Anthropic-style SSE events (`message_start`, `content_block_delta`, `message_stop`, etc.), so you get tokens as they're generated rather than waiting for the full response.
-The CLI's `fabro llm` commands can now target the server instead of calling providers directly:
-
-```bash
-fabro llm prompt "Summarize this file" --server-url http://localhost:3000
-fabro llm chat --server-url http://localhost:3000
-```
+At the time of this release, the CLI's `fabro llm` commands could target the server instead of calling providers directly. That CLI namespace has since been removed.
## Two new sandbox providers: exe.dev and Sprites
@@ -63,13 +58,12 @@ To migrate, regenerate your TypeScript client and update any direct API calls.
- New `POST /completions` endpoint for single-turn LLM completions with SSE streaming and structured output via JSON Schema
- New `GET /models` endpoint exposes the full LLM model catalog with pagination
- New `POST /models/{id}/test` endpoint for testing model connectivity in server mode
-- Session endpoints for interactive LLM chat via `fabro llm chat --server-url http://localhost:3000`
+- Session endpoints for interactive LLM chat; the old `fabro llm chat` CLI wrapper has since been removed
- Verification API reorganized: `/verifications` split into `/verification/criteria` and `/verification/controls`
-- `fabro llm prompt --server-url ` routes prompts through the Fabro server
-- `fabro llm chat --server-url ` enables interactive chat sessions through the server
+- This release added `fabro llm prompt/chat --server-url`, but the `fabro llm` CLI namespace was later removed
- `fabro model list --server-url ` fetches the model list from the Fabro server
- Added `--goal` arg to `fabro run start` to override the workflow goal from the command line
- Turn and tool-call counts now display correctly in non-TTY mode
diff --git a/docs/reference/cli.mdx b/docs/reference/cli.mdx
index 2cdb0a54b..3629d9649 100644
--- a/docs/reference/cli.mdx
+++ b/docs/reference/cli.mdx
@@ -33,6 +33,8 @@ output_format = "text"
model = "claude-sonnet-4-5"
```
+`[exec]` config applies to `fabro exec`. `[llm]` sets the default workflow model/provider for commands like `fabro run` and `fabro preflight`.
+
CLI flags always override `user.toml` values, which override hardcoded defaults.
---
@@ -255,44 +257,6 @@ Permission levels control which tools are auto-approved: `read-only` allows read
---
-## `fabro llm prompt`
-
-Send a one-shot prompt to an LLM. Accepts a prompt as an argument, via stdin, or both (stdin is prepended).
-
-```bash
-fabro llm prompt "Explain quicksort in one paragraph"
-echo "Summarize this:" | fabro llm prompt
-fabro llm prompt "Translate to French" -m claude-sonnet-4-5 -o temperature=0.3
-fabro llm prompt -S '{"type":"object","properties":{"name":{"type":"string"}}}' "Extract the name from: John Smith"
-```
-
-| Argument / Flag | Description |
-|---|---|
-| `[PROMPT]` | The prompt text (also accepts stdin) |
-| `-m, --model ` | Model to use |
-| `-s, --system ` | System prompt |
-| `--no-stream` | Do not stream output |
-| `-u, --usage` | Show token usage |
-| `-S, --schema ` | JSON schema for structured output (inline JSON string) |
-| `-o, --option ` | Generation options: `temperature`, `max_tokens`, `top_p`, or provider-specific keys |
-
-## `fabro llm chat`
-
-Start an interactive multi-turn chat session. In server mode, the session is backed by the Fabro server's session endpoints.
-
-```bash
-fabro llm chat
-fabro llm chat -m claude-opus-4-6 -s "You are a helpful coding assistant"
-fabro llm chat --server-url http://localhost:3000/api/v1
-```
-
-| Flag | Description |
-|---|---|
-| `-m, --model ` | Model to use |
-| `-s, --system ` | System prompt |
-
----
-
## `fabro model list`
List available LLM models from the built-in catalog. Running `fabro model` with no subcommand also lists models.
diff --git a/docs/reference/user-configuration.mdx b/docs/reference/user-configuration.mdx
index bd27dc48f..33646a08b 100644
--- a/docs/reference/user-configuration.mdx
+++ b/docs/reference/user-configuration.mdx
@@ -118,14 +118,15 @@ Tools outside the permission level are interactively prompted (if a TTY is prese
## `[llm]` section
-Defaults for `fabro llm prompt` and `fabro llm chat`.
+Defaults for workflow model selection in commands like `fabro run` and `fabro preflight`.
| Key | Description | Values | Default |
|---|---|---|---|
| `model` | Model name | Any model ID from `fabro model list` | Per provider |
+| `provider` | Provider name | `"anthropic"`, `"openai"`, `"gemini"`, etc. | Auto-inferred from model/catalog |
-The `[llm]` section only sets the default model. Use `[exec]` to configure provider, permissions, and output format for `fabro exec`.
+Use `[exec]` to configure provider, permissions, and output format for `fabro exec`. Use `[llm]` for workflow-oriented defaults.
## `[log]` section