Getting started
Yardarm is a desktop app for the Mastra Code coding
agent. You describe what you want in plain language; the agent reads your code, proposes a
plan, edits files, runs commands, and helps you review and ship the result — all inside
one window. The mastracode runtime is bundled with the app: there is no
separate install, no account, and no telemetry.
This guide covers installation through your first chat. Inside the app, the help button beside the theme toggle (or Cmd+9) opens a built-in guide and FAQ covering the same ground.
Install
Install script (macOS, Apple Silicon — recommended)
curl -fsSL https://raw.githubusercontent.com/JJJ-Mo3/yardarm/main/scripts/install.sh | sh
This downloads the latest release and installs it to /Applications.
Download a release manually (macOS, Apple Silicon)
Grab the .dmg (or .zip) from the
latest release and drag
Yardarm.app into /Applications.
xattr -dr com.apple.quarantine /Applications/Yardarm.app
The install script above avoids this entirely (curl downloads are never quarantined). If
the dmg itself refuses to open, clear it there too:
xattr -d com.apple.quarantine ~/Downloads/Yardarm-*.dmg.
Build from source (all platforms)
Requirements: Node 22+, pnpm 10, and git.
git clone https://github.com/JJJ-Mo3/yardarm.git
cd yardarm
pnpm install
pnpm dist # installers into dist/ (dmg/zip, nsis, AppImage/deb)
# or
pnpm package # unpacked app bundle, e.g. dist/mac-arm64/Yardarm.app
Targets: macOS (arm64). Windows/Linux electron-builder config exists but is untested, and the bundled agent runtime is staged for the build machine's platform — build on the platform you're targeting. Apps you build yourself are not quarantined and open normally.
First launch: the setup wizard
The first time you open Yardarm, a setup wizard walks you through the same onboarding the
mastracode CLI uses. Nothing is written to disk until the final step, and you
can skip any part of it.
- Welcome — a reminder that everything runs locally and no account is created.
- Connect a provider — sign in with an existing subscription (Claude, OpenAI Codex, or GitHub Copilot via OAuth), paste an API key, or skip and add a local model later.
- Choose your models — choose which models power the Build / Plan / Fast modes. Pick a preset pack or choose per-mode.
- Observational Memory — optionally choose the model used for the agent's background memory.
- Connect your tools — optional one-click connector sign-ins (GitHub, GitLab, Supabase, Netlify, Vercel, Sentry).
- Add subagents — optionally pick ready-made subagents from the templates catalog.
- Agent sandbox — choose whether new chats run shell commands under OS-level isolation by default.
- Token compression — optionally shrink stale tool outputs to cut token costs.
- Tool approvals — decide whether the agent may run tools without asking each time (yolo). You can change this later per chat.
- Review your setup — review, then finish.
The wizard writes mastracode's own settings.json, so the CLI is configured at
the same time. Re-run it any time from
Settings → About → Run setup again.
Connecting a model
Yardarm can drive models from subscriptions, API keys, or your own machine. All of these are managed in Settings (Cmd+, / Ctrl+,):
-
Subscriptions (OAuth) — Settings → Providers has
sign-in buttons for Anthropic (Claude), OpenAI Codex, and GitHub Copilot. The browser
flow completes in seconds and credentials are stored in mastracode's own
auth.json. -
API keys — Settings → API Keys accepts keys for
Anthropic, OpenAI, Google, OpenRouter, xAI, Groq, Mistral, Deepgram, and more. Keys go
to the same
auth.jsonthe CLI reads and are only ever sent to their own provider. -
API keys by environment variable — prefer not to store a key at all? In
Settings → API Keys → Environment variables, point a provider at a
variable name (any name). The value is read from your login shell at launch and never
stored — standard variables like
ANTHROPIC_API_KEYare detected automatically. See the FAQ for details. - Local models (Ollama) — install Ollama, pull a model, and open Settings → Providers. Yardarm detects a running Ollama server automatically and offers to start one if it's installed but not running. Tick the models you want to expose.
- Any OpenAI-compatible server — LM Studio, vLLM, llama.cpp, a remote gateway: add it in Settings → Providers with a name, base URL, and model ids. No API key needed for local servers.
Model dropdowns throughout the app only list models that are actually usable right now (key present, login active, or server reachable), so an empty dropdown means "connect something first".
OLLAMA_CONTEXT_LENGTH=65536 ollama serve. Yardarm never imposes idle
timeouts, so a big local model can think for minutes without being cut off.
Your first project and chat
-
Click Add project in the sidebar and pick a folder. It doesn't need to
be a git repository yet — Yardarm will initialize what it needs. Yardarm also offers to
write agent instructions (an
AGENTS.md) so the agent knows the project's conventions from the first prompt — skip it or edit the file later in Project Settings. -
Create a chat (Cmd+N). By default each chat gets its own
git worktree: a private checkout of your repo on a
yardarm/…branch, stored under the app's data directory. The agent edits, builds, and commits there without touching your working copy — and several chats can work on the same repo in parallel without conflicts. - Type what you want and press Enter. That's it.
A few notes on worktrees:
- Repos with no commits yet get a bootstrap "Initial commit" automatically.
-
If your project needs setup in a fresh checkout (dependency installs, codegen), put
commands in
.yardarm/worktree.jsonat the repo root:{ "setup-worktree": ["pnpm install"] } -
When the work is done, merge or PR the
yardarm/…branch from the Changes tab (see Reviewing and shipping changes).
Where to get help
- The in-app guide — the help button beside the theme toggle in the sidebar (or Cmd+9) opens a built-in guide covering every part of the app, plus an FAQ and troubleshooting section.
- Settings → About shows the bundled runtime's boot status and the full error text if the agent fails to start.
- The troubleshooting page covers common issues (unsigned-build warnings, empty model dropdowns, context window errors, worktree failures).
- Otherwise, open an issue with the error text from Settings → About or the chat, or see the support page.