Your HQ remains the source of truth. The app keeps a local cache for reading and drafting
while offline, then reconciles with the HQ when the connection returns.
Sign in
Dash for iOS connects to your HQ through your Dash account, not a pairing code.1
Enroll your HQ in Desktop
Open Settings → Devices → Remote access, sign in to Dash, and create an HQ if you
haven’t already. Enrolling here is also what makes the HQ visible to the app.
2
Sign in on iOS
Open Dash and tap Sign In. A browser opens to the Dash sign-in page — sign in with the
same account you used in Desktop, then the browser hands you back to the app.
3
Choose your HQ
Dash lists every HQ enrolled in your account, by its address. Tap one to connect. The
Conversations tab opens once the HQ accepts the connection.
- Couldn’t reach your Dash account service. Check your connection and try again. — check your connection and tap Retry.
- No HQs linked to your account yet. Open Desktop → Settings → Devices → Remote access to enroll this machine. — open Remote access in Desktop and enroll this machine.
- This HQ needs to be re-enrolled from Desktop before app access works. — its Remote access setup predates this app’s sign-in support; open Desktop on that computer once and it updates the HQ’s app access automatically.
Approve a device
As soon as you sign in, this iPhone or iPad becomes a signer for your account automatically — there’s nothing to turn on. From then on, whenever a new browser tries to reach one of your HQs for the first time, it waits for one of your signer devices to approve it instead of connecting right away. To approve one:1
Get the code
On the browser asking for access — the web client — a QR code appears under
Approve this device.
2
Scan it
On this phone, open Settings and tap Approve a device, then scan that code
with the camera.
3
Confirm
Dash shows
Allow "<device>" to access <HQ>?. Tap Approve to let it in,
or Deny to turn it away.Use shared conversations
The Conversations tab shows the HQ’s canonical conversation list. Changes made here also appear in Desktop.- Start a conversation by choosing an agent.
- Open existing and archived conversations, including messages created on another paired device.
- Rename or delete an idle conversation from its context menu.
- Pull to refresh when you want to check the HQ immediately.
Chat from your phone
Open a conversation, enter a message, and tap Send. Dash shows thinking, tool activity, sub-agent rows, questions, and response text as the HQ streams them. Tool calls and thinking are collected into a compact Activity row. Tap it to inspect each step and its available output. Thinking appears only when the model supplies it. Long responses stay compact in the transcript and offer Continue reading for the complete response. You can attach supported images or answer an agent question. The Tasks button in the toolbar lists every sub-agent in the conversation, with stop and resume. The transcript follows new text while you are reading the latest response. As soon as you scroll away, your position stays fixed even while more text streams in. Latest shows how many meaningful updates arrived and returns to the live response. If you send while reading earlier messages, Dash briefly reveals your new message and offers Back to reading so you can return to the same place. With a hardware keyboard, Return inserts a line break and Cmd+Return sends — matching the Send button. This differs from Desktop and the web client, where Return sends; see Composer keys. While an agent is working, the send button becomes Follow Up. It adds your message to a shared queue and runs it after the current response. Use the adjacent menu for Interrupt & send when the new message should take priority. The work strip shows the active response and pending count. Tap View to review, edit, or remove pending Follow Ups. Stop ends the exact active response and pauses pending work; Resume continues it when you are ready. Every paired client sees the same admitted turns, activity, command outcomes, and Follow Up order. Each window keeps its own text draft and reading position. If the connection drops, Dash keeps the partial response visible and resumes from the last durable event after reconnecting. New mutations wait for a connection, while the draft and cached conversation remain readable. If the connection fails before Dash can confirm that a new message was admitted, the app checks the HQ’s canonical conversation before doing anything else. An ambiguous message stays saved across app restarts and is never resent automatically. When the conversation still exists, Retry reuses the exact original request ID so the HQ can resume or deduplicate the same turn instead of creating a second one. If another client deleted that conversation, Dash never recreates or resends the saved message. It appears in Needs Recovery at the top of Conversations. Open it to copy the exact text and preview or share its readable attachments, then discard it with confirmation when you no longer need it. Dash uses the same manual recovery flow if it finds unreadable saved attachment data. The same flow also protects an earlier rejected message if a newer draft was saved separately: the newer draft and earlier message are both preserved in one recovery item. You can copy either text and preview or share readable attachments from either copy. If the conversation is still available, discarding the earlier message preserves the newer draft in the composer. If the conversation is unavailable, the confirmation makes clear that discarding removes both copies. Dash checks again before deleting anything; if availability changed while the confirmation was open, it stops and asks you to review and confirm the current outcome. The affected chat stays read-only until you explicitly discard the recovery item. Corrupt attachment data cannot be previewed or shared, but the exact text for that copy remains available. Recovery items survive app restarts and never include a Retry action.Talk to your agent
When your HQ has a speech provider configured, Dash can turn your voice into a message, read an agent’s replies back to you, or hold a full hands-free conversation in voice mode.This needs an HQ running the version that adds speech, installed at the same time as (or
before) an app build that expects it. An older app can’t decode the capability an updated
HQ advertises, and an older HQ rejects the settings a newer app sends — pair the app
and HQ updates together.
Dictate a message
Tap the microphone button to the left of the paperclip in the composer to dictate instead of typing. Recording replaces the message field with a live level meter and a countdown, and stops automatically after 60 seconds. Tap the checkmark to finish early and insert the transcript, or the × to discard the recording. If iOS has denied microphone access, Dash shows Microphone access is off. Turn it on in Settings. with a Settings button, since iOS only prompts for the permission once. A phone call or other audio interruption ends the recording with Recording was interrupted. A clip that transcribes to nothing shows Nothing was heard.Read a reply aloud
Open the context menu on an assistant message and choose Read aloud to hear it spoken. The same item becomes Stop reading while it plays. Starting a read on another message stops whichever one was already reading. Only the first 4,000 characters of a reply are read aloud.Voice mode
Tap the waveform button to the right of Send to start a hands-free conversation. It appears once your HQ’s speech is available and microphone access hasn’t been denied. If you haven’t decided on microphone access yet, iOS asks the first time you tap it. A full-screen orb opens with a line underneath naming what’s happening — Listening, Thinking, Speaking — plus captions of what you said and what the agent is saying. Just talk. When you stop, Dash sends what you said, and the agent answers out loud. There’s no button to press in between — speak, pause, and the reply comes back. To interrupt the agent while it’s speaking, start talking — Dash hears you and stops playback right away — or tap the orb. A mute button sits below the orb: while muted, the agent keeps speaking, but nothing you say is sent until you unmute. While voice mode is open, the agent knows you’re speaking to it and answers in short spoken sentences. If a reply would include code, a table, or something long, the agent tells you it’s in the transcript rather than reading it aloud. Voice mode always tells you why it stopped, then closes the cover: Connection lost if the HQ connection drops, Microphone stopped if a phone call or other interruption takes the microphone away, or Voice mode ended if you close it yourself or send the app to the background. Either way, nothing is lost — every turn from the conversation stays in your chat afterward like any other message. Voice mode also works over Dash’s hosted relay, so it behaves the same way on cellular as it does on Wi-Fi. Read aloud isn’t available while voice mode is open — close voice mode first.Settings → Speech
Open Settings → Speech to see and change what the HQ hears and speaks with: the speech-to-text model, the text-to-speech model and voice (with a Preview voice button that speaks a short sample), and the language dictation expects — Auto lets the provider detect what you’re speaking. A Realtime row explains that live back-and-forth conversation isn’t available yet on any configured provider. This row only appears once your HQ has a speech provider configured; otherwise the Speech section in Settings reads Update your HQ to use speech.Manage agents
Open Squad to inspect HQ-owned squad member status and configuration.- Create an agent by choosing a name, model, and system prompt.
- Edit the model or prompt for an existing agent.
- Enable or disable an agent. Disabling requires confirmation.
- Start a shared conversation directly from an agent’s detail screen.
- Delete an agent by typing its exact name. Its conversations remain in history as archived chats.