The in-app assistant
FlowState has a built-in assistant: a chat pane where a language model of your choice explains warnings and key figures, proposes studies and drafts report text for the process in your window. It works with the same tools as the MCP server. It reads variables and results, runs small studies on copies of the model, and proposes edits. You review the edits in the Proposed changes panel before anything changes.
The assistant is off until you set it up. FlowState sends nothing to a provider until you have chosen one and pressed Send.
Opening the assistant
- View ▸ Assistant, or the ✦ Assistant tab at the top of the Settings pane.
- To dock it at the bottom instead, use View ▸ Panes ▸ Assistant in the bottom dock (or the checkbox in the provider settings). It then appears as a tab next to Problems, Log, Progress and Results.
Choosing a provider
Click ⚙ Provider in the assistant pane. Bring your own provider:
| Provider | Base URL | Model | API key |
|---|---|---|---|
| Anthropic (Claude) | https://api.anthropic.com | claude-opus-5-5 (default), claude-sonnet-5-5, claude-haiku-5-5 | required |
| OpenAI-compatible | https://api.openai.com/v1 | the provider’s model id | as the server requires |
| Local server (Ollama) | http://localhost:11434/v1 | e.g. llama3.1 | none |
| Local server (LM Studio) | http://localhost:1234/v1 | the loaded model | none |
| Local server (vLLM) | http://localhost:8000/v1 | the served model | optional |
| Azure OpenAI | the deployment’s full …/chat/completions?api-version=… URL | — (the deployment is in the URL) | required |
The model must support tool calling (function calling), since the assistant reads the model through tools. Then click Use this provider.
API keys are kept in your operating system’s credential store: Windows Credential Manager, the
macOS Keychain, or the Secret Service on Linux. If that store is not available, FlowState offers to
keep the key in its user settings file. The key is then stored in plain text, so only accept
this on a computer and account you trust. Keys are never written to .flow files. If no key is
stored, FlowState uses ANTHROPIC_API_KEY, OPENAI_API_KEY or AZURE_OPENAI_API_KEY from the
environment. Forget deletes a stored key.
Asking questions
Type in the box at the bottom and press Send (or Ctrl+Enter). The starter buttons fill in a prompt that you can edit before sending:
- Explain this warning: what a problem means, why the model produces it and how to fix it.
- What drives cost per kg?: a breakdown of the unit production cost and its biggest levers.
- Propose a sensitivity study: which inputs to vary and over which ranges, checked with a small sweep.
- Draft a report summary: a short summary of the process and its key results.
Answers cite variable paths and numbers from the tools, for example
results/economics/npv. The assistant is told never to invent values. Still, check important
figures yourself.
Each tool call appears in the conversation as a collapsible line (✔ read, ✦ proposed, ⚠ failed). Open it to see the arguments and the result. Stop cancels the running answer, and that exchange is not kept. Copy copies the conversation as Markdown, and Clear starts a new one.
Giving the assistant context
Context is attached only when you choose. Right-click and choose ✦ Send to assistant on:
- a node of the Model tree (procedure, operation, equipment, stream, component, or a section such as Economics);
- a procedure or stream on the flowsheet;
- an item in the Problems pane. Its why and how to fix text is included;
- a KPI card (Economics, Environment and other tabs).
Each item becomes a chip above the input box. Hover over a chip to see exactly what it sends: a compact JSON summary of the item, with the governing equations and symbol paths from the Settings pane’s Equations section where they exist. Click ✕ to remove a chip before sending.
The counter beside Send estimates the size of the next request in tokens (about four characters per token). It covers the instructions, the tool list, the conversation so far, the chips and your draft. After the first answer it also shows the provider’s own token counts for the session.
Edits are proposals
The assistant cannot change your process directly. When it suggests a change, it calls
propose_changes (or set_var, rename or replace, which in the app also only propose). The
change then appears in Tools ▸ Review proposed changes… (the ✦ n proposed badge in the
status bar). For each edit you see the old and new value, the assistant’s rationale and the effect on
the key figures, from a solve of a copy. Accept all, some or none. Accepted edits are one undo step
and are recorded as set by AI (session assistant-…) in the Settings pane.
The assistant does not get the open_project and save_project tools, and it cannot write report
files. export_report returns text only.
Privacy: what is sent, and to whom
- Nothing is sent automatically. Requests go out only when you press Send, and only to the base URL you configured. With a local server (Ollama, LM Studio, vLLM), the data stays on your computer.
- Each request contains the assistant’s instructions, the tool list, your messages and the chips you attached, the replies so far, and the results of the tools the assistant called. Tool results include variable values, results and problem texts of the open process, as shown in the tool lines of the conversation.
- Not sent: your
.flowfile as a whole (unless the assistant reads parts of it with tools), other open files, the API keys of other providers, and anything from earlier conversations after Clear. - The provider’s own data policy applies to what it receives. Check it before you send confidential process data to a cloud provider.
- When Tools ▸ Start automation server is running, the assistant works on the same document
as the API. Its proposals also appear through
GET /changeset.