mic CLI reference

Every command in the Monterosa Interaction Cloud CLI, every flag, every argument. Generated from mic describe.

Version 0.6.0 - 57 commands. Need a worked example? See the quick reference on the main page.

Organisations

# mic orgs list

List organisations (API: GET /api/v2/organisations)

$ mic orgs list

Spaces

# mic spaces list

List spaces in an organisation (API: GET /api/v2/organisations/{id}/spaces)

$ mic spaces list [options]

Options

FlagTypeDescription
--org <id> string Organisation id (defaults to profile default) required

Apps

# mic apps catalogue

Print known Monterosa apps (local catalogue)

$ mic apps catalogue

# mic apps create

Register an app/version (e.g. FanKit v25.1.0) in a space so projects in that space can use it. Admin only. Endpoint is POST /api/v2/apps (NOT space-scoped) — space is passed as a relationship in the body. Attributes need only spec_url; app_id, version, and embed_url are derived server-side from the fetched spec. Returns the new app resource id. NOTE: this does NOT migrate any project onto the new app — it only makes the version available in the space. To move a project onto it, call `projects reload --app <id>` with the id returned here. Use `apps list --space <id>` to see what is already registered before creating.

$ mic apps create [options]

Options

FlagTypeDescription
--space <id> string Space id (required) required
--spec-url <url> string Spec URL — app_id, version, embed_url are derived server-side from this spec (required) required

# mic apps list

List apps available in a space (API: GET /api/v2/spaces/{id}/apps)

$ mic apps list [options]

Options

FlagTypeDescription
--space <id> string Space id (defaults to profile default) required

# mic apps validate-spec-url

Pre-flight check: does the Studio server-side fetcher reach this spec URL? Useful for catching CloudFront WAF / bucket-policy surprises on `assets.monterosa.co` before calling `apps create`.

$ mic apps validate-spec-url <url> [options]

Arguments

NameRequiredDescription
url required

Options

FlagTypeDescription
--ua <user-agent> string Override User-Agent (default: a Studio-style server UA) required default: "Monterosa-Studio/1.0 (+spec-fetcher)"

Projects

# mic projects create

Create project (API: POST /api/v2/projects, relationships.space + app)

$ mic projects create [options]

Options

FlagTypeDescription
--space <id> string Space id required
--name <str> string Project name required
--app <app-resource-id> string App resource id (from `mic apps list`) required

# mic projects diff

Compare two projects: app/version, enabled element types, and settings entries. Useful for debugging why Project A behaves differently to Project B on the same platform.

$ mic projects diff <id-a> <id-b> [options]

Arguments

NameRequiredDescription
id-a required
id-b required

Options

FlagTypeDescription
--only <what> string Limit diff to a subset: settings|app|enabled (comma-separated) required default: "settings,app,enabled"

# mic projects inspect

Show project + app + enabled element types

$ mic projects inspect <id>

Arguments

NameRequiredDescription
id required

# mic projects list

List projects in a space (API: GET /api/v2/spaces/{id}/projects)

$ mic projects list [options]

Options

FlagTypeDescription
--space <id> string Space id (defaults to profile default) required

# mic projects reload

Migrate a project onto a different app/version (e.g. FanKit v24 -> v25)

$ mic projects reload <id> [options]

Arguments

NameRequiredDescription
id required

Options

FlagTypeDescription
--app <app-resource-id> string New app resource id required

# mic projects settings diff

Show per-key diff between local file and remote settings

$ mic projects settings diff <id> [options]

Arguments

NameRequiredDescription
id required

Options

FlagTypeDescription
--file <file> string Settings JSON file required default: "settings.json"

# mic projects settings pull

Download attributes.settings as JSON. Default --out is ~/.monterosa/backups/{project-id}-{digest}.json so repeated pulls across projects do not clobber a single settings.json in the cwd.

$ mic projects settings pull <id> [options]

Arguments

NameRequiredDescription
id required

Options

FlagTypeDescription
--out <file> string Output file (default: ~/.monterosa/backups/{project-id}-{digest}.json) required

# mic projects settings push

Upload settings JSON (PATCH attributes.settings, wholesale replace)

$ mic projects settings push <id> [options]

Arguments

NameRequiredDescription
id required

Options

FlagTypeDescription
--file <file> string Settings JSON file required default: "settings.json"
--force boolean Skip digest conflict check
--confirm boolean Confirm push above 2MB
--no-backup boolean Skip the automatic pre-push backup of remote settings
--backup-dir <dir> string Directory to write the pre-push backup to (defaults to OS temp dir) required

Events

# mic events clone

Client-side clone: copies event + all elements to a new event

$ mic events clone <source-id> [options]

Arguments

NameRequiredDescription
source-id required

Options

FlagTypeDescription
--name <str> string New event name required

# mic events create

Create event (API: POST /api/v2/events, relationships.project)

$ mic events create [options]

Options

FlagTypeDescription
--project <id> string Project id required
--name <str> string Event name required
--duration <sec> string Duration in seconds required
--start-at <iso> string Start timestamp (ISO 8601) required

# mic events from-template

Create event from template (data.type: event_from_template)

