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, a Kanban board that dispatches agents, and usage analytics.
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.
IDE
The IDE tab (Cmd+3) is a file tree + Monaco editor scoped to the worktree. Open multiple files as tabs and save with ⌘S.
- Every save is tracked per project/worktree and survives app restarts: each chat working on that root is told about your edit immediately — pushed into the run while its agent is working, or written into the chat's memory while it's idle, no message needed (edits saved during a permission prompt are delivered right after you answer it). The transcript shows a "Told the agent about IDE edits" line either way; brand-new chats with no messages yet get the note alongside your first prompt.
- Clean files the agent changes refresh automatically, and saving over a file the agent just changed prompts you to overwrite or reload.
- A problems panel below the editor shows language-server diagnostics (errors and warnings) for the active file, refreshed as you type (shortly after edits pause), on open and on save — no chat needs to be selected. Click a problem to jump to it, and the same markers appear inline in the editor.
-
Language servers come in three tiers. Built in: TypeScript/JavaScript
(using your project's own TypeScript when it has one) ships with the app — no setup
needed. Downloadable packs: Web (HTML/CSS/JSON, ~15 MB), YAML
(~6 MB), Python (~7 MB) and ERB / Rails templates (~19 MB) are one-time
downloads from Settings → Languages — or click the Download button the
problems panel offers when you open a matching file; they work offline once installed
and take effect on the next refresh, no restart. External binaries: Go,
Rust and Ruby use gopls / rust-analyzer / ruby-lsp from your PATH (well-known install
dirs like
~/go/binand~/.cargo/binare searched too); Rails smarts come from your project's ruby-lsp-rails gem.
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.
Preview
The Preview tab (Cmd+8) is an in-app browser for localhost dev servers.
-
Start your server in the Terminal or CLI tab and its URL appears as a chip within a few
seconds (the first detection loads automatically); or type a
localhost/127.0.0.1URL into the address bar. - If nothing is running yet, a start chip offers to launch the project's dev server (detected from the project; static sites get a simple fallback server) in a dedicated terminal.
- Dev servers are per chat (each runs in its own worktree) and would clash over the same port, so if another chat's server is still running, the start chip says so and stops it before starting here.
- Back/forward, reload, DevTools, and open-in-browser controls are in the toolbar — the wrench button docks a full Chrome DevTools pane beside the page (elements, console, network) inspecting the previewed app.
- Navigation is locked to localhost — links to anywhere else open in your system browser — and the page survives switching tabs.
The Kanban board and sidebar indicators
The Kanban tab (Cmd+6) is a task board that can dispatch agents, plus a live overview of everything already running.
Author tasks. Write cards — a title and the prompt to send — into the Backlog and To do columns. Drag cards to reorder them or move them between the two, edit or delete them anytime.
Dispatch. Drag a card to In progress (or press its play button) and Yardarm creates a chat — in its own worktree if you choose — and sends the card's prompt to a fresh agent. From then on the card is linked to that chat: click it to open the conversation.
Live columns. Dispatched cards (and every other chat in the project) move through the board based on the agent's real state:
| Column | Meaning |
|---|---|
| Needs input | the agent asked you something |
| In progress | the agent is working right now |
| Ready to review | a run finished you haven't seen yet |
| Idle | nothing happening |
Finished, reviewed cards can be marked Done. Because each dispatched task runs in its own worktree, it's practical to queue up a batch of independent tasks and let several agents work in parallel.
The same states appear as dots on chat rows in the sidebar: amber = waiting for you, spinner = working, blue = finished and unseen.
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 and the board 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+7) opens Analytics: token usage for the current project.
- By day — input/output tokens over time.
- By model and by chat — see where the tokens actually went.
- Compression savings — how many tokens token compression saved.
- CSV export — download the raw numbers for your own analysis.
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:
-
GitHub signals (
/github) — an experimental integration that watches your open PRs through theghCLI and surfaces their status to the agent. -
Observability (
/observability) — local tracing of agent runs, with optional export to Mastra Cloud.
Voice dictation
Yardarm can transcribe your voice straight into the composer using a cloud speech-to-text provider.
- Open Settings → Voice and enable voice input with the Cloud engine.
- 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.
- 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:
- Click to start recording (the button pulses red and shows elapsed time), click again to stop and transcribe. Or press-and-hold to talk, release to transcribe.
- Escape cancels a recording and discards the audio.
- Transcribed text is appended to the prompt for you to edit before sending.
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.