Kiro

Set up Kiro for MUON

Do these steps before you run muon mcp install kiro. MUON drives your own kiro-cli and never stores your sign-in, so kiro-cli has to work on its own first. MUON checks every step for you and tells you the exact fix: run muon kiro doctor in a terminal, or use Check Kiro setup in the app.

muon kiro doctor        # the guided check, one step at a time
muon mcp install kiro   # runs the same check first, then connects Kiro

What you need

  • kiro-cli installed, with kiro-cli-chat beside it. The installer puts both in ~/.local/bin.
  • A kiro-cli recent enough to have --agent-engine v2. MUON needs it to stream the agent's work. MUON was verified with 2.23.1 and 2.24.0, and muon kiro doctor checks your copy.
  • A way to sign in: a Kiro API key (recommended), or kiro-cli login.
  • A MUON fleet with at least one Kiro seat.

1. Install kiro-cli

curl -fsSL https://cli.kiro.dev/install | bash
# then open a new terminal so ~/.local/bin is on your PATH
kiro-cli --version

Already installed but older? Run kiro-cli update.

2. Sign in: pick one route

  1. 01

    Recommended: an API key

    Create a key in your Kiro account (headless runs need a key on a paid plan). Put it in your login shell, so every terminal and the MUON app can find it:

    # ~/.zshenv (or ~/.bash_profile)
    export KIRO_API_KEY=<your Kiro API key>

    Then open a new terminal. MUON reads the key from its own environment or your login shell, passes it only to the Kiro process it starts, and hides it in any output. When a key is set, MUON runs Kiro in a private home, so an older kiro-cli login cannot override it.

  2. 02

    Or: kiro-cli login

    kiro-cli login

    If you sign in with IAM Identity Center, your login must carry a Kiro profile. Without one, every request fails with profileArn is required for this request and only the auto model is listed. The profile is chosen while you sign in, so sign in again with your organisation's details and choose your profile when Kiro asks:

    kiro-cli logout
    kiro-cli login --license pro --identity-provider <your start URL> --region <your region>
    kiro-cli profile   # shows which profile is active (it does not change it)

    If that does not give you a profile, use the API key route above instead.

3. Verify it yourself

kiro-cli whoami
# "Authenticated with API key"          → the key route works
# "Logged in with IAM Identity Center"  → login route; check the profile below

kiro-cli chat --list-models --format json
# a list of models and a default_model → ready
# only "auto", or a profileArn error    → use an API key, or sign in again and choose a profile

muon kiro doctor runs these same read-only commands (it never logs you in or changes your profile) and reports the model count and default.

4. Keep your project folder clean

Kiro loads a project's own .kiro agents, hooks and MCP servers even when MUON pins its own agent. So MUON will not run Kiro in a folder that has any of:

  • .kiro/settings/mcp.json
  • a non-empty .kiro/hooks/
  • a non-empty .kiro/agents/

Empty hooks or agents folders are fine. A symlinked or unreadable .kiro is refused. Move a file out of the way to use Kiro there, for example mv .kiro/settings/mcp.json .kiro/settings/mcp.json.off.

5. Give Kiro seats

MUON can only send work to Kiro when Kiro has seats in the fleet. If Kiro shows 0 seats (for example on an install set up before Kiro was added), give it one to three:

muon fleet set --kiro 2
muon fleet               # check the counts

6. Connect Kiro to MUON

muon mcp install kiro                      # checks, then writes the user-scope file
muon mcp attach kiro --workspace <dir>     # optional: let your own kiro-cli chat coordinate a crew

muon mcp install kiro runs the setup check first and prints a checklist. If a step is blocking, it installs nothing and tells you what to fix. --force installs anyway. By default MUON writes the user-scope file (~/.kiro/settings/mcp.json, or under KIRO_HOME) directly, and it never calls kiro-cli mcp add. Avoid --scope project: it writes the repository's .kiro/settings/mcp.json, which MUON then refuses to run Kiro in.

In the MUON app

The Kiro card in the first-run wizard and Settings → Connections → Kiro setup show the same checklist, with a Copy button on each fix and a Re-check button. Install for Kiro runs the check first; Install anyway is the app's --force.

Troubleshooting

What you seeWhyFix
profileArn is required for this requestAn IAM Identity Center login with no Kiro profile selected.Recommended: export KIRO_API_KEY=… in ~/.zshenv, then a new terminal. Or kiro-cli logout, then kiro-cli login --license pro --identity-provider <start URL> --region <region> and choose your profile when Kiro asks.
Only auto is listedSame cause on an IAM Identity Center login. With an API key it is your plan's model list.Switch to an API key, or sign in again and choose a profile. Check with kiro-cli chat --list-models.
Kiro has 0 seats; nothing is dispatched to itKiro has no seats in this install's fleet (e.g. an install set up before Kiro was added).muon fleet set --kiro 2
MUON refuses to run Kiro in this folderThe folder has .kiro/settings/mcp.json, or a non-empty .kiro/hooks/ or .kiro/agents/.Move them aside, e.g. mv .kiro/agents .kiro/agents.off.
kiro-cli not found / not on PATHNot installed, or ~/.local/bin is not on your PATH yet.curl -fsSL https://cli.kiro.dev/install | bash, then open a new terminal.
API key found but Kiro rejects itThe key is wrong, expired, or not on a plan that allows headless use.Check or rotate the key and update KIRO_API_KEY. kiro-cli login does not help while a key is set.
Too old: no --agent-engine v2An older kiro-cli.kiro-cli update