Monterosa CLI
mic is the command line for the Interaction Cloud. Create test content, copy events between shows and environments, back up and compare project settings, and script the clicks you do by hand in Studio. The same commands run from your terminal, from a CI job, and from Claude.
# 1. Install mic and the MCP adapter. $ curl -fsSL \ https://assets.monterosa.co/cli/install.sh \ | bash ✓ installed mic 0.17.0 # 2. Point it at your Studio instance. $ mic auth login \ --url https://studio.monterosa.cloud Saved profile "default" (…4f2a). # 3. Run a command. $ mic orgs list id name org_7k2 Monterosa
What people use it for
Six jobs that take the longest in Studio, each one a command. Every command accepts --json, so the output goes straight into a script.
Create test content
One command makes an event, adds one element of every type the project has enabled, publishes it and prints the consumer URL. Use it for a demo, a QA pass, or checking a new FanKit version. mic smoke clean removes what it made.
$ mic smoke run --project $PIDCopy an event
Clone an event and all its elements into a new one. mic elements clone-from copies a subset between two events, and clone-group copies a wrapper with its children and rewrites the link between them so the copy still works.
$ mic events clone evt_8h2 --name "Week 13"Back up and compare settings
Pull a project's settings to a file on disk. settings diff shows what changed, key by key, before settings push replaces the blob. mic projects diff compares two projects and tells you which setting is behind the different behaviour.
$ mic projects settings pull $PID --out settings.jsonPublish and schedule in bulk
Publish every unpublished element on an event, children before wrappers, with --dry-run to see the order first. mic events schedule spaces element start offsets across an event instead of setting each one by hand.
$ mic elements publish-pending --event $EID --dry-runGet the URL you need
Derive the consumer, Studio, feeds and livestats URLs for a project or event, rather than assembling them from the embed settings yourself.
$ mic url consumer --project $PID --event $EIDDescribe a project as a file
Export a live project to a YAML manifest, keep it in git, and apply it somewhere else. mic plan prints the add and update steps without touching anything. mic apply runs them. It never deletes what the manifest leaves out. This part is early.
$ mic export --project $PID --out project.yamlRun it from Claude, or run it at 08:00 with nobody watching
The CLI is the only surface. Everything else calls it, so an agent and a person get the same commands, the same auth and the same result.
- Tools nobody hand-writes.
mic describeemits metadata for every command it exposes: the name, the arguments, the flag types, and which of them are required. Themonterosa-mcpadapter runs it at startup and builds one MCP tool per command. In 0.17.0 that is 183 commands across 28 groups. - Ship once, every agent picks it up. Add a command, publish the CLI, restart the agent. There is no separate schema to update.
- Your editor, wired on install. The installer offers to configure Claude Desktop, Claude Code, Gemini CLI and Cursor. Say no to any of them, or set
MIC_SKIP_CURSOR=1and friends for an unattended install. - In CI, use a token and a profile.
mic auth login --url … --token "$MIC_TOKEN" --profile prod, then any command with--json.
There is also mic interactive, a terminal UI with an agent that calls the same commands. It runs on AWS Bedrock and needs credentials for it, so for now it is a Monterosa engineering tool rather than something you can switch on.
# Roll last week's quiz forward, unattended. $ mic events clone evt_8h2 \ --name "Week 13" --json {"id":"evt_9k4","name":"Week 13"} $ mic elements apply --event evt_9k4 \ --file questions.yaml --publish $ mic url consumer --project $PID \ --event evt_9k4 https://apps.monterosa.cloud/fankit/ v25.1.0/index.html?p=$PID&e=evt_9k4#/
Lock a profile to what it is allowed to change
Your token can do anything your Studio user can do, including deleting a project. Give each profile an allow-list and the CLI checks it before it sends the request.
# Lock this profile to one project. $ mic auth scope add project $PID # Or paste a Studio URL and pick the level. $ mic auth scope add \ "https://studio…/projects/$PID" # See what the active profile may touch. $ mic scope show # Drop every restriction. $ mic auth scope clear
- Reads are never restricted. You can still list and inspect anything your token can see.
- Writes outside the list fail before the request is sent. Nothing reaches the API, so there is nothing to undo.
- An agent cannot widen its own scope.
mic scope showis readable through MCP. Adding and clearing entries is not: the agent gets an error telling you to run it in your shell. - Settings pushes keep a backup.
settings pushwrites the current remote settings to disk before it replaces them, unless you pass--no-backup.
Get mic on your machine
macOS and Linux. You need Node 24 or newer, npm, and a Studio account. The installer downloads public tarballs and installs mic and monterosa-mcp globally. This page describes mic 0.17.0.
$ curl -fsSL https://assets.monterosa.co/cli/install.sh | bash # Pin a version instead of taking the latest. $ MIC_VERSION=0.17.0 curl -fsSL \ https://assets.monterosa.co/cli/install.sh | bash # No prompts, for a scripted or CI install. $ MIC_INSTALL_YES=1 curl -fsSL \ https://assets.monterosa.co/cli/install.sh | bash
Then log in
mic auth login --url https://yourinstance.monterosa.cloud. It prompts for your bearer token.
Check it worked
mic auth whoami shows the active profile. mic orgs list is the first real call.
Find a command
mic --help, then mic events --help. Every command explains its own flags.
Stay current
mic update upgrades the CLI and the MCP adapter. mic update --check tells you what is available.
Questions about mic?
Tell us what you are trying to automate. We will point you at the command, or say plainly that it does not exist yet.

