# Set up milo (/docs/start/milo-setup)



**milo** is Appbrew's CLI for driving an app workspace: themes, config, integrations, push notifications, analytics. It's built to be used by you *and* by your coding agent. `milo setup` installs an Appbrew-aware skill into **Claude Code, Codex, Cursor, or pi**, so your agent knows the full command surface, the config model, and the safety rules (like never editing the live theme) before you ask it to do anything.

Every milo command prints a single JSON value to stdout, which is what makes it reliable for agents and scripts alike.

## Install and wire your agent [#install-and-wire-your-agent]

milo ships as a devDependency in your repo. `pnpm install` already put it in place. Wire it into the agents you use:

```bash
MILO_PROFILE=external pnpm exec milo setup --targets claude-code,codex --yes
pnpm exec milo skills status
```

* `--targets` accepts `claude-code`, `codex`, `cursor`, and `pi` (Cursor supports project scope only).
* The generated skill files (e.g. `.claude/skills/`) are git-ignored on purpose. They are rendered per user and kept current automatically: milo re-syncs them whenever its version or content drifts.
* Keep `MILO_PROFILE=external` exported (your shell profile or the repo `.env`). It pins the external command surface for every invocation.

## Sign in [#sign-in]

```bash
pnpm exec milo login your-store.myshopify.com
```

This opens a browser sign-in and stores a session for 24 hours. Which app you operate on comes from `APP_ID`, already set in your repo's `.env`, so after login, commands just work. `pnpm exec milo auth status` shows who you are and which app is active, offline.

## What you'll use it for [#what-youll-use-it-for]

<Cards>
  <Card title="Config with milo" href="/docs/build/config-with-milo">
    Edit app config as code on draft themes: pull, edit, commit, push.
  </Card>

  <Card title="CLI reference" href="/docs/reference/cli">
    The full external command surface: themes, config, integrations, push,
    analytics, Shopify queries.
  </Card>
</Cards>

Once wired, you can ask your agent things like &#x2A;"create a draft theme, add my promo-banner block under the hero on the home screen, and push it"*.
