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:
| Command | Description |
|---|---|
/help | Show all available commands and capabilities |
/status | Show agent status: provider, budget, skills |
/memory | View and manage long-term memory |
/permissions | Switch between Allow All and Ask Me permission modes |
/exit | Shutdown 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 voiceto 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
| Key | Action |
|---|---|
Enter | Send message |
Shift + Enter | Insert newline |
/ at start of input | Open slash-command autocomplete |
↑ / ↓ in autocomplete | Navigate suggestions |
Escape | Close autocomplete |
