Skip to main content
Chat is where you talk to ModuleX in plain language. You open a thread, type what you want, and the answer streams back as it is produced. The same chat surface does three different jobs: it runs the agentic Assistant, it can trigger a workflow and show its progress, and it can answer questions from your knowledge bases. This page is the map. It explains what chat is, the three ways a conversation can be answered, and how streaming works — then points you to the page for each one.

What chat is

A chat is a single conversation thread. Every message you send and every reply you get back is kept in that thread, so you can scroll up, pick up where you left off, and come back to it later from your history. You reach chat the moment you sign in — the app opens on a fresh chat. From there the composer at the bottom is where you type, and the left sidebar holds every conversation you have had. For where chat sits relative to the rest of the app, see Tour the ModuleX app.

Start typing

Open a chat and send a message. No setup, no workflow to build first.

Watch it stream

Answers appear as they are written, including any tool steps the Assistant takes along the way.

Keep your history

Every conversation is saved to your sidebar. Organize threads with history and folders.

Stay in context

Chats can be private to you or shared with your organization. See private and org chat.
Who can use chat: the chat surface requires an owner or admin role in the organization. The member role has been retired, so a plain member cannot open or use chat. See roles and permissions.

The three ways a chat answers you

A single chat can answer in three ways depending on what you ask and what you have connected. They share one input box — you do not switch modes by hand.

Assistant chat

The default. An agentic chat that reasons, calls your connected tools step by step, and pauses for your approval when needed.

Run a workflow

Trigger one of your saved workflows from a message and watch the run unfold inside the thread.

Chat with knowledge

Ask a question and get an answer drawn from your connected knowledge bases, with the sources it used.

Assistant chat

When you just start typing, you are talking to the Assistant — a workflow-independent agentic chat. You describe a task in plain language and it decides which of your connected integration tools to call, runs them one at a time, drafts the result, and pauses to ask you whenever it needs a decision or an approval. There is no workflow to build first. The Assistant is the modern replacement for the old “LLM mode” of running a workflow. Plain conversational requests now go through the Assistant rather than a workflow run.
Both are agentic chats, but they do different jobs. The Assistant gets work done using your connected tools and never touches a workflow graph. The AI Composer is a copilot that builds and edits a workflow on the canvas. They are two surfaces over the same underlying agent engine, so they behave consistently — but the Assistant has no workflow-editing tools at all.

Run a workflow from chat

If you have a saved workflow, you can run it straight from a message instead of opening the workflow builder. The run streams its progress into the thread, step by step, and the finished output stays in the conversation. See run a workflow from chat for how this works, and run from chat for exposing a workflow this way. A chat is also how a workflow run is kept on record: when you run a workflow, ModuleX stores the conversation and the run together, so the thread doubles as the run’s history.

Chat with your knowledge

Ask a question and ModuleX can answer it from the documents you have loaded into a knowledge base. It retrieves the most relevant passages, writes an answer grounded in them, and shows the sources it drew from. This is retrieval-augmented generation (RAG) — covered in chat with your knowledge and explained end to end in knowledge and RAG.

Streaming responses

Answers do not arrive all at once. ModuleX streams them so you see the reply being written, and — for the Assistant — the steps it takes on the way.
1

You send a message

Your message appears in the thread and an empty reply is added below it, marked as running.
2

The answer streams in

Text arrives in small pieces and fills the reply live. If the Assistant calls a tool, a step appears showing what it is doing.
3

It may pause to ask you

When the Assistant needs a decision, an approval, or a credential, it pauses and shows you a question inline. Answer it and the run continues. This is human-in-the-loop.
4

The reply finishes

When the run completes, the reply is marked done and saved to the thread.
While an answer is streaming you can stop it at any time. A chat can have only one run in progress at once — if you send a new message while a run is still going, you are asked to wait or cancel first.

Streaming over the API

The app uses streaming under the hood, and so can your own code. Chat replies stream over Server-Sent Events (SSE): the response starts a run, and you open a stream to receive its events live. Each event is a single data: line carrying JSON — you read the type field on each one to know what it is (response_chunk for text, tool_call and tool_result for tool steps, done when it finishes). A heartbeat event keeps the connection open during quiet stretches. You start an Assistant chat the same way in cURL, Python, and JavaScript. Every request authenticates with Authorization: Bearer mx_live_… plus your X-Organization-ID header — see authentication.
Chat runs go through the ModuleX billing gate. If your organization is out of credits or over a limit, starting a chat returns a DenialEnvelope as a 402, 403, or 429 rather than running. See usage gating and limits and errors and status codes.
The app does not send chat messages by writing to a chat thread directly. There is no endpoint for posting a message into an existing /chats thread — chat threads created by workflow runs are read-only records, and the route some older client code points at (POST /chats/{id}/messages) does not exist on the server. To send a message, start an Assistant turn (POST /assistant/chat) or run a workflow. This is tracked in known limitations.

Make chat your own

A few settings change how every chat behaves.

Choose the model

Pick which language model answers, from ModuleX-managed models to your own provider keys (BYOK).

Send a voice message

Speak instead of type when that is faster.

Private or shared

Keep a chat to yourself or make it visible to your whole organization.

History and folders

Find past conversations and group them into folders.

Where to go next

Meet the Assistant

The agentic chat behind the default experience — how it reasons, calls tools, and asks for approval.

Chat with your knowledge

Attach a knowledge base and get answers grounded in your own documents.

Run a workflow from chat

Trigger a saved workflow from a message and watch it run in the thread.

Streaming responses (API)

The SSE event format behind live answers, for building your own chat experience.