$ mic events from-template <template-id> [options]

Arguments

NameRequiredDescription
template-id required

Options

FlagTypeDescription
--project <id> string Project id required
--name <str> string New event name required

# mic events list

List events (API: GET /api/v2/projects/{id}/events)

$ mic events list [options]

Options

FlagTypeDescription
--project <id> string Project id required
--state <list> string Comma-separated states (future,current,on_demand,past) required default: "future,current,on_demand,past"

# mic events prune

Delete events that have no elements (or only drafts) on a project. Use --dry-run to preview before deleting. Asks for confirmation unless --yes.

$ mic events prune [options]

Options

FlagTypeDescription
--project <id> string Project id required
--empty boolean Only delete events with zero elements
--before <iso> string Only delete events that ended before this ISO timestamp required
--dry-run boolean List candidates without deleting
--yes boolean Skip confirmation

# mic events schedule

Stagger element start_offset values on a draft event (start_mode=timecode). Helpful when you want elements to appear at even intervals without hand-writing offsets.

$ mic events schedule [options]

Options

FlagTypeDescription
--event <id> string Event id required
--space-seconds <n> string Seconds between each element start required default: "180"
--start-offset <n> string Offset (seconds) of the first element required default: "0"

# mic events start

Start an event (PATCH action)

$ mic events start <id>

Arguments

NameRequiredDescription
id required

# mic events stop

Stop an event (PATCH action)

$ mic events stop <id>

Arguments

NameRequiredDescription
id required

# mic events templates

List event templates (API: GET /api/v2/projects/{id}/event_templates)

$ mic events templates [options]

Options

FlagTypeDescription
--project <id> string Project id required

Elements

# mic elements apply

Batch create elements from YAML (resolves {{name}} cross-refs)

$ mic elements apply [options]

Options

FlagTypeDescription
--event <id> string Event id required
--file <file> string elements.yaml file required
--publish boolean Publish all on success

# mic elements clone-from

Copy elements from one event to another. Attributes are whitelisted to safe create-ready fields.

$ mic elements clone-from [options]

Options

FlagTypeDescription
--src-event <id> string Source event id required
--dst-event <id> string Destination event id required
--include <csv> string Comma-separated content_types to include required
--exclude <csv> string Comma-separated content_types to exclude required
--publish boolean Publish the cloned elements after creation

# mic elements clone-group

Copy a wrapper element plus its children between events, preserving wrapper↔child linkage via the registered link field (see `src/wrappers.ts`).

$ mic elements clone-group [options]

Options

FlagTypeDescription
--wrapper <id> string Source wrapper element id required
--to-event <id> string Destination event id required
--publish boolean Publish wrapper + children on success

# mic elements create

Create element (via --template or --file)

$ mic elements create [options]

Options

FlagTypeDescription
--event <id> string Event id required
--type <content-type> string Content type (for --template) required
--template boolean Use template registry
--var <k=v> string Template variable (repeatable) required
--file <file> string YAML/JSON element body required

# mic elements export

Export elements on an event as create-ready YAML (strips server-computed fields so the output can be fed to `elements apply`).

$ mic elements export [options]

Options

FlagTypeDescription
--event <id> string Event id required
--out <file> string Write YAML to file (default: stdout) required

# mic elements list

List elements on an event

$ mic elements list [options]

Options

FlagTypeDescription
--event <id> string Event id required

# mic elements publish

Publish element by id, or all drafts on --event (children before wrappers).

$ mic elements publish [id] [options]

Arguments

NameRequiredDescription
id optional

Options

FlagTypeDescription
--event <id> string Bulk mode: publish every draft on this event required
--dry-run boolean Print the publish order and exit

# mic elements schema

Show introspected field list for a content type

$ mic elements schema <project-id> <content-type>

Arguments

NameRequiredDescription
project-id required
content-type required

# mic elements template

Show a specific template

$ mic elements template <content-type>

Arguments

NameRequiredDescription
content-type required

# mic elements templates

List template registry (remote + cache)

$ mic elements templates [options]

Options

FlagTypeDescription
--type <content-type> string Filter by content type required

URL

# mic url consumer

