Skip to main content
Dash for iOS is a native companion for your HQ. It lets you continue the same conversations you see in Desktop and manage agents without running an agent on the phone itself.
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.
Dash for iOS always connects through Dash’s hosted relay, so it works the same way at home, at the office, or on cellular — there’s no local-network step and no QR code to scan. The HQ picker’s toolbar also has Sign Out, which disconnects this device and returns to Sign In. If something goes wrong, the HQ picker tells you exactly what:
  • 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.
If you take too long to scan or confirm, the code expires and Dash shows This code has expired. Ask the device to try again. — go back to the browser that’s waiting and have it request a fresh one. Accounts with no signer device yet skip this entirely: a new browser sign-in connects immediately, just like before. The moment your first Dash for iOS device signs in, every new browser sign-in after that needs approval from one of your signer devices.

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.
When a conversation changed elsewhere before your edit completed, Dash refreshes the canonical version and asks you to retry instead of overwriting it.

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.
Provider credentials, connectors, projects, HQ shutdown, and other host administration remain in Desktop.

Work through connection changes

Previously synced conversations and agents remain readable when the HQ is offline. You can keep a local draft, but creating, sending, renaming, deleting, and agent changes wait until the HQ reconnects. A banner distinguishes an offline HQ, a temporary relay failure, a rate limit, rejected credentials, and an incompatible app or HQ version. Use Settings → Reconnect after fixing connectivity. If the HQ rejected the saved credentials or its identity changed, open Settings and choose Disconnect & Forget, then sign back in and tap the HQ again in the picker — no QR code needed.

Remove an HQ from the device

Open Settings and choose Disconnect & Forget. After confirmation, Dash stops its connections and removes that HQ’s credentials, cached conversations, agents, attachments, and drafts from the device. The canonical HQ data is not deleted.
Disconnect & Forget cannot restore local drafts or cached attachments. Make sure anything you need has synced before removing the HQ.