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

# Herm Chat tab: stream, voice, and slash commands

> Stream markdown responses, attach files with @ references, inspect tool calls, use voice mode, and run slash commands from the Chat tab.

The Chat tab is the default Herm workspace. It shows the active Hermes Agent conversation, the message composer, streaming responses, tool activity, and a sidebar with session and model context.

## Streaming responses

Herm renders assistant output as it arrives. The chat renderer supports:

* **Markdown:** headings, lists, bold text, code blocks, blockquotes, and tables.
* **Math:** inline and block LaTeX converted to Unicode when possible.
* **Inline images:** images render through [`chafa`](https://hpjansson.org/chafa/) when `chafa` is installed and available on `PATH`.
* **Diff chips:** file edits appear as compact diff frames in the transcript.
* **Tool frames:** tool calls render as expandable frames so raw JSON does not take over the conversation.

<Tip>
  If images appear as placeholders, install `chafa`. On macOS, run `brew install chafa`. On Debian or Ubuntu, run `apt install chafa`.
</Tip>

## Tool activity and thought cloud

Herm groups tool activity into frames and a thought cloud above the final response when the gateway sends reasoning or tool-trail parts. The exact content depends on the model, provider, and Hermes Agent event stream. Use it as an operator trace, not as a guarantee that every model exposes private reasoning.

Tool detail verbosity follows Herm preferences and gateway output. Some frames start collapsed so the transcript stays readable.

## Composer

The composer sits at the bottom of the Chat tab. The status dot shows readiness: green means ready, yellow means generating, and red means disconnected.

| Key                                                   | Action                                                 |
| ----------------------------------------------------- | ------------------------------------------------------ |
| `Enter`                                               | Send message                                           |
| `Shift+Enter` / `Ctrl+Enter` / `Alt+Enter` / `Ctrl+J` | Insert a newline                                       |
| `Ctrl+V`                                              | Attach a clipboard image                               |
| `↑` / `↓`                                             | Navigate prompt history when the buffer is single-line |
| `/`                                                   | Open the slash command popover                         |
| `@`                                                   | Open the file and diff reference picker                |
| `!` at the start of an empty composer                 | Enter shell mode                                       |

<Note>
  While a response is streaming, typed input queues for the next idle turn. Use `<leader>u` to interrupt and send queued text immediately.
</Note>

## Attach files and diffs with @ references

Type `@` in the composer to open the reference picker. It lets you attach local files and diffs without pasting content manually.

<Steps>
  <Step title="Type @ in the composer">
    Herm opens a popover of matching files and diffs. Type to filter the list.
  </Step>

  <Step title="Select a reference">
    Press `Enter` on a file or diff. Herm inserts it as a chip in the composer.
  </Step>

  <Step title="Send the message">
    Press `Enter`. Herm expands the chips and sends the referenced content with your prompt.
  </Step>
</Steps>

Pasted file paths are detected through the gateway. Image paths become attachment chips. Pasted blocks of five or more lines collapse into a placeholder that Hermes Agent expands server-side.

## Voice mode

The `/voice` command controls voice mode. It enables or disables voice features and reports current state. Actual recording uses the configured voice record key and the active voice platform.

```text theme={null}
/voice on       # Enable voice mode
/voice off      # Disable voice mode
/voice tts      # Toggle text-to-speech readback
/voice status   # Show current voice state
```

<CardGroup cols={2}>
  <Card title="/voice on" icon="microphone">
    Enable voice input for the current session.
  </Card>

  <Card title="/voice off" icon="microphone-slash">
    Disable voice input.
  </Card>

  <Card title="/voice tts" icon="volume-high">
    Toggle text-to-speech readback for agent replies.
  </Card>

  <Card title="/voice status" icon="circle-info">
    Print the current recording and TTS state.
  </Card>
</CardGroup>

## Useful slash commands in Chat

Type `/` in the composer to open the slash popover. Common Chat commands include:

| Command         | Description                                    |
| --------------- | ---------------------------------------------- |
| `/new`          | Start a fresh session                          |
| `/clear`        | Clear visible chat messages                    |
| `/steer [text]` | Inject a steering note into a running turn     |
| `/model`        | Switch the active model                        |
| `/theme`        | Open the theme picker                          |
| `/keys`         | View and rebind keyboard shortcuts             |
| `/queue [text]` | Queue a prompt for the next idle turn          |
| `/stash`        | Park the current prompt draft                  |
| `/stash pop`    | Restore the most recent stashed draft          |
| `/yolo`         | Toggle approval bypass for the current session |

Press `Ctrl+K` to open the command palette for a searchable view of actions.

## Related docs

* [Slash commands](/customization/slash-commands)
* [Sessions](/features/sessions)
* [Keybindings](/customization/keybindings)