Consumer URL from project.embed (+ event id, #/)

$ mic url consumer [options]

Options

FlagTypeDescription
--project <id> string Project id required
--event <id> string Event id (optional) required

# mic url feeds

Feed URLs for a project (graphics feed covers all events)

$ mic url feeds [options]

Options

FlagTypeDescription
--project <id> string Project id required

# mic url livestats

Livestats URL (fetches live_stats_uuid from event attributes)

$ mic url livestats [options]

Options

FlagTypeDescription
--event <id> string Event id required

# mic url studio

Studio UI URL for a project (and optional event). Emits the canonical /dashboard/{org}/spaces/{space}/projects/{project} form by fetching the project with ?include=space to resolve the parent ids.

$ mic url studio [options]

Options

FlagTypeDescription
--project <id> string Project id required
--event <id> string Event id (optional) required

Smoke

# mic smoke clean

Stop + delete all events tagged [mic-smoke-*] in a project

$ mic smoke clean [options]

Options

FlagTypeDescription
--project <id> string Project id required

# mic smoke run

Create an event, attempt one element of each enabled type, publish, emit URL

$ mic smoke run [options]

Options

FlagTypeDescription
--project <id> string Project id required
--types <list> string Comma-separated content types (default: all enabled) required
--no-publish boolean Skip starting the event + publishing elements
--duration <sec> string Event duration in seconds required default: "3600"

Manifest plan

# mic plan alpha

Compare a manifest YAML to the live project and print the add/update/noop plan. Does not mutate.

Alpha: this command is experimental and has not yet been tested in production. Interface may change.

$ mic plan [options]

Options

FlagTypeDescription
--file <file> string Manifest YAML (default: mic.yaml) required default: "mic.yaml"

Manifest apply

# mic apply alpha

Apply a manifest YAML: create missing events/elements and update changed ones. Wrapper->child linkage is preserved via the registry. Does not delete remote entities missing from the manifest (flagged in plan).

Alpha: this command is experimental and has not yet been tested in production. Interface may change.

$ mic apply [options]

Options

FlagTypeDescription
--file <file> string Manifest YAML (default: mic.yaml) required default: "mic.yaml"
--yes boolean Skip confirmation prompt
--dry-run boolean Alias for `mic plan --file ...`

Manifest export

# mic export alpha

Dump a live project to manifest YAML. Round-trips with `mic apply --file`.

Alpha: this command is experimental and has not yet been tested in production. Interface may change.

$ mic export [options]

Options

FlagTypeDescription
--project <id> string Project id required
--out <file> string Output file (default: stdout) required

annotations

# mic annotations delete

Remove a single annotation key (smart merge; other keys untouched)

$ mic annotations delete <kind> <id> <key>

Arguments

NameRequiredDescription
kind required
id required
key required

# mic annotations get

Read annotations on a resource (organisations, spaces, projects, event-templates, events, elements)

$ mic annotations get <kind> <id> [options]

Arguments

NameRequiredDescription
kind required
id required

Options

FlagTypeDescription
--key <name> string Print only this key (raw value, no JSON wrapping) required

# mic annotations set

Set one or more annotations (key=value, value=@file.md to load from disk)

$ mic annotations set <kind> <id> [pairs...]

Arguments

NameRequiredDescription
kind required
id required
pairs optional variadic

context

# mic context

Fetch x-monterosa-context from a resource and all its ancestors (element -> event -> project -> space -> org)

$ mic context <kind> <id> [options]

Arguments

NameRequiredDescription
kind required
id required

Options

FlagTypeDescription
--only-target boolean Only fetch context on the target, skip ancestor walk

assets

# mic assets delete

Delete an asset. Asks for confirmation unless --yes.

$ mic assets delete <asset-id> [options]

Arguments

NameRequiredDescription
asset-id required

Options

FlagTypeDescription
--yes boolean Skip confirmation

# mic assets list

List assets in a space (paginated, 100/page)

$ mic assets list [options]

Options

FlagTypeDescription
--space <id> string Space id required
--mime <type> string Filter by mime type (e.g. image/jpeg) required
--tag <id> string Filter by tag id required
--uploader <id> string Filter by uploader id required
--page <n> string Fetch only this page (default: all pages) required
--limit <n> string Stop after fetching N assets total required

# mic assets media-types

List mime types in use across a space (useful as --mime filter values)

$ mic assets media-types [options]

Options

FlagTypeDescription
--space <id> string Space id required

# mic assets tag

Attach one or more tag ids to an asset

$ mic assets tag <asset-id> <tag-ids...>

Arguments

NameRequiredDescription
asset-id required
tag-ids required variadic

# mic assets untag

Remove one or more tag ids from an asset

$ mic assets untag <asset-id> <tag-ids...>

Arguments

NameRequiredDescription
asset-id required
tag-ids required variadic

# mic assets update

Update an asset's name or alt text

$ mic assets update <asset-id> [options]

Arguments

NameRequiredDescription
asset-id required

Options

FlagTypeDescription
--name <str> string New display name required
--alt-text <str> string New alt text required

# mic assets upload

Upload one or more files to a space. Use --url to upload remote URLs instead.

$ mic assets upload <files...> [options]

Arguments

NameRequiredDescription
files required variadic

Options

FlagTypeDescription
--space <id> string Space id required
--url boolean Treat positional args as URLs to fetch server-side, not local paths
--tag <id> string Apply this tag id to each uploaded asset (repeatable) required

# mic assets uploaders

List users who have uploaded assets into a space

$ mic assets uploaders [options]

Options

FlagTypeDescription
--space <id> string Space id required

scope

# mic scope check

Dry-run: would a mutation on this target be allowed? (kind: org|space|project|event|element)

$ mic scope check <kind> <id> [options]

Arguments

NameRequiredDescription
kind required
id required

Options

FlagTypeDescription
--profile <name> string Use a non-active profile required

# mic scope show

Show the current allow-list for the active profile (or --profile)

$ mic scope show [options]

Options

FlagTypeDescription
--profile <name> string Inspect a non-active profile required

forms

# mic forms demo

Print the demo form id for the active profile's Studio instance, with caveats

$ mic forms demo