Skip to content

Mobile Chat

The Chat tab is the primary interface for interacting with your Snippbot agents on mobile. It supports streaming responses, agent and model selection, queued and interjected messages, voice input, file and photo attachments, and full conversation history.

  1. Tap the Chat tab in the bottom bar
  2. Tap the New chat icon in the header, or open an existing conversation from Home or History
  3. Choose an agent from the agent selector in the chat header
  4. Type your message and tap Send

The agent’s response streams in real-time via Server-Sent Events (SSE), showing content as it’s generated.

Tap the agent name in the chat header to open the agent picker:

  • Lists every agent on your daemon, with a status dot showing whether it’s idle or busy
  • A model selector next to it lets you override the model for the conversation
  • The people icon opens the roster, where you can add or remove extra agents for a multi-agent conversation (the primary agent always stays)

The chat displays several message types with distinct styling:

TypeAppearanceDescription
User messageRight-aligned bubbleYour sent messages
Agent responseLeft-aligned bubbleStreaming text with markdown rendering
Tool callCompact line, grouped when there are severalShows tool name, expandable to see input/output
Tool approvalCard with Approve / RejectElevated tool calls waiting for your decision (auto-rejected after 5 minutes)
QuestionsInteractive formQuestions the agent asks you mid-task
StatusStatus line”Thinking…” and other progress while the agent works
FailedMarked messageThe error text when a reply fails

Agent responses render full markdown:

  • Bold, italic, strikethrough
  • Code blocks (monospace, with a language label)
  • Tables
  • Lists (ordered and unordered)
  • Links (tappable)

Image attachments display inline in the conversation.

You don’t have to wait for a reply to finish:

  • Queue — messages you send wait and go out after the current reply; you can edit queued messages before they send
  • Interject — flip the toggle to send your message into the running reply instead
  • Stop — tap the stop button to cancel the reply

The mobile app supports tap-to-record voice input:

  1. Tap the microphone icon next to the text input
  2. Speak your message — a recording indicator with a timer shows recording is active
  3. Tap the indicator to stop — the audio is transcribed and sent automatically

Attach files to your messages:

  1. Tap the attachment icon in the input bar
  2. Choose a source:
    • Photo Library — Select one or more images from your gallery
    • Take Photo — Use the camera
    • Choose File — Browse device files
  3. The file appears as a preview in the input area
  4. Type an optional message and tap Send

Files are uploaded to your daemon; the app doesn’t restrict file types.

The chat handles these real-time events from the daemon:

EventWhat happens
message_startBegins a new agent response bubble
content_deltaAppends text to the current response
thinking_deltaShows a “Thinking…” status
tool_startDisplays a tool call card
tool_resultUpdates the tool card with results
message_completeFinalizes the response
ask_questionsShows interactive question buttons
approval_requiredShows a tool approval card
cancelledMarks the response as cancelled
errorDisplays an error banner

Access past conversations:

  • Tap the History tab to browse all conversations, with separate Chats and Scheduled views
  • Search by title, agent, or model
  • Pull down to refresh the list
  • The Home tab also shows your most recent conversations
  1. Check your daemon connection in Settings > Connection
  2. Ensure the daemon is running: snippbot status
  3. Check that the selected agent exists and has a valid model configured
  1. Grant microphone permission in device Settings > Apps > Snippbot
  2. Check that your daemon has a speech-to-text provider configured (Settings → Voice in the app lists them)
  1. Check your daemon connection — large files over a slow tunnel can time out
  2. Ensure the daemon has enough disk space
  3. Verify camera/photo library permissions in device settings