Chat

The Chat page is the primary interface for talking to tota. It streams responses token-by-token via WebSocket and supports file attachments, voice input, slash commands, and rendered code blocks.

#Starting a conversation

Navigate to /chat (the default route after launch). Type a message and press Enter or click the send button. Responses stream in real time — you see each word as the model generates it.

The agent avatar, timestamps, and per-message copy button appear on every message.

#Slash commands

Type / to open the autocomplete menu. The following built-in slash commands are available:

CommandDescription
/helpShow all available commands and capabilities
/statusShow agent status: provider, budget, skills
/memoryView and manage long-term memory
/permissionsSwitch between Allow All and Ask Me permission modes
/exitShutdown the tota agent

These commands are processed locally — they do not consume API tokens.

#File upload

Click the paperclip icon (or drag a file onto the chat window) to attach a file to your message. The file is uploaded to the server via POST /api/upload and the agent receives the path, filename, and MIME type — it can then use any of its file-reading tools to process it immediately.

Supported types include text files, source code, PDFs, images, audio, video, ZIP archives, and common code file extensions. Maximum file size is 50 MB.

#Voice input

Click the microphone icon to start recording. The browser captures audio using the MediaRecorder API, uploads the WebM blob via /api/upload, and the agent auto-transcribes it with the transcribe_audio tool. A red pulse animation shows while recording is active; click the square icon to stop and send.

Voice input requires a configured STT provider. Run tota setup voice to configure one.

#Connection status

If the WebSocket connection to the server drops, a WifiOff banner appears at the top of the chat window. The input is disabled until the connection is restored.

#Tool call display

When the agent uses a tool (e.g. reading a file, running a shell command, searching the web), the UI shows a collapsible tool step row inline in the conversation. Expand it to see the tool name, input parameters, and raw output.

A shield-alert icon appears next to any tool call that required your permission approval.

#Code blocks

Responses containing fenced code blocks are rendered with:

  • Syntax language label
  • Monospace pre-formatted display with horizontal scroll
  • Copy button (switches to a checkmark for 1.5 s after copying)

Inline code and bold text are also rendered inline.

#Permission prompts

When tota is running in Ask Me mode, the agent may pause mid-response and display a permission prompt in the chat asking whether to allow a specific tool call. Approve or deny directly from the chat window.

#Keyboard shortcuts

KeyAction
EnterSend message
Shift + EnterInsert newline
/ at start of inputOpen slash-command autocomplete
/ in autocompleteNavigate suggestions
EscapeClose autocomplete