GUIDE· 2 min read

Getting started with Muse Code: from install to first merge

Meta’s terminal coding agent is deliberately minimal to set up: one command, one browser sign-in, and you’re driving a multi-agent session inside your own repository. Here’s the whole path, including the parts worth slowing down for.

#getting-started#install#cli#setup

One command, one binary

Muse Code ships in beta for macOS and Linux, and the install is a single line:

curl -fsSL https://dev.meta.ai/install.sh | bash

The script places a muse binary on your PATH; muse --version confirms it landed. Piping a remote script into bash is a convenience trade-off with any vendor, so cautious teams should download the script first (curl -fsSL https://dev.meta.ai/install.sh -o install.sh), read it, and then run it. Note what’s deliberately absent: there is no IDE plugin and no desktop app. Unlike some competing agents, Muse Code is terminal-only by design.

Authentication in the browser, keys for machines

The first time you run muse, it opens your browser to sign in at dev.meta.ai with a Meta developer account. Credentials cache locally afterward, so you won’t re-authenticate every session. Everything — access and billing alike — runs through the same Meta Model API account that serves the Muse Spark models directly.

For CI pipelines, scripts, and headless machines, skip the browser: create a key in the Model API dashboard (API keys → Create API key) and export it as MODEL_API_KEY. The key format looks like LLM|{numeric_id}|{secret} — keep it in an environment variable or secrets manager, never in code.

Pick a first task that proves the loop

cd into any git repository and run muse. The agent reads local context and opens a task loop; you describe outcomes in plain language. Resist the temptation to start with a grand refactor. The fastest way to understand Muse Code’s character is a small, verifiable task — something like “add a missing test for the parseDate function and make sure it passes.”

Within a couple of minutes you’ll watch the division of labor that defines the product: a worker agent drafts the change, a reviewer agent critiques it in the background, and the test actually runs. That worker-and-reviewer pattern is on by default for every task — it’s the reason Meta describes the product as multi-agent by default rather than multi-agent as an option.

Two cost levers to learn on day one

Muse Spark is a reasoning model: it thinks before it answers, and those thinking tokens bill as output. The /effort command dials reasoning up or down, so a routine rename doesn’t pay for deep deliberation while a gnarly concurrency bug can get it. Second, standing rules — your tone, format, conventions — belong in a system message once, not repeated in every prompt. Between the two, day-one usage bills stay boring, which is what you want.

Where to go next

Once the loop feels familiar, three built-in skills structure bigger work: /plan turns a task into an approval-gated plan, /grill stress-tests that plan until it holds up, and /goal keeps an agent driving toward the objective you set. We cover them in depth in the bundled skills post, and the full reference lives in the docs.

Keep reading