FAQ

Frequently asked questions about Yardarm.

Do I need an account?

No. There is no signup, login, or telemetry in Yardarm itself. You only authenticate with the model providers you choose to use.

What data leaves my machine?

Prompts and code context go to whichever model endpoints you configure — and nowhere else. With a local provider (Ollama, LM Studio, …) inference traffic stays on localhost. Mastra Code's cloud gateway is only contacted if you use models served through it. Voice dictation sends audio to the STT provider you selected, only while you record. The only network traffic from Yardarm itself is the update check against the project's GitHub Releases — Settings → About lets you turn automatic checks off. See also the privacy policy.

Can I use the CLI and the app at the same time?

Yes — that's the point. They share settings.json, auth.json, MCP/hooks configs, and custom commands. The app writes those files atomically and preserves keys it doesn't know about.

Where are my API keys stored?

In mastracode's own auth.json in its platform app-data directory (see configuration paths). Yardarm reads and writes the same file the CLI uses; keys are never sent anywhere except to the provider they belong to. Prefer not to store the key at all? See environment-variable references below.

Can I avoid storing my API key on disk?

Yes. In Settings → API Keys → Environment variables, point a provider at an environment variable (any name) instead of pasting the key. The value is read from your login shell when the app starts and is never stored anywhere by Yardarm — only the variable name is saved. Standard variables like ANTHROPIC_API_KEY or OPENAI_API_KEY are detected automatically. A key stored in auth.json takes precedence, so saving a reference removes the stored key (and vice versa). On macOS, export the variable in ~/.zshrc or ~/.zprofile and relaunch the app after adding it. Like any exported key, the variable is visible to shell commands the agent runs.

Can I run fully offline / air-gapped?

Yes, with local models: complete onboarding by adding a local provider, and skip OAuth/API keys entirely. One caveat: the optional IDE language-server packs (Web, YAML, Python, ERB — Settings → Languages) are one-time downloads from GitHub, so grab any you want while online; they work fully offline afterwards. TypeScript/JavaScript diagnostics are built in and need no download.

My local model is slow — will runs time out?

No. Yardarm disables HTTP idle timeouts for agent traffic specifically so big local models can sit silent through long prompt-processing phases. You can always stop a run manually.

What context window do I need for a local model?

64k tokens minimum; 128k or more if your machine has the memory. The agent's base prompt (system prompt, tool definitions, project context) is roughly 30k tokens before you type anything, and the conversation only grows from there — there is no client-side compaction for local providers, so even a 64k window can fill up within a single working session. Some servers (Ollama) also silently truncate the prompt to fit, which degrades the agent well before it fails outright. Ollama defaults to ~4k: raise it in the Ollama app (Settings → Context length) or start the server with OLLAMA_CONTEXT_LENGTH=65536 ollama serve. In LM Studio, set the context length when loading the model; for llama.cpp, pass -c 65536. Starting a new chat resets the conversation and frees context.

Why does a chat get its own branch/worktree?

Isolation: the agent can edit, build, and commit without touching your checked-out branch, and parallel chats can't conflict. You can merge or PR the yardarm/… branch from the Changes tab, or create chats without a worktree.

How do I uninstall completely?

Delete the app, then remove the app data (…/yardarm, paths under App data). If you also want to drop Mastra Code's shared config, remove ~/.mastracode and the mastracode app-data directory — but note the CLI uses those too.

Is this an official Mastra product?

No. Yardarm is an independent open-source project. "Mastra" and "Mastra Code" are trademarks of their respective owner; they're used here only to describe compatibility.

Why "Yardarm"?

Mastra ships the mast; this is the spar that hangs off it.