> ## Documentation Index
> Fetch the complete documentation index at: https://docs.modulex.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Voice & dictation in chat

> ModuleX chat is text-based. To speak a request instead of typing it, use your device's dictation to put text in the composer. Here is how, plus what the chat composer supports today.

ModuleX chat works on text: you type a request, or **speak it using your device's
dictation**, which puts the resulting text in the composer. This page shows how to use
voice through dictation and what the chat composer supports today.

## What chat supports today

The chat composer is the box at the bottom of every conversation. It does three things:

<CardGroup cols={3}>
  <Card title="Type a message" icon="keyboard">
    Enter text and press Enter to send. Shift+Enter adds a newline. Messages can be up to a few thousand characters.
  </Card>

  <Card title="Pick a model" icon="cpu" href="/platform/chat/model-selection">
    Choose which language model answers — from ModuleX-managed models to your own provider keys.
  </Card>

  <Card title="Send and stream" icon="radio">
    Send the message and watch the reply stream back live, including any tool steps the Assistant takes.
  </Card>
</CardGroup>

## Speak your request with device dictation

To talk to ModuleX instead of typing, use your device's built-in dictation to enter text
into the composer, then send it like any typed message.

<Steps>
  <Step title="Open the composer and start dictation">
    Open a chat and start your operating system's dictation — for example the microphone
    key on a phone keyboard, or your desktop's voice typing.
  </Step>

  <Step title="Speak your request">
    Your device converts your speech to text directly in the composer, the same as if you
    had typed it.
  </Step>

  <Step title="Send the message">
    Press Enter (or the Send button). The reply streams back the same way it does for any
    text message.
  </Step>
</Steps>

<Note>
  Device dictation is your operating system's feature. Your device converts speech to text
  locally or through its own service, and ModuleX only receives the resulting text — so
  accuracy, languages, and limits are entirely your device's.
</Note>

## How chat answers your message

However your text gets into the composer — typed or dictated — a single chat can answer it
in three ways. You do not pick a mode; the chat decides based on what you ask and what you
have connected.

<CardGroup cols={3}>
  <Card title="Assistant chat" icon="bot" href="/concepts/assistant">
    The default. An agentic chat that reasons, calls your connected tools step by step, and pauses for your approval when needed.
  </Card>

  <Card title="Run a workflow" icon="play" href="/platform/chat/workflow-run">
    Trigger a saved workflow from a message and watch the run unfold inside the thread.
  </Card>

  <Card title="Chat with knowledge" icon="book-open" href="/platform/chat/knowledge-chat">
    Ask a question and get an answer drawn from your connected knowledge bases, with the sources it used.
  </Card>
</CardGroup>

<Note>
  Who can use chat: the chat surface requires an **owner** or **admin** role in the
  organization. See [roles and permissions](/security/roles-permissions).
</Note>

## Where to go next

<CardGroup cols={2}>
  <Card title="Chat overview" icon="messages-square" href="/platform/chat/overview">
    How chat works end to end — the three ways a conversation is answered, and how replies stream.
  </Card>

  <Card title="Choose a model" icon="cpu" href="/platform/chat/model-selection">
    Pick which language model answers your chats, from managed models to your own keys.
  </Card>

  <Card title="Chat with your knowledge" icon="book-open" href="/platform/chat/knowledge-chat">
    Attach a knowledge base and get answers grounded in your own documents.
  </Card>

  <Card title="Meet the Assistant" icon="bot" href="/concepts/assistant">
    The agentic chat behind the default experience — how it reasons, calls tools, and asks for approval.
  </Card>
</CardGroup>
