Workspace

Beyond the chat, each conversation carries a full workspace scoped to its worktree: a real terminal, a light IDE, the embedded Mastra Code CLI, a localhost preview browser, and usage analytics — plus an app-level harness and native work client for Mastra Factory.

Terminal

The Terminal tab (Cmd+5, or toggle with Cmd+J) is a real shell that opens in the chat's worktree. Build, test, poke around; you and the agent are looking at the same files.

The + button in the tab strip opens extra sessions in other locations — the project root or another chat's worktree — shown as tabs beside the default one. Sessions keep running while you switch tabs; closing a tab ends its shell.

Press Cmd+F while the terminal is focused to search its scrollback: a small overlay shows a match counter, Enter / Shift+Enter step through matches (highlighted in place), and Esc closes the search and returns focus to the shell.

IDE

The IDE tab (Cmd+3) is a file tree + Monaco editor scoped to the worktree. Open multiple files as tabs and save with Cmd+S.

CLI

The CLI tab (Cmd+2) runs the interactive Mastra Code terminal UI, embedded, in the same worktree and seeing the same threads as the chat. Handy for CLI-only commands (terminal voice mode, …). Avoid driving the same thread from the chat and the CLI at the same time. On Windows (beta) the CLI tab works but does not live-sync with the chat screen — reopen the chat's thread to see CLI-made turns.

Preview

The Preview tab (Cmd+7) is an in-app browser for localhost dev servers.

Factory

The Factory tab (unnumbered — reach it from the tab bar or Cmd+K) is a harness for Mastra Factory, Mastra's open-source agent-powered software factory: a server that connects to your GitHub org, runs work items through a kanban pipeline with human approval gates, and opens pull requests. The Factory server lives in its own checkout, separate from the repos its agents work on. Using the work board requires signing in with a Mastra account — even when the server runs locally — because its APIs are organization-scoped; the sign-in is identity-only and a local server's data stays on your machine (details under Work below).

Every chat row in the sidebar carries a live activity dot that reflects the agent's real state: amber = waiting for your input, spinner = working right now, blue = a run finished that you haven't seen yet. Because each chat can run in its own worktree, it's practical to queue up a batch of independent tasks and let several agents work in parallel — the dots tell you at a glance which chats need you. Drag chat rows to reorder them; chats you haven't ordered sort by recency.

While the app is in the background, a desktop notification fires when a run finishes or an agent needs approval or input — clicking it focuses the app and opens that chat. Toggle in Settings → Preferences → Notifications.

When a chat is finished but you want to keep it around, hover its sidebar row and click the archive icon: the chat disappears from the list without deleting its worktree or history. Archived chats collapse into an Archived section at the bottom of the sidebar, where they can be restored or deleted.

Analytics

The chart icon at the right of the tab bar (Cmd+6) opens Analytics: token usage for the current project.

Figures are token counts, not prices — pricing varies by provider and plan, so Yardarm reports usage and lets you do the math that matches your billing.

Connectors

Settings → Connectors offers one-click sign-ins for common services the agent can use as tools: GitHub, GitLab, Supabase, Netlify, Vercel, and Sentry. Each connector is a hosted MCP server with the OAuth flow handled for you — click Connect, approve in the browser, and every chat in the project can use that service's tools.

The tab shows verified connection status per service (it actually exercises the connection, not just the token), and sign-ins are shared across all of a project's worktrees — one login covers every chat, present and future. For arbitrary MCP servers beyond these, see Settings → MCP Servers.

The same tab hosts two more integrations:

Voice dictation

Yardarm can transcribe your voice straight into the composer using a cloud speech-to-text provider.

  1. Open Settings → Voice and enable voice input with the Cloud engine.
  2. Pick an STT provider and model — OpenAI (Whisper, GPT-4o Transcribe), Groq (Whisper large v3), Deepgram (Nova-3), and several other Whisper hosts are supported.
  3. The provider's API key is a prerequisite: add it under Settings → API Keys if you haven't. The Voice tab shows which providers have keys, and the toggle stays off until one does.

Then, in any chat, click the mic button in the composer:

Audio is sent only to the STT provider you selected. If dictation isn't enabled (or no provider has a key), the mic button is hidden entirely.