XShellX Docs

docs.theshellx.com / Motion manual

A rendering engine an agent can read the whole of.

Setup, the local Workbench, the permission ladder, package safety, and every Debug API command in one searchable index. Setup steps and commands are both records, so the search finds them the same way.

Motion v0.1.0 260 records 169 Debug API commands 155 discoverable actions

The command reference on this page is generated from the shipped contract files (schemas/debug.json, schemas/actions.json) by build-manual.py. Verify the installed version on the Workbench About page before comparing behaviour with these instructions.

The ShellX Motion Workbench Inspector with a package open, a preview frame rendered, the timeline and the inspector panel
Interface mapSelect a Workbench record in the tree to move the single highlight below.
Local boundary Motion runs on your machine. The server binds loopback only, remote publishing is not enabled, and the update check sends nothing but the release-feed request.

interface map

Click a Workbench control to see where it lives.

One live map switches between the five Engine Room pages. Screenshots are the real captures the repository's own workbench:ui-smoke gate produces.

Selected control

The package list

Every package the Workbench has loaded appears in the rail with its layer count and duration. Clicking a row reloads that package.

PageInspector
SectionThe Workbench
Record idmotion.workbench.inspector.packages

start

Start

What Motion is, how to build it, and how to invoke it.

motion.start.what

Link

What ShellX Motion is

A local-first motion-graphics and video rendering engine built to be driven by an AI agent. Every capability is a typed, discoverable command with a declared permission tier and a receipt. There is no cloud service, no account and no upload.

  1. Motion runs on your hardware; project files stay on the machine.
  2. The same typed contracts serve the CLI, the local Workbench, connected agents, ShellX Cut and Design Studio.
  3. A Motion project is a package: a folder holding motion.json, manifest.json, assets/, data/ and receipts/.

NoteHosted or SaaS execution is not part of the current product. The server binds loopback only.

motion.start.source_release

Link

It ships as a source release

You get the repository tree, build it, and run it from there. There is no npm install step and no prebuilt binary for 0.1.0.

  1. Clone or download the repository.
  2. Run pnpm install at the repository root.
  3. Run pnpm build.

Notepnpm install must run esbuild's postinstall script. The repository declares that in pnpm-workspace.yaml; an ERR_PNPM_IGNORED_BUILDS error means your pnpm is not reading the declaration.

motion.start.start_motion

Link

Start Motion (the normal entry point)

pnpm start creates one private per-user access key, starts Motion with local create/edit/render access, publishes the live loopback port for agent bridges, and opens an already-unlocked Workbench in your browser.

  1. Run pnpm start from the repository root.
  2. The Workbench opens already authenticated; the first tab receives the key through a one-use launch exchange.
  3. Open the Workbench Connections page to add Motion to an agent, or to copy the MCP command for another client.

NoteStart Motion grants write_local and does not enable remote publishing.

motion.start.invocation

Link

The two CLI invocation forms

Which form is correct depends only on where you are. In this source checkout every command takes the pnpm --filter @shellx-motion/cli run cli -- prefix. From an installed build of the packed @shellx-motion/cli package the same command is shellx-motion <command>.

  1. Source checkout: pnpm --filter @shellx-motion/cli run cli -- doctor
  2. Installed build: shellx-motion doctor
  3. Nothing puts shellx-motion on your PATH inside the workspace, and running packages/cli/dist/main.js directly fails as well.

NoteThere is no motion binary in either form. Dotted names such as motion.render.final are Debug API / MCP command ids, not shell commands.

motion.start.verify

Link

Verify the install

Two commands prove the toolchain is sound: doctor prints per-operation readiness, and validate on the bundled fixture should answer "ok": true.

  1. pnpm --filter @shellx-motion/cli run cli -- doctor
  2. pnpm --filter @shellx-motion/cli run cli -- validate fixtures/packages/lower-third
  3. A true answer from validate means the engine can read a package.

Notevalidate writes no receipt. It returns identity, layer count, hosts and lanes in the JSON envelope and creates no receipts/ directory.

motion.start.build_verify

Link

Verify the installed (packed) form

pnpm run build:verify is the only check that exercises what an npm consumer would actually receive. It packs every package, installs the CLI tarball into a throwaway project, and runs shellx-motion there through both the npm and pnpm bin shims.

  1. Run pnpm run build:verify from the repository root.
  2. It covers publishConfig exports, the bin shebang, the files allowlist and workspace:* version rewriting.

NoteThis cannot be exercised from inside the workspace, because the workspace exports deliberately point at TypeScript source.

motion.start.discover_first

Link

Discover before you mutate

Action discovery answers "what can I do about this?" with a callable plan, so an agent never has to guess a command or a mutation sequence.

  1. actions find "add a cinematic snow environment" returns a matching action id.
  2. actions guide motion.timeline.layer.rich.set returns the workflow for one action.
  3. actions plan "change snow intensity and preview it" returns each planned step with its arguments, required set and allowed values.

setup

Setup and requirements

Runtime versions, external tools, ports and authentication — read from the shipped manifests, not from memory.

motion.setup.node

Link

Node.js >=24.0.0

The engine declares engines.node = >=24.0.0 and CI runs Node 24. The README records the tested runtimes as 24.14 on Linux and 24.15 on Windows.

motion.setup.pnpm

Link

pnpm >=10.6.0

The engine declares engines.pnpm = >=10.6.0. Below 10.6 the workspace build-script declaration is not read, so esbuild's postinstall is skipped and the TypeScript runner has no platform binary.

Notepnpm 11.x is compatible.

motion.setup.package_manager

Link

The reproducible pnpm identity is [email protected]

packageManager names what the lockfile and every green gate were actually produced with, as opposed to what engines.pnpm merely permits. CI does not repeat the number — pnpm/action-setup reads this field.

Notepnpm-lock.yaml is lockfileVersion 9.0. Use pnpm install --frozen-lockfile to resolve the same tree.

motion.setup.ffmpeg

Link

FFmpeg — required for video render

FFmpeg encodes final media: MP4, WebM, GIF, stills and image sequences. It does not ship with Motion. The README records testing on 6.1.1 and 8.1.2.

  1. Motion resolves ffmpeg from PATH by default.
  2. Point at an explicit executable with the SHELLX_MOTION_FFMPEG environment variable.
  3. Validation, inspection and still previews work without it.

NoteMotion invokes FFmpeg with shell:false through argument arrays and validates input/output roots and preset extensions.

motion.setup.ffprobe

Link

FFprobe — required for quality-check

FFprobe reads encoded media back for quality checks and media evidence. Encoding works without it; quality-check does not.

  1. Motion resolves ffprobe from PATH by default.
  2. Point at an explicit executable with the SHELLX_MOTION_FFPROBE environment variable.

motion.setup.chromium

Link

Chrome or Chromium — the default frame lane

render rasterizes frames in a real browser by default (render --frame-lane browser), and preview --lane browser does the same. Any current Chrome or Chromium build works; npx playwright-core install chromium gets one.

  1. Motion resolves a browser from PATH by default.
  2. Pin an explicit binary with the SHELLX_MOTION_BROWSER environment variable.
  3. preview defaults to --lane native and needs no browser.

Noteplaywright-core ships no browser of its own. An explicit SHELLX_MOTION_BROWSER pin that names a missing path fails closed rather than silently falling back.

motion.setup.native_lane

Link

Rendering without a browser: the native frame lane

render --frame-lane native encodes from natively drawn frames instead of browser frames. The lane is narrow on purpose: it has no font rasterizer, so it refuses to deliver any package whose text is lowercase or names a font family.

NoteSuited to text-free packages, not a general substitute for the browser lane.

motion.setup.doctor

Link

doctor reports what this machine can actually do

One call answers it: motion.platform.requirements, or doctor on the CLI. It reports per-tool readiness and distinguishes "cannot do this at all" from "cannot do it the default way, and here is the flag".

  1. Read satisfied as "runs the way you are about to invoke it".
  2. Read possible as "runs at all".
  3. When the two differ, alternative names the flag that would work.

NoteThe Workbench About page, the render dialog, the CLI and any MCP client all read the same answer — this is the readiness-parity invariant.

motion.setup.server_auth

Link

Ports, loopback and the access key

The debug, SDK and MCP server binds 127.0.0.1 only; direct non-loopback binding is disabled. Everything except GET /health and the static Workbench shell requires a capability token.

  1. HTTP callers send Authorization: Bearer <token>; WebSocket callers use the authenticated subprotocol.
  2. Start Motion creates one private per-user key, reuses it across restarts, and stores it outside project directories with user-only permissions.
  3. An advanced direct launch stores an ephemeral key file instead, or reads SHELLX_MOTION_DEBUG_TOKEN.
  4. The startup manifest prints url, workbenchUrl, the granted tier, the transports and auth.tokenFile.

NoteNever place the key in project files, shell history, logs or URLs. The server also rejects forged Host and unapproved Origin values and bounds request and WebSocket size and concurrency.

motion.setup.transports

Link

Transports an agent can use

The same command contracts are reachable over four transports plus the CLI.

  1. POST /debug — native {command, args, requestedTier?} dispatch.
  2. POST /rpc — JSON-RPC discovery and MCP tool dispatch.
  3. WS /ws — authenticated persistent JSON-RPC.
  4. POST /sdk — typed local SDK operation dispatch for trusted hosts.
  5. GET /debug/contracts — the authenticated command/domain/tier/mutation registry.

NoteMCP supports two protocol eras: modern 2026-07-28 clients call server/discover without initialize; legacy 2025-06-18 clients keep initialize/list/call. Both enforce the same server grant.

motion.setup.pickers

Link

Native file pickers per platform

The Workbench Browse buttons open the operating system's own chooser through the server, because a browser page cannot hand a real filesystem path to a local engine.

  1. Windows and macOS use the operating-system picker (macOS through osascript).
  2. Linux uses zenity, and falls back to kdialog.
  3. If neither is installed, Motion reports that no supported Linux file chooser is available.

NoteNative pickers need a desktop session. A headless server has no picker.

motion.setup.memory

Link

The per-job memory ceiling

A browser render reuses one Chromium session for the whole sequence, so peak resident memory grows with frame count, and effects.motionBlur.samples multiplies it. The governor aborts a job at a 6 GiB default ceiling with job_rss_limit_exceeded.

  1. Measured: 450 frames at 1080p30 with two environment layers and 3-sample blur peaked at 5.07 GiB of 6.
  2. The ceiling is configurable through SHELLX_MOTION_MAX_JOB_RSS_BYTES.
  3. Budget the piece before authoring it.

NoteThrough the CLI this is a non-zero exit and a stack trace, not a JSON error envelope.

motion.setup.updates

Link

The update channel

The standalone CLI checks the configured GitHub release channel at startup and every 30 minutes. The About page reads that cached result, Check now refreshes it, and MCP/JSON-RPC discovery reports the same checkedAt, latestVersion and updateAvailable fields to agents.

  1. The check sends only the release-feed request: no project content, prompts, receipts, usage data or telemetry.
  2. A host can disable or override the channel; a disabled channel returns an explicit "not configured" state.
  3. A network or parse failure returns an honest error, never a fabricated "up to date".

NoteApplying an update reports the truthful install state. A source checkout is updated through git; there is no signed in-place binary channel yet, so the server will not download and run unverified release bytes.

motion.setup.platform_verification

Link

Claiming a platform requires running the ladder on it

Motion publishes a reusable platform-verification ladder. A source build, or a result from another host, is not substitute evidence for a platform claim.

  1. Run the required command list on every operating system and architecture the release will claim.
  2. The runner records host identity, command plan, outcomes and artifact paths in one receipt.
  3. pnpm run platform:verify drives it.

permissions

Permission tiers

Six tiers. The launch grant is a ceiling a caller can drop below and never rise above.

motion.tier.ladder

Link

The six permission tiers, in order

read_motion < draft_motion < render_motion < edit_motion < write_local < push_remote. The tier the server is launched with is a ceiling: a request may ask for a lower or equal tier, never a higher one, and package data or prompts cannot elevate themselves.

NoteThe per-command tier is contract data, not prose. schemas/debug.json carries the permission of every command.

motion.tier.write_local_outranks_edit

Link

write_local ranks ABOVE edit_motion

The intuitive reading is the wrong one and it costs a session. edit_motion mutates a package that already exists. write_local creates files outside an existing package — so making a NEW package needs write_local.

  1. motion.package.create needs write_local, together with every importer, exporter, connector and archive command.
  2. Starting the server at --tier edit_motion and then calling motion.package.create is refused, correctly.
  3. Start at --tier write_local if the agent has to create packages.

motion.tier.trusted_local

Link

Anything above read_motion needs --trusted-local-tier

read_motion is the default for a direct server launch. Raising the grant is deliberate: the launch must also pass --trusted-local-tier, so a higher grant is never something a caller can drift into.

  1. pnpm --filter @shellx-motion/debug-server run serve -- --tier render_motion --trusted-local-tier
  2. The startup manifest prints the tier it actually granted.
  3. pnpm start is the normal human path and grants write_local with this flag already applied.

motion.tier.push_remote_reserved

Link

push_remote is reserved and never automatic

It is the top tier and it exists so a future hosted or repository-handoff surface can refuse it explicitly without inventing a new gate. The server requires a separate --allow-push-remote opt-in on top of a push_remote grant.

  1. Motion never infers permission for remote publish or hosted rendering.
  2. Today a request that would push remote is refused by design.
  3. No shipped command declares push_remote: all 169 carry a lower tier.

NoteMotion keeps all execution local.

motion.tier.read_motion

Link

Tier 1 of 6: read_motion

Read-only. The default grant for a direct server launch, and the only tier that needs no --trusted-local-tier. 54 of the 169 shipped Debug API commands declare read_motion as their required tier.

  1. Example commands: motion.state, motion.open, motion.select, motion.highlight.

motion.tier.draft_motion

Link

Tier 2 of 6: draft_motion

Draft-level agent work: queueing, cancelling and retrying prompt jobs. 6 of the 169 shipped Debug API commands declare draft_motion as their required tier.

  1. Example commands: motion.prompt.cancel, motion.prompt.retry, motion.prompt.run, motion.timeline.playhead.set.

motion.tier.render_motion

Link

Tier 3 of 6: render_motion

Producing evidence: preview frames, final media, quality checks and batch renders. 11 of the 169 shipped Debug API commands declare render_motion as their required tier.

  1. Example commands: motion.preview.frame, motion.preview.playhead, motion.preview.strip, motion.render.final.

motion.tier.edit_motion

Link

Tier 4 of 6: edit_motion

Mutating a package that already exists — layers, keyframes, curves, tracks, captions. 75 of the 169 shipped Debug API commands declare edit_motion as their required tier.

  1. Example commands: motion.analysis.tracking.apply, motion.analysis.tracking.detach, motion.keying.apply, motion.keying.remove.

motion.tier.write_local

Link

Tier 5 of 6: write_local

Creating files outside an existing package: motion.package.create, every importer, exporter, connector and archive command. 23 of the 169 shipped Debug API commands declare write_local as their required tier.

  1. Example commands: motion.package.create, motion.agent.revision.plan, motion.script.compile, motion.analysis.tracking.request.

motion.tier.push_remote

Link

Tier 6 of 6: push_remote

Reserved. Requires a separate --allow-push-remote opt-in and is never inferred. 0 of the 169 shipped Debug API commands declare push_remote as their required tier.

engine room

The Workbench

Motion's local browser UI, over the same Debug API contracts the agents use. Select a record to move the map.

motion.workbench.pages

Link

Engine Room: five pages, one engine

Motion is not headless. Its debug server serves a local browser UI over the same Debug API contracts the agents use — Inspector, History, Connections, Docs and About — reached from one persistent navigation strip.

  1. /workbench — Inspector: open a package, scrub it, preview a frame, render final media.
  2. /workbench/history — receipts history.
  3. /workbench/connections — add Motion to an agent, or copy the local addresses and key.
  4. /workbench/docs — the shipped documentation set, read in place.
  5. /workbench/about — engine identity, external-tool readiness and update status.

NoteThe Workbench does not maintain a second project model. There is no template gallery page: the 12 template families are reference material for agents and hosts through the CLI, SDK and MCP.

motion.workbench.connect

Link

Connect and the local access key

Start Motion authenticates the first tab automatically. Any other tab, or a manual Debug API session, connects by pasting the same local access key into the Connect dialog.

  1. Click Connect to open the dialog.
  2. Paste the local access key (minimum 32 characters).
  3. The key is kept in that browser tab's sessionStorage and nowhere else.

NoteThe same private key protects the Workbench, MCP and the Debug API. A rejected key reports an error in the dialog rather than failing silently.

motion.workbench.session_state

Link

Session state and granted tier

The header shows the live connection state, and every page except Inspector also shows a tier chip naming the access the server granted this session.

NoteThe tier shown is the server's ceiling, not a request. It cannot be raised from the page.

motion.workbench.identity

Link

Document identity

The header names the open package and its canvas and frame rate, so a render is never started against a package you thought you had closed.

motion.workbench.inspector.package_field

Link

Choosing a package with Browse

The Motion package field takes a real filesystem path. Browse opens the operating system's native folder chooser through the server rather than a browser upload dialog.

  1. Click Browse and pick the package root folder.
  2. Motion loads the package, lists it, and renders a first preview frame.
  3. Refresh package state re-reads it from disk.

NoteBrowse needs a desktop session. On Linux it needs zenity or kdialog.

motion.workbench.inspector.packages

Link

The package list

Every package the Workbench has loaded appears in the rail with its layer count and duration. Clicking a row reloads that package.

motion.workbench.inspector.preview

Link

The preview stage

Preview frames render on this machine and are served back through the authenticated artifact route. The stage switches between a black and a neutral background so alpha and light work can be judged honestly.

  1. Use Black or Neutral to change the stage background.
  2. Refresh frame re-renders the current playhead position.
  3. The frame size is shown next to the background switch.

NoteThe default preview lane is native. A browser-lane preview needs Chromium.

motion.workbench.inspector.transport

Link

Transport and playhead

Play, the timecode readout and the scrubber move the playhead. Moving it re-renders the preview at the new timestamp.

  1. Play or pause with the transport button.
  2. Drag the scrubber to a timestamp; the preview refreshes when it settles.
  3. The right-hand timecode is the package duration.

motion.workbench.inspector.timeline

Link

The timeline

Layer timing is drawn as rows with a ruler and a playhead. Clicking a layer label or clip selects that layer and fills the Inspector panel.

  1. Click a label or a clip to select the layer.
  2. Zoom in and out with the timeline zoom control.
  3. The toolbar summarises layer count and duration.

motion.workbench.inspector.panel

Link

Inspector, Queue and Receipts tabs

The right rail carries three panels: Inspector for the current selection, Queue for receipt-backed render jobs, and Receipts for the receipts under a chosen location.

  1. Inspector shows the selection's package id, motion id, canvas, duration, frame rate, layer, scene and safe-area counts.
  2. Queue lists receipt-backed render jobs and refreshes on demand.
  3. Receipts takes a receipt location through Browse and summarises what it found.

NoteQueue is derived from receipt files on disk. It does not see work in flight — use motion.job.get for that.

motion.workbench.inspector.diagnostics

Link

Diagnostics

The Inspector panel ends with diagnostics from the last operation — for example a note that the browser renderer used a font fallback for a text layer.

NoteA diagnostic is evidence, not decoration. A font fallback changes the delivered pixels.

motion.workbench.inspector.render

Link

The render dialog

Render… opens a dialog that collects the output path, the export preset, an optional quality manifest and the motion gate, then reports readiness BEFORE submitting rather than an FFmpeg error afterwards.

  1. Choose the output destination with Browse; the extension follows the preset.
  2. Pick a preset: MP4 H.264, WebM VP9, animated GIF or a PNG still frame.
  3. Optionally attach a quality manifest and require frame-to-frame motion.
  4. Start render. Closing the progress view does not cancel it — the render continues in the background under the shown job id.

NoteThe readiness line is filled from motion.platform.requirements — the same answer doctor gives.

motion.workbench.inspector.status

Link

The status bar

The status bar is the honest running commentary: what the engine last did, and the standing reminder that project content stays on this machine.

motion.workbench.history.purpose

Link

Receipts history

Every Motion operation writes a durable receipt whose inputs and outputs are recorded as SHA-256 hashes. History is the regression trail: what ran, when, who or what triggered it, whether the quality gates passed, and where the output artifacts landed on disk.

NoteReceipts are not cryptographically signed — the hashes prove an artifact still matches what the operation recorded, not who wrote the file.

motion.workbench.history.location

Link

Choosing a receipt location

History reads a receipt root from disk. Browse picks it with the native chooser; Load receipts reads it.

  1. Browse to the receipts root (the default is .scratch/receipts).
  2. Click Load receipts.
  3. The status bar reports how many receipts were loaded.

NoteHistory is read-only.

motion.workbench.history.filters

Link

Filtering the receipt timeline

Filter by package, by operation, and by result — passed, warning, failed or not run — with a live shown-of-total count.

motion.workbench.history.card

Link

Reading a receipt card

A card names the operation, the package, the actor that triggered it, the renderer and encoder actually used, and the output artifact with its dimensions and duration.

  1. Check the actor badge: it distinguishes a human, a local integration and an agent.
  2. Check the renderer and encoder chips against what you asked for — a software fallback is recorded, not hidden.
  3. Open the containing folder from the output row.
  4. Details opens the full receipt, with a raw JSON toggle.

NotePassed with warnings is not a pass. Inspect the named gate before treating the artifact as approved.

motion.workbench.connections.agents

Link

Adding Motion to an agent

Choose the agent you use and click Configure; Motion adds itself. The setup command stays visible so you can review or copy it instead.

  1. Codex, Claude Code and Grok have one-click Configure buttons.
  2. Any other MCP client copies the local stdio command.
  3. Open a new agent session after configuring.

NoteMotion must be running while the agent uses its tools. Agent setup uses Motion's local bridge, so the key is not written into agent configuration.

motion.workbench.connections.details

Link

MCP and Debug API addresses

The connection details panel shows the live loopback MCP address, the Debug API address, and the single local access key, each with a copy button.

  1. Copy the MCP address for a client that speaks JSON-RPC over HTTP.
  2. Copy the Debug API address for direct POST /debug calls.
  3. Reveal shows the access key; Copy puts it on the clipboard.

NoteThe same private key protects the Workbench, MCP and the Debug API. Treat it like any other local secret — theft by another local process would grant that process Motion's filesystem and render authority.

motion.workbench.docs.reader

Link

The Docs page

Motion serves its own shipped documentation set from the running engine, so the pages you read always match the build you are running.

  1. Start here: Quickstart and Connect an agent.
  2. Using ShellX Motion: Agent integration, Rendering lanes, Cut and Design Studio, Host integration.
  3. Trust and security: Receipts and trust, Security model, Binary asset provenance.

motion.workbench.about.identity

Link

Engine identity

About states which Motion this is: the running version, the access the session was granted, that processing happens on this machine, and that results are receipt-backed.

motion.workbench.about.tools

Link

External tool readiness

Identity alone answers "which Motion is this", never "can it encode". The readiness block reads motion.platform.requirements and reports FFmpeg, FFprobe and Chromium, so a missing tool is visible before a render fails instead of after.

NoteThe block always renders. An absent block would read as a healthy machine.

motion.workbench.about.update

Link

Software update

About reads the shared cached update status — the same result startup checks, periodic checks and connected agents see. Check now refreshes it immediately.

  1. The badge states whether an update is available.
  2. View release notes opens the release page.
  3. Update options reports the truthful install state for this installation.

NoteMotion checks the official release channel at startup and every 30 minutes. No project content or telemetry is sent.

package safety

Package safety and the security model

What a package can and cannot do to the machine that renders it.

motion.safety.declarative_layers

Link

Most of a package is data and cannot run

Shapes, text, keyframes, environments, particles and fixed 3D scenes declare what to draw. They cannot execute arbitrary source code, fetch remote assets implicitly, or raise host resource limits.

  1. Shaders are a validated GLSL-ES subset with no loops, branches, helper functions, samplers or network access.
  2. 3D scenes are Motion-owned primitives with bounded counts.
  3. Environments run fixed, package-code-free host shaders.

NoteA construct the contract does not allow is refused. That is never a reason to hand-inject code or URLs into package JSON.

motion.safety.web_layers_execute

Link

web, html and canvas layers DO execute JavaScript

This is the one deliberate exception, and it is the part worth knowing before you render something a stranger gave you. A web, html or canvas layer names an HTML file inside the package, and Motion loads it into Chromium WITH JAVASCRIPT ENABLED. Rendering such a package runs that script.

  1. The execution is fenced: network denied by default, service workers blocked, secondary pages refused, file reads confined to the package root.
  2. The fence bounds what the code can reach, not whether it runs.
  3. Treat a package from a source you do not trust as a script from that source.

NoteEarlier Motion documentation said a package "cannot execute arbitrary code" without this qualification. That was wrong for this layer family and is corrected here.

motion.safety.html_import

Link

The importer strips scripts; the render path does not

Foreign HTML brought in through motion.html.snippet.import is stripped of <script> and reported as lossy, so the import path is the safe one for markup you did not write.

  1. The bounded importer reads declared layer metadata and a small inline CSS subset without executing scripts, handlers or stylesheets.
  2. Image and video src values must be supported package-relative paths beside the source HTML.
  3. Imported assets are copied into the new package, hashed in the receipt, bounded by per-file and total limits, and checked against traversal, symlink escape and executable or external SVG syntax.

NoteAgent-authored scripts inside a package are allowed. External script import is not enabled in 0.1.0.

motion.safety.parsers

Link

Two native parsers consume untrusted bytes

Chromium and FFmpeg run with your OS privileges and parse whatever a package contains. Motion bounds them rather than pretending they are inert.

  1. Chromium runs in a bounded render session with service workers, WebSockets, WebRTC, external files and undeclared origins blocked; package-local file URLs and data/blob URLs are allowed.
  2. FFmpeg and FFprobe are invoked with shell:false through argument arrays, with validated input/output roots and preset extensions and bounded diagnostic output.
  3. Render and agent subprocesses are contained in process groups (Unix) or Job Objects (Windows), so a deadline or cancellation terminates the whole tree.

NoteWhere Motion cannot prove kernel-level sandbox enforcement, its receipts say so (status: requested) rather than claiming a guarantee it has not verified.

motion.safety.network

Link

Network access is denied by default

Motion does not reach the network as a side effect of rendering. A package's allowedOrigins entries are requests, not authority — the host must separately approve an exact origin.

  1. When network access is deliberately used, every hostname is resolved first and private or reserved addresses are rejected.
  2. One public address is pinned into the connection, redirects are revalidated and HTTPS downgrade is refused.
  3. Response bytes, content types, time and concurrency are bounded.

motion.safety.receipts

Link

Every operation writes a receipt

A receipt records the package identity, input and output hashes, renderer, encoder, dimensions, duration, quality checks, warnings and actor evidence. When an agent claims it rendered something, the receipt is how you check.

  1. Match the package: confirm the package id and inputs are the ones you intended.
  2. Read the result: a warning is not a pass — inspect the named gate and fallback.
  3. Match the output: confirm the file path and SHA-256 hash before delivery.

NoteReceipts are not cryptographically signed. The hashes prove an artifact still matches what the operation recorded, not who wrote the file.

motion.safety.threat_report

Link

Reporting something this model says cannot happen

If you find behaviour the security model says is impossible, that is a vulnerability report. SECURITY.md at the repository root states how to send it privately, what is in scope, and what to expect back.

NoteSame-user malware with arbitrary file read or process inspection is treated as an OS-account compromise, which is outside what Motion can defend.

agent reference

Agent command reference

All 169 Debug API commands, generated from schemas/debug.json and schemas/actions.json.

motion.reference.contract

Link

The contract, counted

Motion 0.1.0 ships 169 typed Debug API commands across 7 domains. 155 of them are also discoverable actions in schemas/actions.json, each with natural-language aliases; the remaining 14 are callable but carry no action entry. 115 commands are classified as mutations.

  1. GET /debug/contracts returns the same registry at runtime.
  2. motion.actions.find, .guide and .plan return the callable plan for a described intent.
  3. If prose and a schema differ, the schema wins — repair the drift before mutating.

NoteA command that renders or writes a derived artifact is classified as a mutation even when the source package itself is unchanged.

timeline domain

timeline commands

Layers, keyframes, curves, ranges, tracks, captions, transitions and spatial paths. 70 commands.

motion.command.motion.timeline.panel

Link

motion.timeline.panel

Tier read_motion. Read-only. Discoverable as an action on the timeline, prompt surfaces.

  • tier read_motion
  • domain timeline
  • mutates no
  • arguments 1

Discovery phrases: show timeline panel, timeline panel, open timeline panel, show scene layer timeline, show scene and layer timeline, show timeline layers

Arguments (1)
NameTypeRequiredDescription
packageRootstringyesMotion package root directory to read.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline panel returns playhead controls, scene and layer rows, markers, tracks, and suggested actions.

motion.command.motion.timeline.inspect

Link

motion.timeline.inspect

Tier read_motion. Read-only. Discoverable as an action on the timeline, prompt surfaces.

  • tier read_motion
  • domain timeline
  • mutates no
  • arguments 1

Discovery phrases: inspect scenes tracks and timeline markers, inspect timeline, show timeline tracks, show timeline markers, list scenes and tracks, timeline metadata

Arguments (1)
NameTypeRequiredDescription
packageRootstringyesMotion package root directory to read.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline inspect result includes scenes, tracks, markers, and layer track refs.

motion.command.motion.timeline.playhead.set

Link

motion.timeline.playhead.set

Tier draft_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier draft_motion
  • domain timeline
  • mutates yes
  • arguments 4

Discovery phrases: set timeline playhead to 2 seconds, set timeline playhead, move timeline playhead, scrub timeline playhead, jump playhead, set playhead, move playhead, scrub to timestamp

Arguments (4)
NameTypeRequiredDescription
packageRootstringyesMotion package root directory to read.
atMsnumbernoNew playhead time in milliseconds. Required unless playheadMs is given; must be within the motion duration.
playheadMsnumbernoAlternate name for atMs.
receiptsRootstringnoOptional trusted host receipt mirror for the control-state receipt.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline playhead receipt includes old/new playhead, state path, duration guard, and host receipt evidence.

motion.command.motion.timeline.range.select

Link

motion.timeline.range.select

Tier draft_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier draft_motion
  • domain timeline
  • mutates yes
  • arguments 4

Discovery phrases: select timeline range, set timeline range selection, select range on timeline, mark timeline range, set in and out points, select in out range, choose timeline segment

Arguments (4)
NameTypeRequiredDescription
endMsnumberyesSelection end in milliseconds; must be at or after startMs and within the motion duration.
packageRootstringyesMotion package root directory to read.
startMsnumberyesSelection start in milliseconds.
receiptsRootstringnoOptional trusted host receipt mirror for the control-state receipt.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline range receipt includes selected start/end, previous range, state path, and duration guard.

motion.command.motion.timeline.viewport.set

Link

motion.timeline.viewport.set

Tier draft_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier draft_motion
  • domain timeline
  • mutates yes
  • arguments 6

Discovery phrases: zoom timeline viewport, set timeline viewport, change timeline zoom, zoom timeline, pan timeline viewport, fit timeline range, set timeline pixels per second

Arguments (6)
NameTypeRequiredDescription
endMsnumberyesVisible window end in milliseconds; must be greater than startMs and within the motion duration.
packageRootstringyesMotion package root directory to read.
startMsnumberyesVisible window start in milliseconds.
pixelsPerSecondnumbernoOptional horizontal scale; must be positive.
receiptsRootstringnoOptional trusted host receipt mirror for the control-state receipt.
zoomnumbernoOptional zoom factor; must be positive.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline viewport receipt includes start/end, zoom, pixels-per-second, previous viewport, and state path.

motion.command.motion.timeline.duration.policy

Link

motion.timeline.duration.policy

Tier read_motion. Read-only. Discoverable as an action on the timeline, prompt surfaces.

  • tier read_motion
  • domain timeline
  • mutates no
  • arguments 1

Discovery phrases: show protected intro outro regions, show duration policy, inspect duration policy, read duration policy, show protected regions, list protected timeline regions, show intro outro locks, inspect protected duration regions

Arguments (1)
NameTypeRequiredDescription
packageRootstringyesMotion package root directory to read.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Duration policy read returns min/max duration, resize mode, protected regions, and package duration.

motion.command.motion.timeline.duration.policy.set

Link

motion.timeline.duration.policy.set

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 5

Discovery phrases: set protected intro outro duration policy, set duration policy, edit duration policy, set protected regions, protect intro outro regions, protect intro and outro, lock intro and outro duration, set timeline protected duration regions, set intro outro locks

Arguments (5)
NameTypeRequiredDescription
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
policyobjectyesDuration policy { minDurationMs?, maxDurationMs?, resizeMode?, protectedRegions? }. resizeMode is one of the durationResizeMode values; protectedRegions is an array of { id, startMs, durationMs } with unique ids.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Duration policy receipt includes protected regions, min/max duration, resize mode, changed path, and validation result.

motion.command.motion.timeline.scene.create

Link

motion.timeline.scene.create

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 15

Discovery phrases: add storyboard scene, add timeline scene, add scene, create timeline scene, create scene, insert storyboard scene, insert timeline scene, new storyboard section, new scene, add outro scene

Arguments (15)
NameTypeRequiredDescription
durationMsnumberyesScene duration in milliseconds; must be positive.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
sceneIdstringyesTarget scene id.
startMsnumberyesScene start in milliseconds.
createdBystringnoOptional attribution recorded in the emitted receipt.
indexnumbernoInsertion index in the scene list; appended when omitted.
layerIdstringnoSingle layer id to attach, in place of layerIds.
layerIdsarraynoLayer ids to attach, as a string array.
markerIdstringnoSingle marker id to attach, in place of markerIds.
markerIdsarraynoMarker ids to attach, as a string array.
namestringnoOptional display name for the scene.

3 further optional arguments: receiptsRoot, trackId, trackIds. The complete contract, including descriptions and allowed values, is schemas/debug.json.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline scene create receipt includes scene id, timing, optional layer/track/marker refs, changed paths, scene counts, duration evidence, and validation result.

motion.command.motion.timeline.scene.delete

Link

motion.timeline.scene.delete

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 5

Discovery phrases: delete storyboard scene, delete timeline scene, delete scene, remove storyboard scene, remove timeline scene, remove scene, drop storyboard scene, drop timeline scene, clear storyboard section, remove outro scene

Arguments (5)
NameTypeRequiredDescription
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
sceneIdstringyesTarget scene id.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline scene delete receipt includes scene id, removed scene, changed paths, scene counts, non-destructive duration evidence, and validation result.

motion.command.motion.timeline.scene.reorder

Link

motion.timeline.scene.reorder

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 6

Discovery phrases: reorder storyboard scene, reorder timeline scene, reorder scene, move storyboard scene, move timeline scene, move scene row, move scene in storyboard, move outro scene before intro, send scene to top, move scene order

Arguments (6)
NameTypeRequiredDescription
indexnumberyesNew position in the scene list.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
sceneIdstringyesTarget scene id.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline scene reorder receipt includes scene id, old/new index, old/new scene order, changed paths, non-destructive duration evidence, and validation result.

motion.command.motion.timeline.scene.resize

Link

motion.timeline.scene.resize

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 7

Discovery phrases: resize intro scene duration with ripple, resize scene duration, set scene duration, change scene duration, extend scene with ripple, shorten scene with ripple, ripple scene duration, retime scene

Arguments (7)
NameTypeRequiredDescription
durationMsnumberyesNew scene duration in milliseconds; must be positive.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
sceneIdstringyesTarget scene id.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.
ripplebooleannoShift later scenes by the same delta instead of leaving a gap or overlap.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline scene resize receipt includes scene id, old/new duration, ripple flag, shifted scenes/layers/markers, changed paths, and validation result.

motion.command.motion.timeline.scene.name.set

Link

motion.timeline.scene.name.set

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 6

Discovery phrases: rename selected scene, rename scene, rename timeline scene, set scene name, set selected scene name, change scene name, change selected scene name, edit scene name, label selected scene, set scene display name

Arguments (6)
NameTypeRequiredDescription
namestringyesNew scene name; must not be blank.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
sceneIdstringyesTarget scene id.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline scene name receipt includes scene id, old/new display name, changed paths, action, and validation result.

motion.command.motion.timeline.marker.upsert

Link

motion.timeline.marker.upsert

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 11

Discovery phrases: add timeline marker at playhead, add timeline marker, set timeline marker, update timeline marker, change timeline marker, edit timeline marker, move timeline marker, modify timeline marker, add marker, set marker, update marker, change marker, edit marker, move marker, modify marker, update marker label, edit marker label, add beat marker, add cue marker, attach marker to scene

Arguments (11)
NameTypeRequiredDescription
atMsnumberyesMarker time in milliseconds.
idstringyesMarker id; an existing marker with this id is replaced.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
colorstringnoOptional marker color.
createdBystringnoOptional attribution recorded in the emitted receipt.
durationMsnumbernoOptional marker span in milliseconds; a point marker when omitted.
labelstringnoOptional marker label.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.
sceneIdstringnoOptional scene to attach the marker to.
typestringnoOptional marker classification such as chapter or note.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline marker receipt includes marker id, timestamp, changed paths, scene ref updates, and validation result.

motion.command.motion.timeline.marker.delete

Link

motion.timeline.marker.delete

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 5

Discovery phrases: delete timeline marker at playhead, delete timeline marker, remove timeline marker, delete marker, remove marker, clear marker, delete beat marker, delete cue marker

Arguments (5)
NameTypeRequiredDescription
idstringyesMarker id to remove.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline marker delete receipt includes marker id, removed marker, changed paths, removed scene refs, and validation result.

motion.command.motion.timeline.keyframe.upsert

Link

motion.timeline.keyframe.upsert

Tier edit_motion. Mutates. Discoverable as an action on the timeline, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 9

Discovery phrases: add opacity keyframe with ease out, add timeline keyframe, set keyframe, update keyframe, change easing, add transform keyframe, keyframe opacity, keyframe position, animate title color keyframes, animate text color, keyframe fill color, keyframe style color, animate blur effect, keyframe visual effect, animate brightness, keyframe playback rate, animate mask crop keyframes, animate image crop keyframes, animate video crop keyframes, keyframe image crop, keyframe video crop, keyframe source crop, keyframe mask inset, animate crop reveal, keyframe clip mask, add spring keyframe, keyframe with spring easing, animate with spring physics

Arguments (9)
NameTypeRequiredDescription
atMsnumberyesKeyframe time in milliseconds. An existing keyframe at this time is replaced.
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
targetstring · keyframeTargetyesAnimated property path the keyframes belong to.
value['number', 'string']yesKeyframe value: a finite NUMBER for numeric targets (transform.*, opacity), or a CSS colour string for colour targets (fill, stroke). Numeric targets reject a numeric string such as "0".
createdBystringnoOptional attribution recorded in the emitted receipt.
easingstring · easingnoEasing applied to the keyframe. Also accepts cubic-bezier(...)/steps(...) strings and a spring object.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline keyframe receipt includes layer id, target, timestamp, easing, changed path, target-specific value validation, and validation result.
  2. Preview receipt includes output frame hash after the timeline edit.

Named value sets used here: easing, keyframeTarget. Every allowed-value list is enforced on the wire, not merely advertised.

motion.command.motion.timeline.keyframe.delete

Link

motion.timeline.keyframe.delete

Tier edit_motion. Mutates. Discoverable as an action on the timeline, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 7

Discovery phrases: delete opacity keyframe at playhead, delete timeline keyframe, remove keyframe, remove opacity keyframe, delete transform keyframe, clear keyframe

Arguments (7)
NameTypeRequiredDescription
atMsnumberyesTime of the keyframe to remove, in milliseconds.
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
targetstring · keyframeTargetyesAnimated property path the keyframes belong to.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline keyframe delete receipt includes layer id, target, timestamp, removed value, changed path, and validation result.
  2. Preview receipt includes output frame hash after the timeline edit.

Named value sets used here: keyframeTarget. Every allowed-value list is enforced on the wire, not merely advertised.

motion.command.motion.timeline.keyframe.range.delete

Link

motion.timeline.keyframe.range.delete

Tier edit_motion. Mutates. Discoverable as an action on the timeline, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 8

Discovery phrases: delete selected keyframes, remove selected keyframes, delete keyframe range, remove keyframe range, clear selected keyframes, clear keyframe range, delete opacity keyframes

Arguments (8)
NameTypeRequiredDescription
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
targetstring · keyframeTargetyesAnimated property path the keyframes belong to.
createdBystringnoOptional attribution recorded in the emitted receipt.
endMsnumbernoWindow end in milliseconds; unbounded when omitted.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.
startMsnumbernoWindow start in milliseconds; unbounded when omitted.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline keyframe range delete receipt includes layer id, target, affected timestamp range, removed keyframes, changed paths, remaining count, and validation result.
  2. Preview receipt includes output frame hash after the timeline edit.

Named value sets used here: keyframeTarget. Every allowed-value list is enforced on the wire, not merely advertised.

motion.command.motion.timeline.keyframe.move

Link

motion.timeline.keyframe.move

Tier edit_motion. Mutates. Discoverable as an action on the timeline, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 8

Discovery phrases: move opacity keyframe, move timeline keyframe, move keyframe, retime keyframe, shift keyframe, nudge keyframe, change keyframe time, move transform keyframe

Arguments (8)
NameTypeRequiredDescription
fromMsnumberyesCurrent time of the keyframe, in milliseconds.
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
targetstring · keyframeTargetyesAnimated property path the keyframes belong to.
toMsnumberyesNew time for the keyframe, in milliseconds.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline keyframe move receipt includes layer id, target, old/new timestamps, moved keyframe value/easing, changed paths, and validation result.
  2. Preview receipt includes output frame hash after the timeline edit.

Named value sets used here: keyframeTarget. Every allowed-value list is enforced on the wire, not merely advertised.

motion.command.motion.timeline.keyframe.easing.apply

Link

motion.timeline.keyframe.easing.apply

Tier edit_motion. Mutates. Discoverable as an action on the timeline, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 10

Discovery phrases: apply ease in out to selected keyframes, apply easing to selected keyframes, apply easing preset to keyframes, set selected keyframe easing, change selected keyframe easing, set keyframe easing range, apply cubic bezier to keyframes, apply spring easing to keyframes, make selected keyframes bouncy

Arguments (10)
NameTypeRequiredDescription
easingstring · easingyesEasing applied to the keyframe. Also accepts cubic-bezier(...)/steps(...) strings and a spring object.
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
targetstring · keyframeTargetyesAnimated property path the keyframes belong to.
atMsnumbernoApply to the single keyframe at this time; use startMs/endMs for a window instead.
createdBystringnoOptional attribution recorded in the emitted receipt.
endMsnumbernoWindow end in milliseconds; unbounded when omitted.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.
startMsnumbernoWindow start in milliseconds; unbounded when omitted.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline keyframe easing apply receipt includes layer id, target, easing preset, affected timestamp range, changed paths, updated count, and validation result.
  2. Preview receipt includes output frame hash after the timeline edit.

Named value sets used here: easing, keyframeTarget. Every allowed-value list is enforced on the wire, not merely advertised.

motion.command.motion.timeline.keyframe.shift

Link

motion.timeline.keyframe.shift

Tier edit_motion. Mutates. Discoverable as an action on the timeline, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 9

Discovery phrases: nudge selected keyframes, shift selected keyframes, shift keyframe range, move keyframe range, nudge keyframe range, slide keyframes, offset selected keyframes, shift opacity keyframes

Arguments (9)
NameTypeRequiredDescription
deltaMsnumberyesMilliseconds to move the selected keyframes; must be finite and non-zero.
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
targetstring · keyframeTargetyesAnimated property path the keyframes belong to.
createdBystringnoOptional attribution recorded in the emitted receipt.
endMsnumbernoWindow end in milliseconds; unbounded when omitted.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.
startMsnumbernoWindow start in milliseconds; unbounded when omitted.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline keyframe shift receipt includes layer id, target, delta, affected timestamp range, shifted keyframes, changed paths, and validation result.
  2. Preview receipt includes output frame hash after the timeline edit.

Named value sets used here: keyframeTarget. Every allowed-value list is enforced on the wire, not merely advertised.

motion.command.motion.timeline.keyframe.scale

Link

motion.timeline.keyframe.scale

Tier edit_motion. Mutates. Discoverable as an action on the timeline, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 10

Discovery phrases: stretch selected keyframes, scale selected keyframes, compress selected keyframes, stretch keyframe range, scale keyframe range, retime selected keyframes, change selected keyframe timing, spread keyframes around playhead

Arguments (10)
NameTypeRequiredDescription
layerIdstringyesTarget layer id.
originMsnumberyesFixed point the scaling pivots around, in milliseconds.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
scalenumberyesTime-scale factor; must be positive and not 1.
targetstring · keyframeTargetyesAnimated property path the keyframes belong to.
createdBystringnoOptional attribution recorded in the emitted receipt.
endMsnumbernoWindow end in milliseconds; unbounded when omitted.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.
startMsnumbernoWindow start in milliseconds; unbounded when omitted.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline keyframe scale receipt includes layer id, target, scale factor, origin, affected timestamp range, scaled keyframes, changed paths, and validation result.
  2. Preview receipt includes output frame hash after the timeline edit.

Named value sets used here: keyframeTarget. Every allowed-value list is enforced on the wire, not merely advertised.

motion.command.motion.timeline.keyframe.duplicate

Link

motion.timeline.keyframe.duplicate

Tier edit_motion. Mutates. Discoverable as an action on the timeline, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 9

Discovery phrases: duplicate selected keyframes, copy selected keyframes, duplicate keyframe range, copy keyframe range, repeat selected keyframes, repeat keyframe animation, paste keyframes later, copy opacity keyframes

Arguments (9)
NameTypeRequiredDescription
deltaMsnumberyesOffset for the duplicated keyframes; must be finite and non-zero.
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
targetstring · keyframeTargetyesAnimated property path the keyframes belong to.
createdBystringnoOptional attribution recorded in the emitted receipt.
endMsnumbernoWindow end in milliseconds; unbounded when omitted.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.
startMsnumbernoWindow start in milliseconds; unbounded when omitted.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline keyframe duplicate receipt includes layer id, target, delta, affected timestamp range, duplicated keyframes, changed paths, and validation result.
  2. Preview receipt includes output frame hash after the timeline edit.

Named value sets used here: keyframeTarget. Every allowed-value list is enforced on the wire, not merely advertised.

motion.command.motion.timeline.keyframe.distribute

Link

motion.timeline.keyframe.distribute

Tier edit_motion. Mutates. Discoverable as an action on the timeline, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 8

Discovery phrases: distribute selected keyframes, distribute keyframes evenly, evenly space selected keyframes, space keyframes evenly, equalize keyframe spacing, distribute opacity keyframes

Arguments (8)
NameTypeRequiredDescription
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
targetstring · keyframeTargetyesAnimated property path the keyframes belong to.
createdBystringnoOptional attribution recorded in the emitted receipt.
endMsnumbernoWindow end in milliseconds; unbounded when omitted.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.
startMsnumbernoWindow start in milliseconds; unbounded when omitted.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline keyframe distribute receipt includes layer id, target, affected timestamp range, spacing, distributed keyframes, changed paths, and validation result.
  2. Preview receipt includes output frame hash after the timeline edit.

Named value sets used here: keyframeTarget. Every allowed-value list is enforced on the wire, not merely advertised.

motion.command.motion.timeline.keyframe.reverse

Link

motion.timeline.keyframe.reverse

Tier edit_motion. Mutates. Discoverable as an action on the timeline, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 8

Discovery phrases: reverse selected keyframes, reverse keyframe range, mirror selected keyframes, mirror keyframe range, flip keyframe timing, reverse opacity keyframes

Arguments (8)
NameTypeRequiredDescription
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
targetstring · keyframeTargetyesAnimated property path the keyframes belong to.
createdBystringnoOptional attribution recorded in the emitted receipt.
endMsnumbernoWindow end in milliseconds; unbounded when omitted.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.
startMsnumbernoWindow start in milliseconds; unbounded when omitted.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline keyframe reverse receipt includes layer id, target, affected timestamp range, reversed keyframes, changed paths, and validation result.
  2. Preview receipt includes output frame hash after the timeline edit.

Named value sets used here: keyframeTarget. Every allowed-value list is enforced on the wire, not merely advertised.

motion.command.motion.timeline.keyframe.snap

Link

motion.timeline.keyframe.snap

Tier edit_motion. Mutates. Discoverable as an action on the timeline, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 10

Discovery phrases: snap selected keyframes to frames, snap keyframes to frame grid, align selected keyframes to frames, frame snap keyframes, snap opacity keyframes to frames, align keyframe timing to frame grid

Arguments (10)
NameTypeRequiredDescription
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
targetstring · keyframeTargetyesAnimated property path the keyframes belong to.
createdBystringnoOptional attribution recorded in the emitted receipt.
endMsnumbernoWindow end in milliseconds; unbounded when omitted.
fpsnumbernoFrame rate to snap to; must be positive. Defaults to the motion document fps.
modestring · keyframeSnapModenoRounding direction; nearest when omitted.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.
startMsnumbernoWindow start in milliseconds; unbounded when omitted.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline keyframe snap receipt includes layer id, target, fps, snap mode, affected timestamp range, snapped keyframes, changed paths, and validation result.
  2. Preview receipt includes output frame hash after the timeline edit.

Named value sets used here: keyframeSnapMode, keyframeTarget. Every allowed-value list is enforced on the wire, not merely advertised.

motion.command.motion.timeline.spatial.position.upsert

Link

motion.timeline.spatial.position.upsert

Tier edit_motion. Mutates. No action entry — call it directly.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 10
  • action entry none
Arguments (10)
NameTypeRequiredDescription
atMsnumberyesPosition time in milliseconds.
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
xnumberyesHorizontal position in pixels.
ynumberyesVertical position in pixels.
createdBystringnoOptional attribution recorded in the emitted receipt.
easingstring · easingnoEasing applied to the keyframe. Also accepts cubic-bezier(...)/steps(...) strings and a spring object.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.
spatialobjectnoOptional tangent control { mode, in: { x, y }, out: { x, y } }. mode must be one of the spatialTangentMode values and all four handle numbers must be finite.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

Named value sets used here: easing. Every allowed-value list is enforced on the wire, not merely advertised.

motion.command.motion.timeline.spatial.position.move

Link

motion.timeline.spatial.position.move

Tier edit_motion. Mutates. No action entry — call it directly.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 7
  • action entry none
Arguments (7)
NameTypeRequiredDescription
fromMsnumberyesCurrent time of the spatial position, in milliseconds.
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
toMsnumberyesNew time for the spatial position, in milliseconds.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

motion.command.motion.timeline.spatial.position.delete

Link

motion.timeline.spatial.position.delete

Tier edit_motion. Mutates. No action entry — call it directly.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 6
  • action entry none
Arguments (6)
NameTypeRequiredDescription
atMsnumberyesTime of the spatial position to remove, in milliseconds.
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

motion.command.motion.timeline.keyframes.panel

Link

motion.timeline.keyframes.panel

Tier read_motion. Read-only. Discoverable as an action on the timeline, prompt surfaces.

  • tier read_motion
  • domain timeline
  • mutates no
  • arguments 4

Discovery phrases: show keyframe panel, keyframe panel, show keyframes panel, timeline keyframes panel, inspect keyframe panel, show animated keyframes, inspect timeline keyframes, show easing keyframes

Arguments (4)
NameTypeRequiredDescription
packageRootstringyesMotion package root to inspect for timeline keyframes.
includeEmptybooleannoInclude layers that have no matching keyframes.
layerIdstringnoOptional layer id filter.
targetstring · keyframeTargetnoOptional keyframe target filter.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Keyframe panel returns animated layers, target ranges, easing usage, preset counts, and suggested keyframe actions.

Named value sets used here: keyframeTarget. Every allowed-value list is enforced on the wire, not merely advertised.

motion.command.motion.timeline.transitions.panel

Link

motion.timeline.transitions.panel

Tier read_motion. Read-only. Discoverable as an action on the timeline, prompt surfaces.

  • tier read_motion
  • domain timeline
  • mutates no
  • arguments 4

Discovery phrases: show timeline transition panel, timeline transition panel, show transition panel, transition panel, show transitions panel, timeline transitions panel, inspect transition panel, show enter exit transitions, inspect timeline transitions, show transition easing

Arguments (4)
NameTypeRequiredDescription
packageRootstringyesMotion package root to inspect for layer transitions.
edgestring · in|outnoOptional transition edge filter.
includeEmptybooleannoInclude layers that have no matching transitions.
layerIdstringnoOptional layer id filter.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Transition panel returns layers with enter/exit transitions, timing windows, easing usage, type counts, and suggested transition actions.

motion.command.motion.timeline.easing.panel

Link

motion.timeline.easing.panel

Tier read_motion. Read-only. Discoverable as an action on the timeline, prompt surfaces.

  • tier read_motion
  • domain timeline
  • mutates no
  • arguments 2

Discovery phrases: show easing panel, show timeline easing panel, show timeline easing curves, inspect easing curves, inspect animation curves, show keyframe easing usage, show transition easing usage, review easing usage

Arguments (2)
NameTypeRequiredDescription
packageRootstringyesMotion package root to inspect for easing curve usage.
sampleCountnumbernoNumber of normalized t/value samples to include per easing curve. Capped because the panel samples every easing row, so the cost is rowCount * sampleCount.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Easing panel returns sampled curves, keyframe and transition usage, custom easing detection, and suggested animation actions.

motion.command.motion.timeline.easing.presets

Link

motion.timeline.easing.presets

Tier read_motion. Read-only. Discoverable as an action on the timeline, prompt surfaces.

  • tier read_motion
  • domain timeline
  • mutates no
  • arguments 0

Discovery phrases: show easing presets, list easing presets, easing preset discovery, show animation easing presets, what easing presets are available, list spring easing presets, show spring presets

Takes no arguments.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Easing preset response includes named and cubic-bezier presets usable by keyframes and transitions.
  2. Easing preset response includes spring presets (spring-gentle, spring-snappy, spring-bouncy) resolving to damped-spring param sets.

motion.command.motion.timeline.animation.presets

Link

motion.timeline.animation.presets

Tier read_motion. Read-only. Discoverable as an action on the timeline, prompt surfaces.

  • tier read_motion
  • domain timeline
  • mutates no
  • arguments 0

Discovery phrases: show animation presets, list animation presets, animation preset discovery, show motion animation presets, what animation presets are available, list entrance and exit animations

Takes no arguments.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Animation preset response includes entrance and exit presets with target keyframe coverage.

motion.command.motion.timeline.animation.preset.apply

Link

motion.timeline.animation.preset.apply

Tier edit_motion. Mutates. Discoverable as an action on the timeline, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 12

Discovery phrases: apply lower third entrance animation, apply lower third animation, apply animation preset, add entrance animation, add exit animation, animate layer in, animate layer out, animate title entrance, apply fade in preset, apply fade out preset, apply slide up entrance, apply lower third in, make the title slide in, make title slide in, slide the title in, slide title in, title entrance animation, give the title an entrance, give title an entrance, stagger title and subtitle entrance animation, staggered layer entrance animation, animate multiple layers in sequence, apply animation preset to multiple layers

Arguments (12)
NameTypeRequiredDescription
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
presetstring · animationPresetyesAnimation preset to apply.
createdBystringnoOptional attribution recorded in the emitted receipt.
distancePxnumbernoTravel distance for slide-style presets, in pixels.
durationMsnumbernoPreset duration in milliseconds; the preset default when omitted.
easingstring · easingnoEasing applied to the keyframe. Also accepts cubic-bezier(...)/steps(...) strings and a spring object.
layerIdstringnoSingle target layer. Supply this or layerIds.
layerIdsarraynoTarget layer ids as a string array; enables staggering across the group.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.
staggerMsnumbernoDelay added per layer when layerIds is used.
startMsnumbernoPreset start time in milliseconds; the layer start when omitted.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Animation preset apply receipt includes layer id or layer ids, preset id, timing or staggered per-layer timings, affected targets, changed paths, validation result, and preview evidence.
  2. Preview receipt includes output frame hash after the timeline edit.

Named value sets used here: animationPreset, easing. Every allowed-value list is enforced on the wire, not merely advertised.

motion.command.motion.timeline.layer.create

Link

motion.timeline.layer.create

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 23

Discovery phrases: add a text layer to the timeline, add text layer, create text layer, add shape layer, create shape layer, add environment layer, create environment layer, add rain environment layer, create rain environment, add water environment layer, create water environment, add snow environment layer, create snow environment, add a cinematic snow environment, insert timeline layer, create timeline layer, new timeline layer, add layer

Arguments (23)
NameTypeRequiredDescription
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
assetIdstringnoPackage asset id to bind the layer to.
assetRefstringnoPackage asset reference to bind the layer to.
colorstringnoText color; folded into layer.style.color.
createdBystringnoOptional attribution recorded in the emitted receipt.
durationMsnumbernoLayer duration in milliseconds; must be positive. Required unless layer.durationMs is set.
fillstringnoFill color for shape layers.
fontSizenumbernoText size in pixels; folded into layer.style.fontSize. Must be positive.
heightnumbernoLayer height in pixels. Must be positive.
indexnumbernoInsertion index in the layer stack; appended when omitted.
layerobjectnoFull layer object (id, type, startMs, durationMs, plus optional name/opacity/transform/keyframes/transitions/mask/effects/environment/blendMode/crop/ducking/style). Supply this, or the shorthand fields below.

11 further optional arguments: layerId, receiptsRoot, shape, source, src, startMs, text, trackId, trackIndex, type, width. The complete contract, including descriptions and allowed values, is schemas/debug.json.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline layer create receipt includes layer id, stack index, optional track ref, changed paths, inserted track refs, and validation result.

motion.command.motion.timeline.layer.trim

Link

motion.timeline.layer.trim

Tier edit_motion. Mutates. Discoverable as an action on the timeline, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 9

Discovery phrases: trim selected layer duration, trim layer, move layer timing, retime layer, set layer start and duration, change clip trim, adjust layer timing

Arguments (9)
NameTypeRequiredDescription
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
createdBystringnoOptional attribution recorded in the emitted receipt.
durationMsnumbernoNew timeline duration in milliseconds; must be positive.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.
startMsnumbernoNew timeline start in milliseconds.
trimDurationMsnumbernoNew length of the used source span; must be positive.
trimStartMsnumbernoNew in-point inside the source media, in milliseconds.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline layer trim receipt includes layer id, old timing, new timing, changed paths, and validation result.
  2. Preview receipt includes output frame hash after the timeline edit.

motion.command.motion.timeline.layer.split

Link

motion.timeline.layer.split

Tier edit_motion. Mutates. Discoverable as an action on the timeline, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 7

Discovery phrases: split clip at playhead, split selected layer at playhead, split timeline layer, split layer, cut layer at playhead, cut clip at playhead, razor clip, razor layer

Arguments (7)
NameTypeRequiredDescription
atMsnumberyesAbsolute timeline position of the cut, in milliseconds.
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
createdBystringnoOptional attribution recorded in the emitted receipt.
newLayerIdstringnoId for the layer created after the cut; derived when omitted.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline layer split receipt includes original layer id, new layer id, split timestamp, segment timings, changed paths, track order updates, and validation result.
  2. Preview receipt includes output frame hash after the timeline edit.

motion.command.motion.timeline.layer.text.set

Link

motion.timeline.layer.text.set

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 6

Discovery phrases: change title text, update title text, edit title text, set layer text, change layer text, edit text layer, update text layer, set timeline layer text

Arguments (6)
NameTypeRequiredDescription
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
textstringyesNew text content. An empty string is accepted.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline layer text receipt includes layer id, old/new text, changed paths, action, and validation result.

motion.command.motion.timeline.layer.style.set

Link

motion.timeline.layer.style.set

Tier edit_motion. Mutates. Discoverable as an action on the timeline, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 7

Discovery phrases: make title blue, make the title blue, make the title blue and preview it, change title color, set title color, set layer color, change layer style, set layer style, set title font size, change font size, set layer font size

Arguments (7)
NameTypeRequiredDescription
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
propertystringyesStyle property name such as color, fontSize, backgroundColor, or letterSpacing.
valuestringyesNew value. Strings, numbers, and booleans are all accepted; the type is validated against the target property.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline layer style receipt includes layer id, property, old/new values, changed paths, action, and validation result.

motion.command.motion.timeline.layer.transform.set

Link

motion.timeline.layer.transform.set

Tier edit_motion. Mutates. Discoverable as an action on the timeline, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 7

Discovery phrases: move layer, move title layer, set layer position, set layer x, set layer y, resize layer, set layer width, set layer height, scale layer, rotate layer, set layer opacity

Arguments (7)
NameTypeRequiredDescription
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
propertystringyesTransform property name: x, y, width, height, opacity, scale, rotation, originX, or originY.
valuestringyesNew value. Strings, numbers, and booleans are all accepted; the type is validated against the target property.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline layer transform receipt includes layer id, property, old/new values, changed paths, action, and validation result.

motion.command.motion.timeline.layer.effect.set

Link

motion.timeline.layer.effect.set

Tier edit_motion. Mutates. Discoverable as an action on the timeline, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 7

Discovery phrases: blur layer, blur title layer, soften layer, set layer blur, change layer effect, set layer effect, set layer brightness, adjust layer brightness, set layer contrast, adjust layer contrast, set layer saturate, desaturate layer, set layer grayscale

Arguments (7)
NameTypeRequiredDescription
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
propertystringyesEffect property name: blur, brightness, contrast, saturate, or grayscale.
valuestringyesNew value. Strings, numbers, and booleans are all accepted; the type is validated against the target property.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline layer effect receipt includes layer id, property, old/new values, changed paths, action, and validation result.

motion.command.motion.timeline.layer.rich.set

Link

motion.timeline.layer.rich.set

Tier edit_motion. Mutates. Discoverable as an action on the timeline, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 7

Discovery phrases: set rich motion control, change rich motion control, set rich layer parameter, set environment intensity, change environment intensity, set rain intensity, change rain intensity, set snow intensity, change snow intensity, set water wave amplitude, change water wave amplitude, set snow turbulence, set rain wetness, set water caustics, set shader uniform, change shader uniform, set particle emitter parameter, change 3d scene parameter, set camera depth control, set motion blur shutter, set film grain control

Arguments (7)
NameTypeRequiredDescription
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
propertystringyesDotted path into the layer's rich controls, for example environment.intensity or label.align.
valuestringyesNew value. Strings, numbers, and booleans are all accepted; the type is validated against the target property.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline rich-control receipt includes layer id, allow-listed control path, old/new values, changed paths, action, validation result, and preview evidence.

motion.command.motion.timeline.layer.blend.set

Link

motion.timeline.layer.blend.set

Tier edit_motion. Mutates. Discoverable as an action on the timeline, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 6

Discovery phrases: set layer blend mode, change layer blend mode, set blend mode, change blend mode, set layer multiply, set layer screen, make layer multiply, make layer screen, set compositor blend mode, change compositor blend

Arguments (6)
NameTypeRequiredDescription
blendModestring · blendModeyesNew compositing blend mode.
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline layer blend receipt includes layer id, old/new blend mode, changed paths, action, and validation result.

Named value sets used here: blendMode. Every allowed-value list is enforced on the wire, not merely advertised.

motion.command.motion.timeline.layer.crop.set

Link

motion.timeline.layer.crop.set

Tier edit_motion. Mutates. Discoverable as an action on the timeline, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 10

Discovery phrases: crop image layer, crop video layer, crop media layer, crop layer, set layer crop, set image crop, set video crop, set source crop, change source crop, adjust media crop

Arguments (10)
NameTypeRequiredDescription
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
createdBystringnoOptional attribution recorded in the emitted receipt.
cropobjectnoCrop rectangle { x, y, width, height }. All four fields are required when this object is used.
heightnumbernoCrop height; used when crop is not supplied.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.
widthnumbernoCrop width; used when crop is not supplied.
xnumbernoCrop left edge; used when crop is not supplied. Required with y, width, and height.
ynumbernoCrop top edge; used when crop is not supplied.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline layer crop receipt includes layer id, old/new crop rectangles, changed paths, action, and validation result.

motion.command.motion.timeline.layer.mask.set

Link

motion.timeline.layer.mask.set

Tier edit_motion. Mutates. Discoverable as an action on the timeline, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 12

Discovery phrases: mask layer, set layer mask, set rectangular mask, set rounded mask, round layer mask, clip layer mask, set mask inset, change layer mask, adjust layer mask, mask visual layer

Arguments (12)
NameTypeRequiredDescription
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
bottomnumbernoMask inset from the bottom; used when mask is not supplied.
createdBystringnoOptional attribution recorded in the emitted receipt.
leftnumbernoMask inset from the left; used when mask is not supplied.
maskobjectnoMask object { type, inset?: { top, right, bottom, left }, radius? }. type is required.
radiusnumbernoCorner radius; used when mask is not supplied.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.
rightnumbernoMask inset from the right; used when mask is not supplied.
topnumbernoMask inset from the top; used when mask is not supplied.
typestringnoMask type; used when mask is not supplied. Required in that form.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline layer mask receipt includes layer id, old/new mask shapes, changed paths, action, and validation result.

motion.command.motion.timeline.layer.fit.set

Link

motion.timeline.layer.fit.set

Tier edit_motion. Mutates. Discoverable as an action on the timeline, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 6

Discovery phrases: fit image layer, fit video layer, set media fit, set image fit, set video fit, set object fit, change media fit, set layer fit, contain image layer, cover image layer

Arguments (6)
NameTypeRequiredDescription
fitstring · mediaFityesHow the media fills the layer box. Image and video layers only.
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline layer fit receipt includes layer id, old/new media fit, changed paths, action, and validation result.

Named value sets used here: mediaFit. Every allowed-value list is enforced on the wire, not merely advertised.

motion.command.motion.timeline.layer.media.set

Link

motion.timeline.layer.media.set

Tier edit_motion. Mutates. Discoverable as an action on the timeline, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 6

Discovery phrases: set layer media source, set image media source, set video media source, set audio media source, change layer media source, set layer source, change layer source, replace layer media, swap layer media, replace timeline layer source

Arguments (6)
NameTypeRequiredDescription
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
sourcestringyesNew media source path or asset reference.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline layer media receipt includes layer id, old/new source refs, changed paths, action, and validation result.

motion.command.motion.timeline.layer.name.set

Link

motion.timeline.layer.name.set

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 6

Discovery phrases: rename selected layer, rename layer, rename timeline layer, set layer name, set selected layer name, change layer name, change selected layer name, edit layer name, label selected layer, set layer display name

Arguments (6)
NameTypeRequiredDescription
layerIdstringyesTarget layer id.
namestringyesNew display name; must not be blank.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline layer name receipt includes layer id, old/new display name, changed paths, action, and validation result.

motion.command.motion.timeline.layer.visibility.set

Link

motion.timeline.layer.visibility.set

Tier edit_motion. Mutates. Discoverable as an action on the timeline, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 6

Discovery phrases: hide layer, show layer, hide timeline layer, show timeline layer, set layer visibility, toggle layer visibility, hide selected layer, show selected layer, hide product layer, show product layer

Arguments (6)
NameTypeRequiredDescription
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
visiblebooleanyesWhether the layer renders.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline layer visibility receipt includes layer id, old/new visibility, changed paths, action, and validation result.

motion.command.motion.timeline.layer.lock

Link

motion.timeline.layer.lock

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 6

Discovery phrases: lock layer, unlock layer, lock selected layer, unlock selected layer, lock timeline layer, unlock timeline layer, set layer lock, set layer locked, protect layer, unprotect layer

Arguments (6)
NameTypeRequiredDescription
layerIdstringyesTarget layer id.
lockedbooleanyesWhether further edits to this layer are refused.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline layer lock receipt includes layer id, old/new lock state, changed paths, action, and validation result.

motion.command.motion.timeline.layer.delete

Link

motion.timeline.layer.delete

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 5

Discovery phrases: delete selected layer from timeline, delete timeline layer, remove timeline layer, delete selected layer, remove selected layer, delete layer, remove layer, clear layer

Arguments (5)
NameTypeRequiredDescription
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline layer delete receipt includes layer id, removed layer, changed paths, removed track refs, remaining count, and validation result.

motion.command.motion.timeline.layer.duplicate

Link

motion.timeline.layer.duplicate

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 7

Discovery phrases: duplicate selected layer on timeline, duplicate selected layer, duplicate timeline layer, clone selected layer, copy selected layer, duplicate layer, clone layer, copy layer

Arguments (7)
NameTypeRequiredDescription
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
createdBystringnoOptional attribution recorded in the emitted receipt.
newLayerIdstringnoId for the duplicate; derived when omitted.
offsetMsnumbernoMilliseconds to shift the duplicate later on the timeline.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline layer duplicate receipt includes source layer id, new layer id, offset, changed paths, inserted track refs, and validation result.

motion.command.motion.timeline.layer.reorder

Link

motion.timeline.layer.reorder

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 6

Discovery phrases: bring selected layer forward, send selected layer backward, move selected layer forward, move selected layer backward, move layer forward, move layer backward, move layer to front, send layer to back, reorder layer, change layer stack order, layer z order, move selected layer in stack

Arguments (6)
NameTypeRequiredDescription
indexnumberyesNew position in the layer stack.
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline layer reorder receipt includes layer id, old/new stack indexes, changed paths, reordered track refs, and validation result.

motion.command.motion.timeline.cleanup

Link

motion.timeline.cleanup

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 4

Discovery phrases: clean up stale timeline refs, cleanup stale timeline refs, clean timeline refs, cleanup timeline refs, fix stale timeline refs, repair timeline refs, clean up timeline, timeline cleanup, remove duplicate timeline refs

Arguments (4)
NameTypeRequiredDescription
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline cleanup receipt includes removed stale refs, duplicate refs, duration change, changed paths, and validation result.

motion.command.motion.timeline.track.create

Link

motion.timeline.track.create

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 18

Discovery phrases: create an overlay track, create timeline track, add timeline track, add track, new timeline track, create overlay track, add overlay track, create audio track, add audio track, create caption track, add caption track

Arguments (18)
NameTypeRequiredDescription
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
createdBystringnoOptional attribution recorded in the emitted receipt.
fadeInMsnumbernoInitial fade-in length in milliseconds.
fadeOutMsnumbernoInitial fade-out length in milliseconds.
indexnumbernoInsertion index in the track list; appended when omitted.
layerIdsarraynoLayer ids to attach, as a string array.
lockedbooleannoWhether the track starts locked.
mutedbooleannoWhether the track starts muted.
namestringnoOptional display name.
ordernumbernoExplicit sort order value; must be finite.
pannumbernoInitial stereo pan between -1 and 1.

6 further optional arguments: receiptsRoot, solo, track, trackId, type, volume. The complete contract, including descriptions and allowed values, is schemas/debug.json.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline track create receipt includes track id, stack index, attached layer ids, changed paths, and validation result.

motion.command.motion.timeline.track.reorder

Link

motion.timeline.track.reorder

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 6

Discovery phrases: move music track to top, reorder timeline track, move timeline track, move selected timeline track, move track to top, move track up, move track down, change track order, change timeline track order, track stack order

Arguments (6)
NameTypeRequiredDescription
indexnumberyesNew position in the track list.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
trackIdstringyesTarget track id.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline track reorder receipt includes track id, old/new stack indexes, old/new track order, changed paths, and validation result.

motion.command.motion.timeline.track.delete

Link

motion.timeline.track.delete

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 6

Discovery phrases: delete timeline track, remove timeline track, delete selected timeline track, remove selected timeline track, delete track, remove track, remove empty track, delete empty track

Arguments (6)
NameTypeRequiredDescription
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
trackIdstringyesTarget track id.
createdBystringnoOptional attribution recorded in the emitted receipt.
detachLayersbooleannoDetach the track's layers instead of leaving them referenced.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline track delete receipt includes track id, removed track, detached layer ids, removed scene refs, changed paths, and validation result.

motion.command.motion.timeline.track.rename

Link

motion.timeline.track.rename

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 6

Discovery phrases: rename timeline track, rename selected timeline track, rename track, change timeline track name, change track name, edit timeline track name, edit track name

Arguments (6)
NameTypeRequiredDescription
namestringyesNew track name; must not be blank.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
trackIdstringyesTarget track id.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline track rename receipt includes track id, old/new name, changed paths, action, and validation result.

motion.command.motion.timeline.track.lock

Link

motion.timeline.track.lock

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 6

Discovery phrases: lock selected timeline track, unlock selected timeline track, lock timeline track, unlock timeline track, lock overlay track, unlock overlay track, prevent edits on track, allow edits on track, toggle track lock

Arguments (6)
NameTypeRequiredDescription
lockedbooleanyesWhether edits to layers on this track are refused.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
trackIdstringyesTarget track id.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline track lock receipt includes track id, old/new lock state, changed paths, action, and validation result.

motion.command.motion.timeline.track.mute

Link

motion.timeline.track.mute

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 6

Discovery phrases: mute selected timeline track, unmute selected timeline track, mute timeline track, unmute timeline track, mute music track, unmute music track, mute audio track, unmute audio track, silence track, restore track audio, toggle track mute

Arguments (6)
NameTypeRequiredDescription
mutedbooleanyesWhether the track is silenced.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
trackIdstringyesTarget track id.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline track mute receipt includes track id, old/new mute state, changed paths, action, and validation result.

motion.command.motion.timeline.track.solo

Link

motion.timeline.track.solo

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 6

Discovery phrases: solo selected timeline track, unsolo selected timeline track, solo timeline track, unsolo timeline track, solo music track, unsolo music track, solo audio track, unsolo audio track, isolate track audio, toggle track solo

Arguments (6)
NameTypeRequiredDescription
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
solobooleanyesWhether only soloed tracks are audible.
trackIdstringyesTarget track id.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline track solo receipt includes track id, old/new solo state, changed paths, action, and validation result.

motion.command.motion.timeline.track.volume

Link

motion.timeline.track.volume

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 6

Discovery phrases: set music track volume, change music track volume, adjust music track volume, set audio track volume, change audio track volume, adjust audio track volume, lower music track volume, raise music track volume, set track gain, adjust track gain, track volume

Arguments (6)
NameTypeRequiredDescription
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
trackIdstringyesTarget track id.
volumenumberyesTrack volume; must be a non-negative finite number.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline track volume receipt includes track id, old/new volume, changed paths, action, and validation result.

motion.command.motion.timeline.track.fade

Link

motion.timeline.track.fade

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 7

Discovery phrases: set music track fade in and fade out, set track fade in, set track fade out, change track fades, adjust track fade, fade audio track, track fade, music track fade

Arguments (7)
NameTypeRequiredDescription
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
trackIdstringyesTarget track id.
createdBystringnoOptional attribution recorded in the emitted receipt.
fadeInMsnumbernoFade-in length in milliseconds. At least one of fadeInMs or fadeOutMs is required.
fadeOutMsnumbernoFade-out length in milliseconds.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline track fade receipt includes track id, old/new fade values, changed paths, action, and validation result.

motion.command.motion.timeline.track.pan

Link

motion.timeline.track.pan

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 6

Discovery phrases: pan music track left, pan music track right, center music track pan, set music track pan, set audio track pan, change audio track pan, adjust audio track pan, balance music track, pan audio track, track pan, track balance

Arguments (6)
NameTypeRequiredDescription
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
pannumberyesStereo pan; must be a finite number between -1 and 1.
trackIdstringyesTarget track id.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline track pan receipt includes track id, old/new pan values, changed paths, action, and validation result.

motion.command.motion.timeline.layer.ducking.set

Link

motion.timeline.layer.ducking.set

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 12

Discovery phrases: duck music under voice, duck music when voice plays, set audio ducking, set layer ducking, sidechain music under dialogue, sidechain audio layer, lower music during narration, duck background music

Arguments (12)
NameTypeRequiredDescription
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
triggerLayerIdsarrayyesLayer ids whose audio ducks this layer. Must be a non-empty array of strings.
attackMsnumbernoMilliseconds to reach the ducked volume.
createdBystringnoOptional attribution recorded in the emitted receipt.
duckToVolumenumbernoVolume held while ducking.
modestring · duckingModenoDucking mode; timed when omitted.
rationumbernoSidechain compressor ratio. Only meaningful with mode sidechain.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.
releaseMsnumbernoMilliseconds to return to full volume.
thresholdnumbernoSidechain compressor threshold. Only meaningful with mode sidechain.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline layer ducking receipt includes layer id, trigger layer ids, old/new ducking controls, changed paths, action, and validation result.

Named value sets used here: duckingMode. Every allowed-value list is enforced on the wire, not merely advertised.

motion.command.motion.timeline.layer.track.assign

Link

motion.timeline.layer.track.assign

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 7

Discovery phrases: move selected layer to captions track, move layer to track, assign layer to track, send layer to track, reorder layer on track, move layer between tracks, set layer track, change layer track, put title on overlay track, put captions on caption track

Arguments (7)
NameTypeRequiredDescription
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
trackIdstringyesTarget track id.
createdBystringnoOptional attribution recorded in the emitted receipt.
indexnumbernoPosition inside the destination track's layer list; appended when omitted.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline layer track assignment receipt includes layer id, old/new track ids, order indexes, changed paths, removed source track refs, and validation result.

motion.command.motion.timeline.caption.import

Link

motion.timeline.caption.import

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 12

Discovery phrases: import captions from srt, import subtitle file, import captions, add captions from transcript, add srt captions, add vtt captions

Arguments (12)
NameTypeRequiredDescription
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
captionsPathstringnoCaption file to read. Required unless captionsText is given.
captionsTextstringnoInline caption text, in place of captionsPath.
createdBystringnoOptional attribution recorded in the emitted receipt.
formatstring · captionFormatnoCaption source format; inferred from the file extension when omitted.
layerPrefixstringnoPrefix for generated caption layer ids.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.
styleobjectnoStyle applied to every caption layer, for example { fontSize: 42, color: "#fff" }.
trackIdstringnoExisting track to place caption layers on.
trackNamestringnoName for a caption track created when trackId is omitted.
transformobjectnoTransform applied to every caption layer, for example { y: 900 }.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Caption import receipt includes source format, cue count, inserted layer ids, track refs, changed paths, and validation result.

Named value sets used here: captionFormat. Every allowed-value list is enforced on the wire, not merely advertised.

motion.command.motion.timeline.caption.upsert

Link

motion.timeline.caption.upsert

Tier edit_motion. Mutates. Discoverable as an action on the timeline, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 12

Discovery phrases: edit caption at playhead, add caption at playhead, update caption text, set caption timing, change caption text, create caption layer

Arguments (12)
NameTypeRequiredDescription
durationMsnumberyesCaption duration in milliseconds; must be positive.
idstringyesCaption layer id; an existing caption with this id is replaced.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
startMsnumberyesCaption start in milliseconds.
textstringyesCaption text; must not be empty.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.
styleobjectnoStyle applied to every caption layer, for example { fontSize: 42, color: "#fff" }.
trackIdstringnoExisting track to place caption layers on.
trackNamestringnoName for a caption track created when trackId is omitted.
transformobjectnoTransform applied to every caption layer, for example { y: 900 }.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Caption upsert receipt includes layer id, timing, text, track ref, changed paths, and validation result.

motion.command.motion.timeline.transition.upsert

Link

motion.timeline.transition.upsert

Tier edit_motion. Mutates. Discoverable as an action on the timeline, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 11

Discovery phrases: add slide transition with ease out, add timeline transition, set transition, update transition, add fade in transition, add wipe transition, change transition easing, set enter transition, set exit transition

Arguments (11)
NameTypeRequiredDescription
durationMsnumberyesTransition length in milliseconds; must be positive.
edgestring · transitionEdgeyesWhich end of the layer the transition applies to.
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
typestring · transitionTypeyesTransition kind.
createdBystringnoOptional attribution recorded in the emitted receipt.
directionstring · transitionDirectionnoOptional direction for slide and wipe transitions.
distancenumbernoOptional travel distance in pixels for slide transitions.
easingstring · easingnoOptional easing for the transition.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline transition receipt includes layer id, edge, transition type, duration, easing, changed path, and validation result.
  2. Preview receipt includes output frame hash after the timeline edit.

Named value sets used here: easing, transitionDirection, transitionEdge, transitionType. Every allowed-value list is enforced on the wire, not merely advertised.

motion.command.motion.timeline.transition.delete

Link

motion.timeline.transition.delete

Tier edit_motion. Mutates. Discoverable as an action on the timeline, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain timeline
  • mutates yes
  • arguments 6

Discovery phrases: delete transition at playhead, delete transition, remove transition, clear transition, remove enter transition, remove exit transition, delete fade transition, delete slide transition, delete wipe transition

Arguments (6)
NameTypeRequiredDescription
edgestring · transitionEdgeyesWhich end of the layer to clear.
layerIdstringyesTarget layer id.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Timeline transition delete receipt includes layer id, edge, removed transition, changed path, and validation result.
  2. Preview receipt includes output frame hash after the timeline edit.

Named value sets used here: transitionEdge. Every allowed-value list is enforced on the wire, not merely advertised.

authoring domain

authoring commands

Advanced effects Motion owns: tracking, keying, roto, compositing graphs, procedural links and 3D. 35 commands.

motion.command.motion.script.compile

Link

motion.script.compile

Tier write_local. Mutates. Discoverable as an action on the prompt, preview, receipts surfaces.

  • tier write_local
  • domain authoring
  • mutates yes
  • arguments 5

Discovery phrases: generate scripted video, scripted video from description frames, cut generate video, storyboard to motion, description frames in cut

Arguments (5)
NameTypeRequiredDescription
packageDirstringyesEmpty or absent output directory for the compiled Motion package.
createdAtstringnoDeterministic ISO timestamp for the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror.
scriptobjectnoInline scripted-video document, in place of scriptPath.
scriptPathstringnoScripted-video JSON path. Required unless script is given inline.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Script compile receipt includes source storyboard hash.
  2. Render receipt includes output file hash, codec, duration, and dimensions.

motion.command.motion.analysis.tracking.request

Link

motion.analysis.tracking.request

Tier write_local. Mutates. Discoverable as an action on the tracking, prompt, preview, receipts surfaces.

  • tier write_local
  • domain authoring
  • mutates yes
  • arguments 10

Discovery phrases: track this video, run point tracking, run planar tracking, analyze camera motion, track footage for stabilization, create tracking analysis

Arguments (10)
NameTypeRequiredDescription
analysisIdstringyesStable safe identifier used for retries and the lifecycle artifact path.
assetIdstringyesMotion video asset id to track.
modestring · point|planaryesTracker kind: point follows a single feature, planar solves a surface.
modelstring · translation|similarity|homographyyesMotion model the solve fits; homography is required for planar corner-pin applies.
outDirstringyesTrusted empty output directory for the package copy and persisted lifecycle.
packageRootstringyesSource Motion package containing a manifest-declared video asset.
referenceobjectyesReference time, bounds, and point coordinates in source pixels.
settingsobjectyesBounded time range, direction, step, search, confidence, and deterministic solver settings.
createdAtstringnoOptional deterministic timestamp for tests and reproducible fixtures.
receiptsRootstringnoOptional trusted host receipt mirror.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Tracking request persists a source-hashed lifecycle with confidence, residual, lost/recovered, solver, containment, and receipt evidence.
  2. Inspect confirms the package-local video bytes still match the persisted source identity.

motion.command.motion.analysis.tracking.inspect

Link

motion.analysis.tracking.inspect

Tier read_motion. Read-only. Discoverable as an action on the tracking, prompt, preview, receipts surfaces.

  • tier read_motion
  • domain authoring
  • mutates no
  • arguments 2

Discovery phrases: inspect tracking analysis, show tracking confidence, show lost tracking spans, check tracking source, tracking status

Arguments (2)
NameTypeRequiredDescription
analysisIdstringyesTracking lifecycle id to inspect.
packageRootstringyesMotion package containing the persisted tracking lifecycle.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Tracking inspection returns lifecycle attempts, last-good analysis, confidence spans, and current/stale source identity without mutation.

motion.command.motion.analysis.tracking.apply

Link

motion.analysis.tracking.apply

Tier edit_motion. Mutates. Discoverable as an action on the tracking, timeline, prompt, preview, receipts surfaces.

  • tier edit_motion
  • domain authoring
  • mutates yes
  • arguments 7

Discovery phrases: apply tracking stabilization, stabilize this footage, attach track to layer, use planar track for stabilization, apply tracked camera correction

Arguments (7)
NameTypeRequiredDescription
analysisIdstringyesLast-good tracking analysis to compile into ordinary transform keyframes.
layerIdstringyesTarget footage layer id.
outDirstringyesTrusted empty output directory for the stabilized package copy.
packageRootstringyesSource Motion package containing a current persisted tracking lifecycle.
includeLowConfidencebooleannoExplicitly include low-confidence samples while preserving lost gaps.
receiptsRootstringnoOptional trusted host receipt mirror.
segmentIndexnumbernoRequired explicit confidence-qualified segment for a partial track.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Apply compiles a current last-good track into ordinary transform keyframes, retains explicit confidence gaps, and stores an exact reversible attachment.
  2. Verify confirms analysis id, source hash, and generated keyframes before preview or Cut handoff.

motion.command.motion.analysis.tracking.detach

Link

motion.analysis.tracking.detach

Tier edit_motion. Mutates. Discoverable as an action on the tracking, timeline, prompt, preview, receipts surfaces.

  • tier edit_motion
  • domain authoring
  • mutates yes
  • arguments 4

Discovery phrases: detach tracking stabilization, remove stabilization, restore transform before tracking, unlink tracked motion, undo attached track

Arguments (4)
NameTypeRequiredDescription
layerIdstringyesLayer whose exact prior transform keyframes must be restored.
outDirstringyesTrusted empty output directory for the detached package copy.
packageRootstringyesSource Motion package with attached tracking stabilization.
receiptsRootstringnoOptional trusted host receipt mirror.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Detach restores the exact prior x, y, scale, and rotation keyframes and removes only the tracking attachment.

motion.command.motion.analysis.tracking.verify

Link

motion.analysis.tracking.verify

Tier read_motion. Read-only. Discoverable as an action on the tracking, timeline, prompt, preview, receipts surfaces.

  • tier read_motion
  • domain authoring
  • mutates no
  • arguments 3

Discovery phrases: verify tracking stabilization, check tracking attachment, check stabilized keyframes, verify track before cut handoff, is tracking current

Arguments (3)
NameTypeRequiredDescription
layerIdstringyesStabilized layer id.
packageRootstringyesMotion package whose attachment, generated keyframes, and source identity are verified.
analysisIdstringnoOptional expected tracking analysis id.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Tracking verification reports missing or drifted attachments, analysis ids, source bytes, and generated keyframes without mutation.

motion.command.motion.keying.inspect

Link

motion.keying.inspect

Tier read_motion. Read-only. Discoverable as an action on the keying, roto, prompt, preview surfaces.

  • tier read_motion
  • domain authoring
  • mutates no
  • arguments 2

Discovery phrases: inspect chroma key, show green screen controls, inspect layer keying, check roto mask, show key and roto state

Arguments (2)
NameTypeRequiredDescription
layerIdstringyesImage or video layer id.
packageRootstringyesSource Motion package.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Inspection reports the bounded key controls, animated roto state, and tracking attachment without mutation.

motion.command.motion.keying.apply

Link

motion.keying.apply

Tier edit_motion. Mutates. Discoverable as an action on the keying, prompt, preview, receipts surfaces.

  • tier edit_motion
  • domain authoring
  • mutates yes
  • arguments 6

Discovery phrases: key out green screen, apply chroma key, remove green background, key this footage, apply spill suppression, clean green screen matte

Arguments (6)
NameTypeRequiredDescription
keyingobjectyesBounded chroma-key and matte-cleanup controls.
layerIdstringyesImage or video layer id.
outDirstringyesEmpty or absent output directory for the copy-on-write package.
packageRootstringyesSource Motion package.
maskobjectnoRoto mask. Applied by motion.roto.upsert; on the other operations it is only recorded in the receipt input hash.
receiptsRootstringnoOptional trusted host receipt mirror.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Apply creates a copy-on-write package, validates bounded key and matte-cleanup controls, previews the keyed pixels, and emits a receipt.

motion.command.motion.keying.remove

Link

motion.keying.remove

Tier edit_motion. Mutates. Discoverable as an action on the keying, prompt, preview, receipts surfaces.

  • tier edit_motion
  • domain authoring
  • mutates yes
  • arguments 6

Discovery phrases: remove chroma key, disable green screen key, restore unkeyed footage, clear layer keying

Arguments (6)
NameTypeRequiredDescription
layerIdstringyesImage or video layer id.
outDirstringyesEmpty or absent output directory for the copy-on-write package.
packageRootstringyesSource Motion package.
keyingobjectnoChroma-key controls. Applied by motion.keying.apply; on the other operations it is only recorded in the receipt input hash.
maskobjectnoRoto mask. Applied by motion.roto.upsert; on the other operations it is only recorded in the receipt input hash.
receiptsRootstringnoOptional trusted host receipt mirror.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Remove deletes only the chroma-key contract in a copy-on-write package and preserves the source package and roto mask.

motion.command.motion.roto.upsert

Link

motion.roto.upsert

Tier edit_motion. Mutates. Discoverable as an action on the roto, tracking, timeline, prompt, preview, receipts surfaces.

  • tier edit_motion
  • domain authoring
  • mutates yes
  • arguments 6

Discovery phrases: create roto mask, animate roto mask, update rotoscope path, attach tracking to roto, isolate subject with roto

Arguments (6)
NameTypeRequiredDescription
layerIdstringyesImage or video layer id.
maskobjectyesBounded animated roto mask with optional tracking attachment.
outDirstringyesEmpty or absent output directory for the copy-on-write package.
packageRootstringyesSource Motion package.
keyingobjectnoChroma-key controls. Applied by motion.keying.apply; on the other operations it is only recorded in the receipt input hash.
receiptsRootstringnoOptional trusted host receipt mirror.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Upsert validates stable vertex identities, bounded frames and tangents, optional source-hashed tracking attachment, rendered mask evidence, and a mutation receipt.

motion.command.motion.roto.tracking.detach

Link

motion.roto.tracking.detach

Tier edit_motion. Mutates. Discoverable as an action on the roto, tracking, timeline, prompt, preview, receipts surfaces.

  • tier edit_motion
  • domain authoring
  • mutates yes
  • arguments 6

Discovery phrases: detach roto tracking, unlink tracking from roto, keep roto frames remove tracking, remove tracked roto attachment

Arguments (6)
NameTypeRequiredDescription
layerIdstringyesImage or video layer id.
outDirstringyesEmpty or absent output directory for the copy-on-write package.
packageRootstringyesSource Motion package.
keyingobjectnoChroma-key controls. Applied by motion.keying.apply; on the other operations it is only recorded in the receipt input hash.
maskobjectnoRoto mask. Applied by motion.roto.upsert; on the other operations it is only recorded in the receipt input hash.
receiptsRootstringnoOptional trusted host receipt mirror.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Detach removes only the roto tracking attachment while preserving the exact animated vertex frames.

motion.command.motion.roto.remove

Link

motion.roto.remove

Tier edit_motion. Mutates. Discoverable as an action on the roto, prompt, preview, receipts surfaces.

  • tier edit_motion
  • domain authoring
  • mutates yes
  • arguments 6

Discovery phrases: remove roto mask, delete rotoscope mask, clear subject mask, restore unmasked footage

Arguments (6)
NameTypeRequiredDescription
layerIdstringyesImage or video layer id.
outDirstringyesEmpty or absent output directory for the copy-on-write package.
packageRootstringyesSource Motion package.
keyingobjectnoChroma-key controls. Applied by motion.keying.apply; on the other operations it is only recorded in the receipt input hash.
maskobjectnoRoto mask. Applied by motion.roto.upsert; on the other operations it is only recorded in the receipt input hash.
receiptsRootstringnoOptional trusted host receipt mirror.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Remove deletes only the roto mask in a copy-on-write package and preserves chroma-key controls.

motion.command.motion.compositing.graph.inspect

Link

motion.compositing.graph.inspect

Tier read_motion. Read-only. Discoverable as an action on the compositing, prompt, preview, receipts surfaces.

  • tier read_motion
  • domain authoring
  • mutates no
  • arguments 1

Discovery phrases: inspect compositing graph, show node graph, check compositing graph, show graph compile diagnostics, inspect graph resource budget

Arguments (1)
NameTypeRequiredDescription
packageRootstringyesSource Motion package.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Inspection returns the editable graph, validation diagnostics, deterministic fingerprint, resource estimate, and matching compile metadata without mutation.

motion.command.motion.compositing.graph.set

Link

motion.compositing.graph.set

Tier edit_motion. Mutates. Discoverable as an action on the compositing, prompt, preview, receipts surfaces.

  • tier edit_motion
  • domain authoring
  • mutates yes
  • arguments 5

Discovery phrases: set compositing graph, compile node graph, create blend graph, add matte graph, apply graph effects, connect compositing nodes

Arguments (5)
NameTypeRequiredDescription
graphobjectyesVersioned, acyclic, data-only compositing graph.
outDirstringyesEmpty or absent copy-on-write output directory.
packageRootstringyesSource Motion package.
createdBystringnoOptional author identity recorded in output facts.
receiptsRootstringnoOptional trusted host receipt mirror.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Set validates data-only nodes, typed ports, cycles, matte constraints, and resource budgets before creating one copy-on-write package.
  2. Inspect confirms graph fingerprint and compile metadata; preview verifies the compiled MotionIR pixels before handoff.

motion.command.motion.compositing.graph.remove

Link

motion.compositing.graph.remove

Tier edit_motion. Mutates. Discoverable as an action on the compositing, prompt, preview, receipts surfaces.

  • tier edit_motion
  • domain authoring
  • mutates yes
  • arguments 5

Discovery phrases: remove compositing graph, detach node graph, restore graph source layers, clear compiled graph

Arguments (5)
NameTypeRequiredDescription
outDirstringyesEmpty or absent copy-on-write output directory.
packageRootstringyesSource Motion package.
createdBystringnoOptional author identity recorded in output facts.
graphobjectnoIgnored by remove; recorded in the receipt input hash when supplied.
receiptsRootstringnoOptional trusted host receipt mirror.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Remove deletes generated graph output and compile metadata while restoring the exact editable source-layer visibility and preserving the source package.

motion.command.motion.procedural.inspect

Link

motion.procedural.inspect

Tier read_motion. Read-only. Discoverable as an action on the procedural, timeline, prompt, receipts surfaces.

  • tier read_motion
  • domain authoring
  • mutates no
  • arguments 2

Discovery phrases: inspect procedural relationships, show linked properties, show relationship drivers, explain driven animation, inspect expressions without code

Arguments (2)
NameTypeRequiredDescription
packageRootstringyesSource Motion package.
atMsnumbernoOptional timeline time to evaluate readable relationship outputs.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Inspection returns readable source and target properties, enabled state, graph validation, resource estimates, and optional evaluated values without changing the package.

motion.command.motion.procedural.relationship.set

Link

motion.procedural.relationship.set

Tier edit_motion. Mutates. Discoverable as an action on the procedural, timeline, prompt, preview, receipts surfaces.

  • tier edit_motion
  • domain authoring
  • mutates yes
  • arguments 11

Discovery phrases: link animation properties, create driven property, set procedural relationship, drive animation from audio, add deterministic wiggle, link layer values

Arguments (11)
NameTypeRequiredDescription
outDirstringyesEmpty or absent copy-on-write output directory.
packageRootstringyesSource Motion package.
relationshipobjectyesData-only typed scalar relationship; executable expressions are rejected. Required by motion.procedural.relationship.set.
createdBystringnoOptional author identity recorded in output facts.
enabledbooleannoWhether the relationship participates in evaluation. Required by motion.procedural.relationship.enabled.set.
endMsnumbernoLast baked sample time in milliseconds; the layer end when omitted.
receiptsRootstringnoOptional trusted host receipt mirror.
relationshipIdstringnoStable relationship id. Required by enabled.set and detach.
relationshipIdsarraynoOptional relationship ids; bake defaults to all enabled relationships.
sampleEveryFramesnumbernoBake one keyframe every N frames; must be a positive integer.
startMsnumbernoFirst baked sample time in milliseconds; the layer start when omitted.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Set rejects arbitrary JavaScript, unknown node types, missing properties, cycles, and over-budget graphs before creating one copy-on-write package revision.
  2. Inspect and preview confirm the readable relationship and evaluated pixels before downstream handoff.

motion.command.motion.procedural.relationship.enabled.set

Link

motion.procedural.relationship.enabled.set

Tier edit_motion. Mutates. Discoverable as an action on the procedural, timeline, prompt, preview, receipts surfaces.

  • tier edit_motion
  • domain authoring
  • mutates yes
  • arguments 11

Discovery phrases: enable procedural relationship, disable procedural relationship, toggle driven property, mute animation link

Arguments (11)
NameTypeRequiredDescription
enabledbooleanyesWhether the relationship participates in evaluation. Required by motion.procedural.relationship.enabled.set.
outDirstringyesEmpty or absent copy-on-write output directory.
packageRootstringyesSource Motion package.
relationshipIdstringyesStable relationship id. Required by enabled.set and detach.
createdBystringnoOptional author identity recorded in output facts.
endMsnumbernoLast baked sample time in milliseconds; the layer end when omitted.
receiptsRootstringnoOptional trusted host receipt mirror.
relationshipobjectnoData-only typed scalar relationship; executable expressions are rejected. Required by motion.procedural.relationship.set.
relationshipIdsarraynoOptional relationship ids; bake defaults to all enabled relationships.
sampleEveryFramesnumbernoBake one keyframe every N frames; must be a positive integer.
startMsnumbernoFirst baked sample time in milliseconds; the layer start when omitted.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Enabled state changes in one package revision while preserving the relationship definition for reversible editing.

motion.command.motion.procedural.relationship.bake

Link

motion.procedural.relationship.bake

Tier edit_motion. Mutates. Discoverable as an action on the procedural, timeline, prompt, preview, receipts surfaces.

  • tier edit_motion
  • domain authoring
  • mutates yes
  • arguments 11

Discovery phrases: bake procedural animation, convert relationship to keyframes, freeze driven animation, bake expressions to keyframes, make procedural motion editable

Arguments (11)
NameTypeRequiredDescription
outDirstringyesEmpty or absent copy-on-write output directory.
packageRootstringyesSource Motion package.
createdBystringnoOptional author identity recorded in output facts.
enabledbooleannoWhether the relationship participates in evaluation. Required by motion.procedural.relationship.enabled.set.
endMsnumbernoLast baked sample time in milliseconds; the layer end when omitted.
receiptsRootstringnoOptional trusted host receipt mirror.
relationshipobjectnoData-only typed scalar relationship; executable expressions are rejected. Required by motion.procedural.relationship.set.
relationshipIdstringnoStable relationship id. Required by enabled.set and detach.
relationshipIdsarraynoOptional relationship ids; bake defaults to all enabled relationships.
sampleEveryFramesnumbernoBake one keyframe every N frames; must be a positive integer.
startMsnumbernoFirst baked sample time in milliseconds; the layer start when omitted.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Bake samples deterministic values within the bounded frame budget, writes ordinary numeric keyframes, detaches only selected relationships, and records sample, keyframe, and fingerprint evidence in one receipt.

motion.command.motion.procedural.relationship.detach

Link

motion.procedural.relationship.detach

Tier edit_motion. Mutates. Discoverable as an action on the procedural, timeline, prompt, preview, receipts surfaces.

  • tier edit_motion
  • domain authoring
  • mutates yes
  • arguments 11

Discovery phrases: detach procedural relationship, remove animation link, unlink driven property, delete relationship without baking

Arguments (11)
NameTypeRequiredDescription
outDirstringyesEmpty or absent copy-on-write output directory.
packageRootstringyesSource Motion package.
relationshipIdstringyesStable relationship id. Required by enabled.set and detach.
createdBystringnoOptional author identity recorded in output facts.
enabledbooleannoWhether the relationship participates in evaluation. Required by motion.procedural.relationship.enabled.set.
endMsnumbernoLast baked sample time in milliseconds; the layer end when omitted.
receiptsRootstringnoOptional trusted host receipt mirror.
relationshipobjectnoData-only typed scalar relationship; executable expressions are rejected. Required by motion.procedural.relationship.set.
relationshipIdsarraynoOptional relationship ids; bake defaults to all enabled relationships.
sampleEveryFramesnumbernoBake one keyframe every N frames; must be a positive integer.
startMsnumbernoFirst baked sample time in milliseconds; the layer start when omitted.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Detach removes the selected relationship without inventing keyframes and preserves all unrelated graph entries in one copy-on-write revision.

motion.command.motion.scene3d.gltf.import

Link

motion.scene3d.gltf.import

Tier write_local. Mutates. Discoverable as an action on the scene3d, prompt, preview, receipts, canvas, cut surfaces.

  • tier write_local
  • domain authoring
  • mutates yes
  • arguments 4

Discovery phrases: import gltf model, import glb model, create motion package from 3d model, add static 3d mesh, render gltf in canvas, send gltf render to cut

Arguments (4)
NameTypeRequiredDescription
outDirstringyesHost-approved empty or absent package output directory.
sourcePathstringyesHost-approved local .gltf or .glb source path.
createdAtstringnoOptional deterministic ISO timestamp for receipts.
createdBystringnoOptional author identity recorded in package provenance.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Import preserves the original source, denies network and external buffers, lowers bounded static triangles, and emits provenance receipts.
  2. Preview verifies actual WebGL mesh pixels and resource evidence before Canvas editing or a rendered-media Cut handoff.

motion.command.motion.lottie.import

Link

motion.lottie.import

Tier write_local. Mutates. No action entry — call it directly.

  • tier write_local
  • domain authoring
  • mutates yes
  • arguments 4
  • action entry none
Arguments (4)
NameTypeRequiredDescription
outDirstringyesHost-approved empty or absent package output directory.
sourcePathstringyesHost-approved local Lottie JSON source path.
createdAtstringnoOptional deterministic ISO timestamp for receipts.
createdBystringnoOptional author identity recorded in package provenance.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

motion.command.motion.dotlottie.import

Link

motion.dotlottie.import

Tier write_local. Mutates. No action entry — call it directly.

  • tier write_local
  • domain authoring
  • mutates yes
  • arguments 6
  • action entry none
Arguments (6)
NameTypeRequiredDescription
outDirstringyesHost-approved empty or absent package output directory.
sourcePathstringyesHost-approved local .lottie container path.
animationIdstringnoAnimation to select from the container. Defaults to the container's declared default.
createdAtstringnoOptional deterministic ISO timestamp for receipts.
createdBystringnoOptional author identity recorded in package provenance.
themeIdstringnoTheme to apply from the container. Defaults to no theme override.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

motion.command.motion.source.import

Link

motion.source.import

Tier write_local. Mutates. Discoverable as an action on the receipts, prompt surfaces.

  • tier write_local
  • domain authoring
  • mutates yes
  • arguments 8

Discovery phrases: source import, import source link, import article link, import repo link, import article link for storyboard, import source for storyboard, fetch article for video, fetch repo for video, prepare link for scripted video, turn link into storyboard source

Arguments (8)
NameTypeRequiredDescription
outDirstringyesTrusted empty output directory for the imported Markdown source.
urlstringyesPublic http(s) source URL to preserve as source identity.
createdBystringnoOptional actor recorded in receipt output.
kindstringnoOptional source kind: article, repo, or text.
markdownstringnoOptional pre-fetched Markdown content. When omitted, the debug API fetches the URL.
maxCharsnumbernoMaximum Markdown body characters kept before truncation.
receiptsRootstringnoOptional host receipts root for source-import receipt copies.
titlestringnoOptional source title.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Source import receipt includes public URL, kind, Markdown path, source hash, truncation evidence, and safe-fetch policy.

motion.command.motion.source.to_scripted_video

Link

motion.source.to_scripted_video

Tier write_local. Mutates. Discoverable as an action on the receipts, prompt surfaces.

  • tier write_local
  • domain authoring
  • mutates yes
  • arguments 9

Discovery phrases: source to scripted video, source to storyboard, turn imported source into scripted video, turn imported source into storyboard, lower source into scripted-video json, make scripted video from imported source, prepare source storyboard for cut, source storyboard for script to cut

Arguments (9)
NameTypeRequiredDescription
outDirstringyesTrusted empty output directory for scripted-video JSON and receipt evidence.
sourcePathstringyesImported source.md path from motion.source.import.
createdBystringnoOptional actor recorded in receipt output.
fpsnumbernoScripted-video frame rate.
frameDurationMsnumbernoDuration for each generated storyboard frame.
heightnumbernoScripted-video output height.
maxFramesnumbernoMaximum storyboard frames to emit.
receiptsRootstringnoOptional host receipts root for source-storyboard receipt copies.
widthnumbernoScripted-video output width.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Source-to-scripted-video emits deterministic scripted-video JSON, source refs, review-required storyboard metadata, and receipt artifacts before Script-to-Cut.

motion.command.motion.html.snippet.export

Link

motion.html.snippet.export

Tier write_local. Mutates. Discoverable as an action on the receipts, preview, prompt surfaces.

  • tier write_local
  • domain authoring
  • mutates yes
  • arguments 3

Discovery phrases: html snippet export, export html snippet, export html css snippet, export standalone html composition, export hyperframes html snippet, hyperframes html export, browser lane html export

Arguments (3)
NameTypeRequiredDescription
outDirstringyesTrusted empty output directory for the standalone HTML snippet.
packageRootstringyesMotion package root to export.
createdAtstringnoOptional deterministic receipt timestamp.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. HTML snippet export receipt includes HTML path, sha256, layer timing metadata, and lossiness diagnostics.

motion.command.motion.html.snippet.import

Link

motion.html.snippet.import

Tier write_local. Mutates. Discoverable as an action on the receipts, preview, prompt surfaces.

  • tier write_local
  • domain authoring
  • mutates yes
  • arguments 3

Discovery phrases: html snippet import, import html snippet, import html css snippet, import standalone html composition, import hyperframes html snippet, hyperframes html import, browser lane html import

Arguments (3)
NameTypeRequiredDescription
htmlPathstringyesTrusted ShellX/HyperFrames-style HTML snippet path to import.
packageDirstringyesTrusted empty output package directory.
createdAtstringnoOptional deterministic receipt timestamp.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. HTML snippet import receipt includes package path, validated layer timing, staged local asset digests, and discarded HTML/CSS feature diagnostics.

motion.command.motion.otio.export

Link

motion.otio.export

Tier write_local. Mutates. Discoverable as an action on the receipts, preview, prompt surfaces.

  • tier write_local
  • domain authoring
  • mutates yes
  • arguments 3

Discovery phrases: otio export, export otio, export timeline as otio, export this timeline as otio, export this timeline as otio for premiere, opentimelineio export, editorial interchange export

Arguments (3)
NameTypeRequiredDescription
outPathstringyesTrusted output .otio timeline path.
packageRootstringyesMotion package root to export.
createdAtstringnoOptional deterministic receipt timestamp.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. OTIO export receipt includes timeline path, sha256, track/clip/gap counts, and lossiness diagnostics.

motion.command.motion.otio.import

Link

motion.otio.import

Tier write_local. Mutates. Discoverable as an action on the receipts, preview, prompt surfaces.

  • tier write_local
  • domain authoring
  • mutates yes
  • arguments 3

Discovery phrases: otio import, import otio, import opentimelineio, import opentimelineio edit into motion, import editorial timeline, open otio timeline, convert otio to motion

Arguments (3)
NameTypeRequiredDescription
otioPathstringyesOpenTimelineIO .otio timeline path to import.
packageDirstringyesTrusted output Motion package directory.
createdAtstringnoOptional deterministic receipt timestamp.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. OTIO import receipt includes package path, layer/track counts, imported assets, and unsupported item warnings.

motion.command.motion.template.catalog

Link

motion.template.catalog

Tier read_motion. Read-only. Discoverable as an action on the templateInspector, prompt surfaces.

  • tier read_motion
  • domain authoring
  • mutates no
  • arguments 15

Discovery phrases: list motion templates in generate, list motion templates, show template catalog, template catalog, browse motion templates

Arguments (15)
NameTypeRequiredDescription
aspectRatiostringnoOptional output aspect ratio such as 16:9 or 9:16; derived from width and height when omitted.
designFamilystringnoKeep only templates in this design family.
durationMsnumbernoOptional target duration in milliseconds for template bounds scoring.
heightnumbernoOptional target output height for template bounds scoring.
outputTypestringnoKeep only templates that produce this output type.
packageRootstringnoSingle Motion package root to inspect.
packageRootsarraynoExplicit Motion package roots to inspect.
renderCoststring · low|medium|highnoKeep only templates in this render-cost band.
requiresAudiobooleannoKeep only templates that do (true) or do not (false) require caller-supplied audio.
requiresMediabooleannoKeep only templates that do (true) or do not (false) require caller-supplied media.
targetCommercialUsebooleannoKeep only templates whose licence permits commercial use.
targetHoststringnoOptional host target such as shellx-cut or shellx-canvas for compatibility scoring.

3 further optional arguments: targetLane, templateRoot, width. The complete contract, including descriptions and allowed values, is schemas/debug.json.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Template catalog returns package ids, template ids, compatible hosts/lanes, control counts, suitability metadata, and suggested follow-up actions.

motion.command.motion.template.plan

Link

motion.template.plan

Tier read_motion. Read-only. Discoverable as an action on the templateInspector, prompt surfaces.

  • tier read_motion
  • domain authoring
  • mutates no
  • arguments 18

Discovery phrases: prompt to template plan for cut generate, prompt to template plan, plan template from prompt, choose template for prompt, plan lower third template, template plan

Arguments (18)
NameTypeRequiredDescription
requeststringyesPrompt or user intent to match against available templates.
aspectRatiostringnoOptional output aspect ratio such as 16:9 or 9:16; derived from width and height when omitted.
designFamilystringnoKeep only templates in this design family.
durationMsnumbernoOptional target duration in milliseconds for template bounds scoring.
heightnumbernoOptional target output height for template bounds scoring.
outputTypestringnoKeep only templates that produce this output type.
packageRootstringnoSingle Motion package root to inspect.
packageRootsarraynoExplicit Motion package roots to inspect.
promptstringnoAlias for request.
renderCoststring · low|medium|highnoKeep only templates in this render-cost band.
requiresAudiobooleannoKeep only templates that do (true) or do not (false) require caller-supplied audio.
requiresMediabooleannoKeep only templates that do (true) or do not (false) require caller-supplied media.

6 further optional arguments: targetCommercialUse, targetHost, targetLane, templateRoot, values, width. The complete contract, including descriptions and allowed values, is schemas/debug.json.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Template plan returns selected template, request-fit suitability score, target fit, provided/default/missing input readiness, semantic story and media slots, representative review frames, quality gates, the apply-review-render-quality-revise-handoff loop, and follow-up actions before mutation.

motion.command.motion.template.panel

Link

motion.template.panel

Tier read_motion. Read-only. Discoverable as an action on the templateInspector, prompt surfaces.

  • tier read_motion
  • domain authoring
  • mutates no
  • arguments 1

Discovery phrases: show template inspector panel, template inspector panel, open template inspector, show template panel, inspect template controls panel, show grouped template controls

Arguments (1)
NameTypeRequiredDescription
packageRootstringyesMotion package root directory to read.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Template panel returns grouped controls, bindings, current values, suitability metadata, control type counts, and follow-up actions.

motion.command.motion.template.controls

Link

motion.template.controls

Tier read_motion. Read-only. Discoverable as an action on the templateInspector, prompt surfaces.

  • tier read_motion
  • domain authoring
  • mutates no
  • arguments 1

Discovery phrases: show editable template controls, list template controls, template control discovery, inspect template params, what fields can I edit

Arguments (1)
NameTypeRequiredDescription
packageRootstringyesMotion package root directory to read.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Template control response includes params, controls, bindings, and compatible lanes.

motion.command.motion.template.apply

Link

motion.template.apply

Tier edit_motion. Mutates. Discoverable as an action on the templateInspector, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain authoring
  • mutates yes
  • arguments 5

Discovery phrases: apply template control title, set template control, change template parameter, update editable template field, apply template controls

Arguments (5)
NameTypeRequiredDescription
outDirstringyesOutput package directory for applied template values.
packageRootstringyesTemplate Motion package root.
valuesobjectyesTemplate param values keyed by param id.
createdBystringnoAgent or host actor label for receipt provenance.
receiptsRootstringnoOptional host receipts root for a copied receipt.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Template apply receipt includes changed param ids and bound MotionIR paths.
  2. Preview receipt includes output frame hash after applying controls.

motion.command.motion.template.media.replace

Link

motion.template.media.replace

Tier edit_motion. Mutates. Discoverable as an action on the templateInspector, preview, receipts, prompt surfaces.

  • tier edit_motion
  • domain authoring
  • mutates yes
  • arguments 7

Discovery phrases: replace template media slot, replace media slot, swap template image, change template asset, replace template asset, set template media

Arguments (7)
NameTypeRequiredDescription
assetPathstringyesSource media file copied into the output package's assets.
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
paramIdstringyesTemplate media parameter to rebind.
assetRefstringnoPackage-relative asset reference to write; assets/<basename> when omitted.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Template media replace receipt includes param id, copied asset ref, changed bindings, manifest asset refs, and validation result.
  2. Preview receipt includes output frame hash after replacing media.

surface domain

surface commands

Panel and state reads that answer what a package currently is, plus selection and highlight. 17 commands.

motion.command.motion.state

Link

motion.state

Tier read_motion. Read-only. No action entry — call it directly.

  • tier read_motion
  • domain surface
  • mutates no
  • arguments 2
  • action entry none
Arguments (2)
NameTypeRequiredDescription
packageRootstringnoOptional Motion package root to summarize.
receiptsRootstringnoOptional trusted host receipt root to summarize alongside the package.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

motion.command.motion.open

Link

motion.open

Tier read_motion. Read-only. No action entry — call it directly.

  • tier read_motion
  • domain surface
  • mutates no
  • arguments 1
  • action entry none
Arguments (1)
NameTypeRequiredDescription
panelstringnoSurface panel to focus, such as preview, timeline, assets, or receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

motion.command.motion.select

Link

motion.select

Tier read_motion. Read-only. No action entry — call it directly.

  • tier read_motion
  • domain surface
  • mutates no
  • arguments 8
  • action entry none
Arguments (8)
NameTypeRequiredDescription
durationMsnumbernoHow long the highlight stays visible, in milliseconds.
layerIdstringnoLayer to select. One selection target is required.
markerIdstringnoMarker to select.
motionIdstringnoOptional motion id recorded in the visible state.
packageIdstringnoOptional package id recorded in the visible state.
sceneIdstringnoScene to select.
targetIdstringnoGeneric surface target to select.
trackIdstringnoTrack to select.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

motion.command.motion.highlight

Link

motion.highlight

Tier read_motion. Read-only. No action entry — call it directly.

  • tier read_motion
  • domain surface
  • mutates no
  • arguments 8
  • action entry none
Arguments (8)
NameTypeRequiredDescription
durationMsnumbernoHow long the highlight stays visible, in milliseconds.
layerIdstringnoLayer to select. One selection target is required.
markerIdstringnoMarker to select.
motionIdstringnoOptional motion id recorded in the visible state.
packageIdstringnoOptional package id recorded in the visible state.
sceneIdstringnoScene to select.
targetIdstringnoGeneric surface target to select.
trackIdstringnoTrack to select.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

motion.command.motion.platform.verification.panel

Link

motion.platform.verification.panel

Tier read_motion. Read-only. Discoverable as an action on the receipts, prompt surfaces.

  • tier read_motion
  • domain surface
  • mutates no
  • arguments 2

Discovery phrases: platform verification panel, show platform verification, show host verification, show linux windows macos host verification, linux windows macos verification, host matrix verification, platform receipts panel

Arguments (2)
NameTypeRequiredDescription
receiptsRootstringnoHost receipts root containing platform verification receipts.
requiredHostsarraynoOptional required host ids to compare against collected receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Platform verification panel returns required hosts, satisfied hosts, missing hosts, failed hosts, and aggregate receipt status.

motion.command.motion.platform.requirements

Link

motion.platform.requirements

Tier read_motion. Read-only. Discoverable as an action on the preview, receipts, prompt surfaces.

  • tier read_motion
  • domain surface
  • mutates no
  • arguments 1

Discovery phrases: check requirements, is ffmpeg installed, why does rendering fail, environment check, missing dependencies, install ffmpeg, prerequisites, doctor, check my setup

Arguments (1)
NameTypeRequiredDescription
operationstring · preview.frame|render.final|quality.checknoScope the answer to the operation you are about to attempt, so a tool you do not need cannot report you as unready. Omit to ask about the whole machine.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Requirements report names each external tool, what it is needed for, and whether it is present.
  2. A missing tool carries platform-specific install commands rather than a raw spawn error.

motion.command.motion.assets.panel

Link

motion.assets.panel

Tier read_motion. Read-only. Discoverable as an action on the assets, prompt surfaces.

  • tier read_motion
  • domain surface
  • mutates no
  • arguments 1

Discovery phrases: show asset panel, asset panel, show package assets, list package assets, show motion assets, show layer asset usage

Arguments (1)
NameTypeRequiredDescription
packageRootstringyesMotion package root directory to read.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Asset panel returns declared assets, layer references, missing assets, hashes, and usage counts.

motion.command.motion.brand.panel

Link

motion.brand.panel

Tier read_motion. Read-only. Discoverable as an action on the brand, prompt surfaces.

  • tier read_motion
  • domain surface
  • mutates no
  • arguments 1

Discovery phrases: show brand pack panel, brand pack panel, show brand panel, show design tokens, show brand tokens, inspect brand kit

Arguments (1)
NameTypeRequiredDescription
packageRootstringyesMotion package root directory to read.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Brand panel returns design-token groups, color tokens, typography tokens, and source provenance.

motion.command.motion.audio.panel

Link

motion.audio.panel

Tier read_motion. Read-only. Discoverable as an action on the timeline, prompt surfaces.

  • tier read_motion
  • domain surface
  • mutates no
  • arguments 3

Discovery phrases: show audio mix panel, audio mix panel, audio panel, show audio panel, inspect audio mix, show resolved audio inputs, show music narration mix, audio export compatibility, check audio export warnings

Arguments (3)
NameTypeRequiredDescription
packageRootstringyesMotion package root to inspect for resolved audio mix inputs.
exportPresetstringnoAlias for preset.
presetstring · exportPresetnoOptional export preset used to report audio compatibility warnings.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Audio panel returns resolved audio inputs, automation counts, track controls, ducking, and export-preset compatibility warnings.

Named value sets used here: exportPreset. Every allowed-value list is enforced on the wire, not merely advertised.

motion.command.motion.media.panel

Link

motion.media.panel

Tier read_motion. Read-only. Discoverable as an action on the assets, timeline, preview, prompt surfaces.

  • tier read_motion
  • domain surface
  • mutates no
  • arguments 3

Discovery phrases: show media panel, media panel, show media readiness panel, media readiness panel, inspect media layers, review package media, check media sources, media layer readiness, show image video audio web layers

Arguments (3)
NameTypeRequiredDescription
packageRootstringyesMotion package root to inspect for image, video, audio, and web media layer readiness.
exportPresetstringnoAlias for preset.
presetstring · exportPresetnoOptional export preset used to report media/audio compatibility warnings.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Media panel returns image, video, audio, and web layer source readiness, trim/loop/playback controls, and export-preset compatibility warnings.

Named value sets used here: exportPreset. Every allowed-value list is enforced on the wire, not merely advertised.

motion.command.motion.storyboard.panel

Link

motion.storyboard.panel

Tier read_motion. Read-only. Discoverable as an action on the receipts, prompt surfaces.

  • tier read_motion
  • domain surface
  • mutates no
  • arguments 5

Discovery phrases: review scripted storyboard before cut handoff, review scripted storyboard, storyboard review panel, show storyboard panel, inspect scripted video storyboard, inspect scripted-video json, review cut generate storyboard, source storyboard review, check storyboard source refs, show storyboard frames

Arguments (5)
NameTypeRequiredDescription
pathstringnoAlias for scriptPath.
scriptobjectnoInline shellx-motion scripted-video document.
scriptPathstringnoPath to a shellx-motion scripted-video JSON document.
storyboardobjectnoAlias for script when called from Cut Generate or prompt storyboard workflows.
storyboardPathstringnoAlias for scriptPath when called from storyboard workflows.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Storyboard panel returns review status, readiness diagnostics, source refs, frame timings, template/engine hints, and compile/Cut follow-up actions without mutating packages.

motion.command.motion.storyboard.graph

Link

motion.storyboard.graph

Tier read_motion. Read-only. Discoverable as an action on the receipts, prompt surfaces.

  • tier read_motion
  • domain surface
  • mutates no
  • arguments 5

Discovery phrases: show storyboard source graph, storyboard source graph, show source graph for storyboard, inspect storyboard provenance graph, content graph for scripted video, show storyboard graph, inspect scripted video graph, show scripted video sources assets templates and engines

Arguments (5)
NameTypeRequiredDescription
pathstringnoAlias for scriptPath.
scriptobjectnoInline shellx-motion scripted-video document.
scriptPathstringnoPath to a shellx-motion scripted-video JSON document.
storyboardobjectnoAlias for script when called from Cut Generate or prompt storyboard workflows.
storyboardPathstringnoAlias for scriptPath when called from storyboard workflows.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Storyboard graph returns source, asset, template, engine, review, sequence nodes/edges, and readiness diagnostics before compile or Cut handoff.

motion.command.motion.capabilities.match

Link

motion.capabilities.match

Tier read_motion. Read-only. Discoverable as an action on the prompt, preview surfaces.

  • tier read_motion
  • domain surface
  • mutates no
  • arguments 7

Discovery phrases: capabilities match, renderer capability match, choose renderer lane, select renderer lane, pick renderer lane, choose renderer lane for mp4 with audio, which renderer lane should I use, explain renderer lane support, check lane capability cards, match motion package to render lane

Arguments (7)
NameTypeRequiredDescription
needsAlphabooleannoWhether the selected lane must preserve alpha.
needsAudiobooleannoWhether the selected lane must handle audio.
needsSubtitlesbooleannoWhether the selected lane must handle subtitles or captions.
outputstringnoRequested output such as png-frame, mp4-h264, mp4-hevc, webm-av1, webm-vp9, gif, cut-plan, or motion-package.
packageRootstringnoOptional Motion package root to match against renderer capability cards.
preferLanestringnoOptional preferred lane used as a tie breaker.
targetstringnoRequested workflow target such as preview, final, batch, cut, canvas, or handoff.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Capability match returns lane cards, output/audio/alpha fit, unsupported features, recommended lane, and frame-to-final pipeline when final encoding needs a frame lane.

motion.command.motion.capabilities.panel

Link

motion.capabilities.panel

Tier read_motion. Read-only. Discoverable as an action on the prompt, preview surfaces.

  • tier read_motion
  • domain surface
  • mutates no
  • arguments 7

Discovery phrases: show renderer capability panel, renderer capability panel, show lane capability cards, show render lane cards, show capabilities panel, inspect renderer lanes, inspect lane support, renderer lane panel

Arguments (7)
NameTypeRequiredDescription
needsAlphabooleannoWhether the selected lane must preserve alpha.
needsAudiobooleannoWhether the selected lane must handle audio.
needsSubtitlesbooleannoWhether the selected lane must handle subtitles or captions.
outputstringnoRequested output such as png-frame, mp4-h264, mp4-hevc, webm-av1, webm-vp9, gif, cut-plan, or motion-package.
packageRootstringnoOptional Motion package root to summarize against renderer capability cards.
preferLanestringnoOptional preferred lane used as a tie breaker.
targetstringnoRequested workflow target such as preview, final, batch, cut, canvas, or handoff.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Capability panel returns grouped lane cards, support badges, package fit, recommended lane, and follow-up match/export actions.

motion.command.motion.export.presets

Link

motion.export.presets

Tier read_motion. Read-only. Discoverable as an action on the preview, prompt surfaces.

  • tier read_motion
  • domain surface
  • mutates no
  • arguments 0

Discovery phrases: show export presets and formats, list export presets, what video formats can motion export, show render presets, export preset metadata, which exports support audio alpha

Takes no arguments.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Export preset response includes extensions, MIME types, codec choices, and audio/alpha support.

motion.command.motion.export.panel

Link

motion.export.panel

Tier read_motion. Read-only. Discoverable as an action on the preview, prompt surfaces.

  • tier read_motion
  • domain surface
  • mutates no
  • arguments 2

Discovery phrases: show export panel, export panel, open export panel, show export cards, choose export format

Arguments (2)
NameTypeRequiredDescription
receiptsRootstringnoOptional trusted host receipt root used to report platform verification coverage.
requiredHostsarraynoHost ids that must be verified, as a string array.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Export panel groups presets with recommendations, badges, and suggested render arguments.

motion.command.motion.export.plan

Link

motion.export.plan

Tier read_motion. Read-only. Discoverable as an action on the preview, prompt, receipts surfaces.

  • tier read_motion
  • domain surface
  • mutates no
  • arguments 9

Discovery phrases: plan transparent overlay export with quality gates, plan export, export plan, plan export preset, choose export preset before render, plan transparent export, plan canvas mp4 export, plan cut timeline export, check export preflight, check export audio alpha impact

Arguments (9)
NameTypeRequiredDescription
needsAlphabooleannoWhether the export must preserve transparency.
needsAudiobooleannoWhether the export must preserve audio.
outputPathstringnoOptional final output path to include in follow-up render arguments.
packageRootstringnoOptional Motion package root to inspect before choosing an export preset.
presetstring · exportPresetnoOptional explicit export preset. If omitted Motion chooses a preset from target and feature needs.
qualityManifestPathstringnoOptional quality manifest path to include in render and quality-check follow-ups.
receiptsRootstringnoOptional receipts root containing platform verification evidence.
requiredHostsarraynoRequired host ids for platform verification status.
targetstringnoRequested delivery target such as Cut, Canvas MP4, transparent overlay, thumbnail, or batch frames.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Export plan explains preset choice, audio/alpha feature impact, deterministic capture preflight, quality gates, platform verification, and render follow-up arguments.

Named value sets used here: exportPreset. Every allowed-value list is enforced on the wire, not merely advertised.

render domain

render commands

Preview frames, final media, batch jobs, quality gates and job queries. 14 commands.

motion.command.motion.preview.frame

Link

motion.preview.frame

Tier render_motion. Mutates. Discoverable as an action on the preview, receipts, prompt surfaces.

  • tier render_motion
  • domain render
  • mutates yes
  • arguments 7

Discovery phrases: preview, show frame, render still, preview it

Arguments (7)
NameTypeRequiredDescription
packageRootstringyesMotion package root to preview.
atMsnumbernoFrame timestamp in milliseconds.
createdAtstringnoDeterministic ISO timestamp for emitted preview receipts.
outDirstringnoDirectory for generated preview artifacts.
outputPathstringnoExplicit preview frame output path.
workflowobjectnoOptional inline deterministic browser workflow, used instead of workflowPath.
workflowPathstringnoOptional deterministic browser workflow JSON path.
  1. Preview receipt includes output frame hash.

motion.command.motion.preview.panel

Link

motion.preview.panel

Tier read_motion. Read-only. Discoverable as an action on the preview, prompt surfaces.

  • tier read_motion
  • domain render
  • mutates no
  • arguments 1

Discovery phrases: show preview player panel, preview player panel, preview player, show preview panel, open preview panel, preview panel

Arguments (1)
NameTypeRequiredDescription
packageRootstringyesMotion package root directory to read.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Preview player panel returns package facts, playhead state, active timeline refs, preview modes, and render follow-ups without rendering.

motion.command.motion.preview.playhead

Link

motion.preview.playhead

Tier render_motion. Mutates. Discoverable as an action on the preview, receipts, prompt surfaces.

  • tier render_motion
  • domain render
  • mutates yes
  • arguments 5

Discovery phrases: preview current playhead, preview playhead, render playhead, show playhead frame, preview timeline playhead

Arguments (5)
NameTypeRequiredDescription
packageRootstringyesMotion package root directory to read.
createdAtstringnoDeterministic ISO timestamp for the emitted receipt.
outDirstringnoDirectory for the rendered frame; a scratch directory when omitted.
outputPathstringnoExplicit output file path for the rendered frame.
receiptsRootstringnoOptional trusted host receipt mirror.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Playhead preview receipt includes timeline state, output frame hash, timestamp, and artifact path.

motion.command.motion.preview.strip

Link

motion.preview.strip

Tier render_motion. Mutates. Discoverable as an action on the preview, receipts, prompt surfaces.

  • tier render_motion
  • domain render
  • mutates yes
  • arguments 7

Discovery phrases: preview strip, show preview strip, thumbnail strip, show timeline thumbnail strip, storyboard strip, show timeline thumbnails

Arguments (7)
NameTypeRequiredDescription
packageRootstringyesMotion package root directory to read.
createdAtstringnoDeterministic ISO timestamp for the emitted receipt.
endMsnumbernoLast sampled time in milliseconds; must be at or after startMs and within the motion duration.
frameCountnumbernoNumber of frames to sample; must be a positive integer of 60 or less.
outDirstringnoDirectory for the rendered strip frames; a scratch directory when omitted.
receiptsRootstringnoOptional trusted host receipt mirror.
startMsnumbernoFirst sampled time in milliseconds; must be within the motion duration.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Preview strip receipt includes per-frame output hashes, timestamps, and artifact paths.

motion.command.motion.render.final

Link

motion.render.final

Tier render_motion. Mutates. Discoverable as an action on the preview, receipts, prompt surfaces.

  • tier render_motion
  • domain render
  • mutates yes
  • arguments 14

Discovery phrases: render mp4, export video, final render, render this lower third as mp4, export png sequence frames, render image sequence, export frame sequence, png sequence export, export current frame as png still, export still frame, render png frame, jpeg frame export, export jpg frame, render final mp4 with a quality manifest, render with quality manifest, quality manifest render

Arguments (14)
NameTypeRequiredDescription
outputPathstringyesFinal media, still-frame, or image-sequence output path.
packageRootstringyesMotion package root to render.
atMsnumbernoTimestamp in milliseconds for still-frame presets.
dryRunbooleannoPlan the render without writing media.
frameLanestring · browsernoFrame rasterizer lane. The Debug API accepts only browser. The CLI's separate --lane flag selects the delivery lane (native | ffmpeg) and does not accept browser; its --frame-lane flag is this argument.
framesDirstringnoOptional trusted scratch directory for FFmpeg frame extraction.
jobIdstringnoName this job so a host can query it with motion.job.get while the render runs. Omitted, Motion mints one and returns it as jobId on the result. 1..128 chars of letters, digits, dot, underscore, colon or hyphen.
manifestPathstringnoAlias for qualityManifestPath.
minUniqueFrameHashesnumbernoMinimum unique rendered frame hashes for motion-quality gating.
presetstring · exportPresetnoExport preset for the rendered output.
qualityManifestPathstringnoOptional shellx-motion/quality-manifest@1 path to gate final output quality.
receiptsRootstringnoHost receipts root for render and optional quality-check receipts.

2 further optional arguments: workflow, workflowPath. The complete contract, including descriptions and allowed values, is schemas/debug.json.

  1. Render receipt includes output file hash, codec, duration, and dimensions.
  2. Image-sequence render receipts include output frame directory, frame pattern, frame count, and PNG codec facts.
  3. Still-frame render receipts include output image path, timestamp, codec, and image artifact evidence.
  4. Optional quality manifests gate final renders and record quality-check status in render receipts.
  5. Render status returns queue-style job state and progress derived from host receipts.

Named value sets used here: exportPreset. Every allowed-value list is enforced on the wire, not merely advertised.

motion.command.motion.render.batch

Link

motion.render.batch

Tier render_motion. Mutates. Discoverable as an action on the preview, receipts, prompt surfaces.

  • tier render_motion
  • domain render
  • mutates yes
  • arguments 14

Discovery phrases: render csv rows with webm export preset, batch render data rows, render batch rows, data driven render, spreadsheet render, render json rows, batch export preset

Arguments (14)
NameTypeRequiredDescription
outDirstringyesDirectory for expanded row packages, render outputs, and batch receipts.
packageRootstringyesMotion package root containing manifest, motion, assets, and optional data rows.
dryRunbooleannoPlan expanded row packages and receipts without rendering media.
jobIdstringnoName this job so a host can query it with motion.job.get while the render runs. Omitted, Motion mints one and returns it as jobId on the result. 1..128 chars of letters, digits, dot, underscore, colon or hyphen.
manifestPathstringnoAlias for qualityManifestPath.
minUniqueFrameHashesnumbernoMinimum unique rendered frame hashes for motion-quality gating.
presetstring · exportPresetnoExport preset for the rendered output.
qualityManifestPathstringnoOptional shellx-motion/quality-manifest@1 path to gate each row output.
resumebooleannoReuse completed row outputs when idempotency evidence still matches.
rowIdstringnoSingle data row ID to render; normalized the same way as Motion data rows.
rowIdsarraynoSubset of data row IDs to render; preserves source row order.
rowsPathstringnoOptional external CSV or JSON data rows file.

2 further optional arguments: workflow, workflowPath. The complete contract, including descriptions and allowed values, is schemas/debug.json.

  1. Batch render receipt includes per-row output paths, preset, and statuses.
  2. Each row render receipt includes final media facts for the selected preset.
  3. Render status returns queue-style job state and progress derived from host receipts.
  4. Render status and queue rows expose compact quality-manifest gate status when present.

Named value sets used here: exportPreset. Every allowed-value list is enforced on the wire, not merely advertised.

motion.command.motion.render.cancel

Link

motion.render.cancel

Tier render_motion. Mutates. Discoverable as an action on the preview, receipts, prompt surfaces.

  • tier render_motion
  • domain render
  • mutates yes
  • arguments 3

Discovery phrases: cancel render job, stop render job, cancel export, stop export, cancel queued render

Arguments (3)
NameTypeRequiredDescription
receiptIdstringyesReceipt id of the job to act on.
receiptsRootstringyesTrusted host receipt root holding the job's receipts.
reasonstringnoOptional human-readable reason recorded in the control receipt.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Render cancel receipt references the target job and render status marks it cancelled.

motion.command.motion.render.retry

Link

motion.render.retry

Tier render_motion. Mutates. Discoverable as an action on the preview, receipts, prompt surfaces.

  • tier render_motion
  • domain render
  • mutates yes
  • arguments 3

Discovery phrases: retry failed render, retry render job, rerun failed export, retry export, rerun render

Arguments (3)
NameTypeRequiredDescription
receiptIdstringyesReceipt id of the job to act on.
receiptsRootstringyesTrusted host receipt root holding the job's receipts.
reasonstringnoOptional human-readable reason recorded in the control receipt.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Render retry receipt references the source job and render status exposes the retry as queued.

motion.command.motion.render.status

Link

motion.render.status

Tier read_motion. Read-only. Discoverable as an action on the preview, receipts, prompt surfaces.

  • tier read_motion
  • domain render
  • mutates no
  • arguments 1

Discovery phrases: render status, check render, job status, export progress

Arguments (1)
NameTypeRequiredDescription
receiptsRootstringnoTrusted host receipt root to read render job state from.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Render status returns queue-style job state and progress derived from host receipts.

motion.command.motion.render.queue

Link

motion.render.queue

Tier read_motion. Read-only. Discoverable as an action on the preview, receipts, prompt surfaces.

  • tier read_motion
  • domain render
  • mutates no
  • arguments 1

Discovery phrases: show render queue, render queue panel, render queue, queue panel, export queue, show export queue

Arguments (1)
NameTypeRequiredDescription
receiptsRootstringnoHost receipts root to inspect for render jobs.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Render queue panel returns job state, progress, control receipts, and available cancel/retry actions.
  2. Queued and running render queue rows include render-job handoff metadata for future leased runners.
  3. Render status and queue rows expose compact quality-manifest gate status when present.

motion.command.motion.job.get

Link

motion.job.get

Tier read_motion. Read-only. Discoverable as an action on the preview, receipts, prompt surfaces.

  • tier read_motion
  • domain render
  • mutates no
  • arguments 2

Discovery phrases: check job status, is my render done, job status, get job, check render progress, poll job, what is my job doing, render still running, job by id, track render

Arguments (2)
NameTypeRequiredDescription
jobIdstringyesThe job to read. Either the id returned by the render, or the id you supplied when starting it.
scopestring · own|allnoWhose jobs to read. "all" needs a host that granted cross-caller visibility and is refused otherwise.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Job status reports lifecycle pending, running or ended, and an outcome only once it has ended.
  2. A job that does not exist, has expired, or belongs to another caller is reported as a typed query error rather than a job state.

motion.command.motion.job.list

Link

motion.job.list

Tier read_motion. Read-only. Discoverable as an action on the preview, receipts, prompt surfaces.

  • tier read_motion
  • domain render
  • mutates no
  • arguments 2

Discovery phrases: list my jobs, list jobs, what is running, show running renders, active jobs, job list, recent jobs, show my renders, in flight work

Arguments (2)
NameTypeRequiredDescription
limitnumbernoMaximum jobs to return. Live work is listed first, then finished work newest first.
scopestring · own|allnoWhose jobs to list. "all" needs a host that granted cross-caller visibility and is refused otherwise.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Job list returns this caller's live work first, then its finished work newest first.
  2. Another caller's jobs never appear unless the host granted cross-caller visibility.

motion.command.motion.quality.panel

Link

motion.quality.panel

Tier read_motion. Read-only. Discoverable as an action on the preview, receipts, prompt surfaces.

  • tier read_motion
  • domain render
  • mutates no
  • arguments 5

Discovery phrases: show quality manifest panel, show quality panel, inspect visual regression manifest, review quality gates, quality manifest panel, quality gate summary

Arguments (5)
NameTypeRequiredDescription
qualityManifestPathstringyesQuality manifest JSON path to inspect.
inputPathstringnoOptional final media path used to seed quality-check follow-up commands.
manifestPathstringnoAlias for qualityManifestPath.
packageRootstringnoOptional Motion package root for package and render follow-up metadata.
presetstring · exportPresetnoOptional export preset used for render/export follow-up commands.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Quality panel summarizes manifest samples, baselines, regions, audio policy, and quality-check follow-up commands.

Named value sets used here: exportPreset. Every allowed-value list is enforced on the wire, not merely advertised.

motion.command.motion.quality.check

Link

motion.quality.check

Tier render_motion. Mutates. Discoverable as an action on the preview, receipts, prompt surfaces.

  • tier render_motion
  • domain render
  • mutates yes
  • arguments 24

Discovery phrases: run quality check on rendered video, run quality check, quality check, check rendered video quality, inspect video quality, verify output quality, visual quality check

Arguments (24)
NameTypeRequiredDescription
inputPathstringyesRendered media file to check.
atMsnumbernoTime to sample the frame from, in milliseconds.
baselinePathstringnoOptional baseline image for the pixel-difference checks.
expectAudiobooleannoFail when the media carries no audio stream.
expectHeightnumbernoRequired output height in pixels.
expectWidthnumbernoRequired output width in pixels.
framePathstringnoOptional pre-extracted frame to analyse instead of sampling inputPath.
manifestPathstringnoOptional quality manifest supplying the thresholds.
maxAudioLoudnessLufsnumbernoMaximum integrated loudness in LUFS; must be at or above minAudioLoudnessLufs.
maxAudioLoudnessRangeLunumbernoMaximum loudness range in LU.
maxAudioPeakDbnumbernoMaximum sample peak in dBFS.
maxAudioTruePeakDbtpnumbernoMaximum true peak in dBTP.

12 further optional arguments: maxChangedPixels, maxMeanDiff, minAudioLoudnessLufs, minBrightPixels, minEdgePixels, minNonTransparentPixels, minPsnrDb, minSsim, minTransparentPixels, outDir, packageId, receiptsRoot. The complete contract, including descriptions and allowed values, is schemas/debug.json.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Quality check receipt includes representative-frame visual and alpha facts.

agent domain

agent commands

Action discovery, planning, prompt execution and agent health. 12 commands.

motion.command.motion.prompt.queue

Link

motion.prompt.queue

Tier read_motion. Read-only. Discoverable as an action on the receipts, prompt surfaces.

  • tier read_motion
  • domain agent
  • mutates no
  • arguments 1

Discovery phrases: show prompt queue, prompt queue panel, prompt queue, agent job queue, show agent queue, local agent queue

Arguments (1)
NameTypeRequiredDescription
receiptsRootstringnoHost receipts root to inspect for prompt and local-agent jobs.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Prompt queue panel returns local-agent job state, transcript links, and available cancel/retry actions.
  2. Queued and running prompt queue rows include prompt-job handoff metadata for future local-agent runners.

motion.command.motion.prompt.cancel

Link

motion.prompt.cancel

Tier draft_motion. Mutates. Discoverable as an action on the receipts, prompt surfaces.

  • tier draft_motion
  • domain agent
  • mutates yes
  • arguments 3

Discovery phrases: cancel prompt job, stop prompt job, cancel queued prompt, stop local agent prompt, cancel agent job

Arguments (3)
NameTypeRequiredDescription
receiptIdstringyesQueued or running prompt job receipt id to cancel.
receiptsRootstringyesHost receipts root containing the target prompt job receipt.
reasonstringnoOptional cancellation reason for receipt evidence.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Prompt cancel receipt references the target prompt job and prompt queue marks it cancelled.

motion.command.motion.prompt.retry

Link

motion.prompt.retry

Tier draft_motion. Mutates. Discoverable as an action on the receipts, prompt surfaces.

  • tier draft_motion
  • domain agent
  • mutates yes
  • arguments 3

Discovery phrases: retry failed prompt, retry prompt job, rerun failed prompt, retry local agent prompt, retry agent job

Arguments (3)
NameTypeRequiredDescription
receiptIdstringyesFailed or cancelled prompt job receipt id to retry.
receiptsRootstringyesHost receipts root containing the source prompt job receipt.
reasonstringnoOptional retry reason for receipt evidence.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Prompt retry receipt references the source prompt job and exposes queued prompt-job handoff metadata.

motion.command.motion.actions.find

Link

motion.actions.find

Tier read_motion. Read-only. Discoverable as an action on the prompt surface.

  • tier read_motion
  • domain agent
  • mutates no
  • arguments 1

Discovery phrases: find action, what can motion do, discover action

Arguments (1)
NameTypeRequiredDescription
requeststringyesAction id or natural-language request to match against the action catalog.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Returns a matching action id or null.

motion.command.motion.actions.guide

Link

motion.actions.guide

Tier read_motion. Read-only. No action entry — call it directly.

  • tier read_motion
  • domain agent
  • mutates no
  • arguments 1
  • action entry none
Arguments (1)
NameTypeRequiredDescription
requeststringyesAction id or natural-language request. The plan returns each step's call with its argument contract.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

motion.command.motion.actions.plan

Link

motion.actions.plan

Tier read_motion. Read-only. No action entry — call it directly.

  • tier read_motion
  • domain agent
  • mutates no
  • arguments 1
  • action entry none
Arguments (1)
NameTypeRequiredDescription
requeststringyesAction id or natural-language request to plan a command sequence for.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

motion.command.motion.actions.panel

Link

motion.actions.panel

Tier read_motion. Read-only. Discoverable as an action on the prompt surface.

  • tier read_motion
  • domain agent
  • mutates no
  • arguments 0

Discovery phrases: show prompt action panel, prompt action panel, action panel, show action panel, open action panel, show action catalog, show prompt tools

Takes no arguments.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Action panel returns grouped actions, permission counts, prompt commands, and suggested prompt-run follow-ups.

motion.command.motion.agent.panel

Link

motion.agent.panel

Tier read_motion. Read-only. Discoverable as an action on the prompt surface.

  • tier read_motion
  • domain agent
  • mutates no
  • arguments 0

Discovery phrases: show local cli agent readiness panel, show agent readiness panel, agent readiness panel, local cli agent panel, show cli subscription agent policy, show prompt agent policy, inspect local agent adapters

Takes no arguments.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Agent panel returns default local CLI selection policy, adapter command shapes, safety guarantees, receipt coverage, and prompt follow-ups without probing or mutating packages.

motion.command.motion.agent.health

Link

motion.agent.health

Tier read_motion. Read-only. Discoverable as an action on the prompt surface.

  • tier read_motion
  • domain agent
  • mutates no
  • arguments 0

Discovery phrases: check local cli agent health, agent health, check agent health, local agent readiness, codex claude grok readiness, show cli subscription agent status

Takes no arguments.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Agent health returns local CLI subscription adapter readiness, transport, billing mode, and unavailable reasons without mutating packages.

motion.command.motion.agent.transcript

Link

motion.agent.transcript

Tier read_motion. Read-only. Discoverable as an action on the receipts, prompt surfaces.

  • tier read_motion
  • domain agent
  • mutates no
  • arguments 4

Discovery phrases: show agent transcript, agent transcript, prompt transcript, transcript panel, show prompt run transcript, inspect agent messages

Arguments (4)
NameTypeRequiredDescription
receiptsRootstringyesTrusted host receipt root to read.
limitnumbernoMaximum transcript entries to return; must be a non-negative integer.
receiptIdstringnoPrompt receipt id whose transcript should be read.
receiptPathstringnoPrompt receipt path; must resolve inside receiptsRoot.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Agent transcript digest returns prompt and agent receipt links with redacted transcript messages.

motion.command.motion.agent.revision.plan

Link

motion.agent.revision.plan

Tier write_local. Mutates. Discoverable as an action on the receipts, prompt, review surfaces.

  • tier write_local
  • domain agent
  • mutates yes
  • arguments 16

Discovery phrases: create agent revision plan, critique render and revise, make revision plan from quality receipt, review contact sheet and quality receipt, plan prompt revision, agent critique revise loop

Arguments (16)
NameTypeRequiredDescription
packageIdstringyesMotion package id the revision plan applies to.
contactSheetobjectnoInline contact-sheet critique evidence with status and notes.
contactSheetPathstringnoPath to a contact-sheet critique JSON file.
createdAtstringnoOptional deterministic ISO timestamp for the revision plan.
outputPathstringnoAlias for planPath.
planIdstringnoOptional deterministic revision plan id.
planPathstringnoOptional output path for the written revision plan JSON.
qualityReceiptobjectnoInline shellx-motion receipt@1 quality-check receipt.
qualityReceiptIdstringnoQuality receipt id to include as critique evidence.
qualityReceiptIdsarraynoQuality receipt ids to include as critique evidence.
qualityReceiptPathstringnoPath to a quality receipt JSON file.
qualityReceiptPathsarraynoPaths to quality receipt JSON files.

4 further optional arguments: qualityReceipts, receiptsRoot, sourceJobId, templateId. The complete contract, including descriptions and allowed values, is schemas/debug.json.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Agent revision plan returns quality/contact-sheet findings, exact package/template ids, proposal-only mutation policy, and prompt-run follow-up actions before package mutation.

motion.command.motion.prompt.run

Link

motion.prompt.run

Tier draft_motion. Mutates. No action entry — call it directly.

  • tier draft_motion
  • domain agent
  • mutates yes
  • arguments 9
  • action entry none
Arguments (9)
NameTypeRequiredDescription
requeststringyesNatural-language instruction handed to the local agent.
agentIdstringnoAgent adapter to run; the default adapter when omitted.
cwdstringnoWorking directory for the agent; must be inside a trusted prompt working root.
executeAgentCommandsbooleannoExecute the debug commands the agent proposes. Without this the run only records proposals and changes nothing.
packageIdstringnoPackage id recorded in the prompt receipt.
rawRequestDeleteAfterstringnoISO timestamp after which receipt reads redact the raw prompt and rewrite the stored receipt without it. Copies made before the deadline are not reached.
rawRequestPurposestring · user_requested_replay|debuggingnoDeclared purpose for retaining the raw prompt.
receiptsRootstringnoOptional trusted host receipt mirror for the prompt receipt.
retainRawRequestbooleannoKeep the raw prompt text in the receipt; requires rawRequestDeleteAfter and rawRequestPurpose.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

workspace domain

workspace commands

Package lifecycle: create, validate, inspect, patch, archive and template application. 11 commands.

motion.command.motion.packages.browse

Link

motion.packages.browse

Tier read_motion. Read-only. Discoverable as an action on the packages, prompt surfaces.

  • tier read_motion
  • domain workspace
  • mutates no
  • arguments 5

Discovery phrases: browse motion packages, package browser, show package browser, list motion packages, show motion packages, open package browser

Arguments (5)
NameTypeRequiredDescription
packageBrowserRootstringnoAlternate name for root.
packageRootstringnoSingle Motion package root to include.
packageRootsarraynoMotion package roots to include, as a string array.
packagesRootstringnoAlternate name for root.
rootstringnoDirectory to scan for Motion packages. One of root, packageRoot, or packageRoots is required.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Package browser returns package cards, template availability, asset counts, brand provenance, and skipped-package warnings.

motion.command.motion.package.create

Link

motion.package.create

Tier write_local. Mutates. Discoverable as an action on the packages, preview surfaces.

  • tier write_local
  • domain workspace
  • mutates yes
  • arguments 8

Discovery phrases: create package, create new package, create new empty motion package, new motion package, create empty package, start a new package, init package, initialise package, make a new package, scaffold package, blank package, start from scratch, create a motion project, new project, bootstrap package, first step

Arguments (8)
NameTypeRequiredDescription
packageRootstringyesEmpty or non-existent directory to create the package in.
backgroundstringnoDocument background. Must be a colour Motion renders: hex (#rgb, #rgba, #rrggbb, #rrggbbaa), rgb()/rgba()/hsl()/hsla(), transparent, currentColor, or one of these names: black, white, red, green, blue, navy, yellow, cyan, aqua, magenta, fuchsia, gray, grey, silver, maroon, purple, olive, lime, teal, orange, pink, brown.
durationMsnumbernoTotal duration in milliseconds. Bounded with fps by the render budget: at most 36000 frames and 80000000000 pixel-frames, so at 30 fps the longest package is 1200000ms.
emptybooleannoStart with no layers. Off by default because a blank frame is indistinguishable from a failed render.
fpsnumbernoFrames per second, 1 to 120.
heightnumbernoFrame height in pixels, 1 to 7680. Width x height may not exceed 33177600 pixels (7680x4320).
namestringnoHuman-readable name, at most 128 characters; also seeds the readable half of the package and motion ids.
widthnumbernoFrame width in pixels, 1 to 7680. Width x height may not exceed 33177600 pixels (7680x4320).

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. A created package validates and renders as-is, so the next command can be a real edit.
  2. Creating into a non-empty directory is refused rather than merged, so an existing package is never half-overwritten.

motion.command.motion.package.validate

Link

motion.package.validate

Tier read_motion. Read-only. Discoverable as an action on the packages, receipts surfaces.

  • tier read_motion
  • domain workspace
  • mutates no
  • arguments 1

Discovery phrases: validate package, check package, is my package valid, verify package, package validation, check motion.json, lint package, structural check

Arguments (1)
NameTypeRequiredDescription
packageRootstringyesMotion package root to check for structural validity.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Validation reports identity, layer count, dimensions, hosts and lanes without rendering.
  2. An invalid package names the offending field rather than failing at render time.

motion.command.motion.receipts.list

Link

motion.receipts.list

Tier read_motion. Read-only. No action entry — call it directly.

  • tier read_motion
  • domain workspace
  • mutates no
  • arguments 1
  • action entry none
Arguments (1)
NameTypeRequiredDescription
receiptsRootstringyesTrusted host receipt root to read.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

motion.command.motion.receipts.read

Link

motion.receipts.read

Tier read_motion. Read-only. No action entry — call it directly.

  • tier read_motion
  • domain workspace
  • mutates no
  • arguments 3
  • action entry none
Arguments (3)
NameTypeRequiredDescription
receiptIdstringnoReceipt id to look up inside receiptsRoot.
receiptPathstringnoReceipt file path; must resolve inside receiptsRoot.
receiptsRootstringnoTrusted host receipt root. Required with receiptId, and required to bound receiptPath.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

motion.command.motion.receipts.panel

Link

motion.receipts.panel

Tier read_motion. Read-only. Discoverable as an action on the receipts, prompt surfaces.

  • tier read_motion
  • domain workspace
  • mutates no
  • arguments 2

Discovery phrases: show receipt panel, receipt panel, receipts panel, receipt summary, show receipt summary, summarize receipts

Arguments (2)
NameTypeRequiredDescription
receiptsRootstringyesTrusted host receipt root to read.
limitnumbernoMaximum receipts to return; must be a non-negative integer.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Receipt panel summary returns counts, recent receipts, warnings, failures, and artifact links.
  2. Receipt panel summaries expose compact quality-manifest gate status on relevant receipts.

motion.command.motion.package.archive

Link

motion.package.archive

Tier write_local. Mutates. Discoverable as an action on the receipts, prompt surfaces.

  • tier write_local
  • domain workspace
  • mutates yes
  • arguments 3

Discovery phrases: package archive, motion package archive, portable package archive, export package archive, export portable package archive, make shellxmotion package, create shellxmotion archive

Arguments (3)
NameTypeRequiredDescription
archivePathstringyesDestination path for the portable .shellxmotion archive.
packageRootstringyesMotion package root directory to read.
receiptPathstringnoOptional explicit path for the emitted archive receipt.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Package archive receipt includes archive path, file count, deterministic hash, and archived package file hashes.

motion.command.motion.package.extract

Link

motion.package.extract

Tier write_local. Mutates. Discoverable as an action on the receipts, prompt surfaces.

  • tier write_local
  • domain workspace
  • mutates yes
  • arguments 3

Discovery phrases: package extract, extract package archive, extract shellxmotion package archive, import shellxmotion package, restore portable package archive, unpack motion package archive

Arguments (3)
NameTypeRequiredDescription
archivePathstringyesPortable .shellxmotion archive to extract.
packageRootstringyesTrusted output Motion package directory.
receiptPathstringnoOptional package archive extraction receipt path.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Package extract receipt includes package root, extracted file count, archive hash, and validation result.

motion.command.motion.review.html.bundle

Link

motion.review.html.bundle

Tier write_local. Mutates. Discoverable as an action on the receipts, preview, prompt surfaces.

  • tier write_local
  • domain workspace
  • mutates yes
  • arguments 4

Discovery phrases: review html bundle, html review bundle, export review html, export review html bundle, make review bundle, client review bundle, share review html

Arguments (4)
NameTypeRequiredDescription
outDirstringyesTrusted empty output directory for the portable review HTML bundle.
packageRootstringnoOptional Motion package root for package summary metadata.
receiptsRootstringnoHost receipts root to collect render, batch, quality, and connector evidence.
titlestringnoOptional review title shown in the generated HTML.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Review HTML bundle includes public-safe artifact links and quality-gate summaries; its receipt records HTML path, copied artifacts, receipt count, and quality-gate counts.

motion.command.motion.support.bundle

Link

motion.support.bundle

Tier write_local. Mutates. Discoverable as an action on the receipts, prompt surfaces.

  • tier write_local
  • domain workspace
  • mutates yes
  • arguments 3

Discovery phrases: support bundle, debug bundle, collect diagnostics, export support data

Arguments (3)
NameTypeRequiredDescription
outDirstringyesTrusted empty output directory for the support bundle.
packageRootstringnoOptional Motion package root to include in diagnostics.
receiptsRootstringnoOptional host receipts root to summarize.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Support bundle lists diagnostics, receipts, and platform verification summaries without secret material.

motion.command.motion.package.patch

Link

motion.package.patch

Tier edit_motion. Mutates. Discoverable as an action on the timeline, templateInspector, prompt surfaces.

  • tier edit_motion
  • domain workspace
  • mutates yes
  • arguments 5

Discovery phrases: edit package, change template, update motion

Arguments (5)
NameTypeRequiredDescription
outDirstringyesEmpty or absent output directory, outside packageRoot, that receives the edited package copy.
packageRootstringyesSource Motion package root; never modified in place.
patcharrayyesJSON-Patch style operations applied to the Motion document, each { op, path, value? } with a leading-slash pointer path.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror; the receipt is also written into outDir/receipts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Package diff receipt includes changed paths and input hashes.

integration domain

integration commands

Bounded host interchange with ShellX Cut, Design Studio and importers and exporters. 10 commands.

motion.command.motion.connector.panel

Link

motion.connector.panel

Tier read_motion. Read-only. Discoverable as an action on the prompt, preview, receipts surfaces.

  • tier read_motion
  • domain integration
  • mutates no
  • arguments 0

Discovery phrases: show connector readiness panel for cut and canvas, show connector panel, connector panel, connector readiness panel, show cut canvas connectors, inspect connector workflows, review connector handoffs, list motion connectors, show canvas cut connector capabilities

Takes no arguments.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Connector panel lists Canvas, Cut Generate, scripted-video, source, and template connector workflows with required inputs, render behavior, receipts, quality gates, and Cut handoff support.

motion.command.motion.canvas.package

Link

motion.canvas.package

Tier render_motion. Mutates. Discoverable as an action on the prompt, preview, receipts surfaces.

  • tier render_motion
  • domain integration
  • mutates yes
  • arguments 8

Discovery phrases: package this canvas frame for motion, package canvas frame, canvas package, create motion package from canvas, convert canvas frame to motion package

Arguments (8)
NameTypeRequiredDescription
packageDirstringyesEmpty or absent output directory for the generated Motion package.
canvasSelectionPathstringnoCanvas frame-selection JSON path. Required unless selection is given inline.
createdAtstringnoDeterministic ISO timestamp for the emitted receipt.
createdBystringnoOptional attribution recorded in the emitted receipt.
receiptsRootstringnoOptional trusted host receipt mirror.
selectedFrameIdstringnoFrame to package when the selection carries several.
selectionobjectnoInline Canvas frame-selection document, in place of canvasSelectionPath. Accepted schema ids: shellx-motion/canvas-frame-selection@1, shellx-canvas/frame-selection@1 (the canonical shellx-motion id additionally requires integration and identity blocks). Required fields — fixture: schema, selectedFrameId, project, brand, frames, imageEditorOutputs; project: id, name; brand: tokens; each frame: id, name, durationMs, fps, width, height, layers; each layer: id, kind, startMs, durationMs. Accepted layer kinds: adjustment, audio, camera, caption, environment, image, particles, scene3d, shader, shape, text, video, web. Rectangles, ellipses and stars are kind "shape" with a shape field: {"kind":"shape","shape":"rect"}. There is no "rect", "ellipse" or "circle" layer kind. Minimal working example: {"schema":"shellx-canvas/frame-selection@1","selectedFrameId":"frame_intro","project":{"id":"demo","name":"Demo"},"brand":{"tokens":{}},"frames":[{"id":"frame_intro","name":"Intro","durationMs":1000,"fps":30,"width":1920,"height":1080,"background":"#f8fafc","layers":[{"id":"panel","kind":"shape","shape":"rect","startMs":0,"durationMs":1000,"transform":{"x":100,"y":100,"width":600,"height":300,"opacity":1},"style":{"fill":"#2563eb"}}]}],"imageEditorOutputs":[]}. A rejected document returns every problem at once in result.problems, and this same contract in result.contract.
sourceRootstringnoRoot used to resolve selection asset paths; the selection file's directory when omitted.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Canvas package receipt includes source frame hash and resource catalog path.

motion.command.motion.canvas.bridge_export

Link

motion.canvas.bridge_export

Tier write_local. Mutates. Discoverable as an action on the prompt, receipts surfaces.

  • tier write_local
  • domain integration
  • mutates yes
  • arguments 10

Discovery phrases: export canvas bridge frame selection, canvas bridge export, bridge canvas frame to motion, make canvas frame selection json, export canvas checkout frame

Arguments (10)
NameTypeRequiredDescription
canvasRootstringyesTrusted shellx-canvas checkout root containing app/server/motion-package.mjs.
outPathstringyesFrame-selection JSON path to write.
durationMsnumbernoDefault duration for the generated frame selection.
fpsnumbernoDefault frame rate for the generated frame selection.
frameNamestringnoFrame name to request from the Canvas bridge.
generatedAtstringnoDeterministic ISO timestamp for the bridge selection and receipt.
pathstringnoAlias for outPath.
projectNamestringnoProject name to request from the Canvas bridge.
selectedIdsarraynoOptional selected Canvas node ids to export.
targetstringnoBridge export target label for Canvas provenance.
  1. Canvas bridge export receipt includes trusted bridge path and frame-selection artifact evidence.

motion.command.motion.browser.workflow.capture

Link

motion.browser.workflow.capture

Tier render_motion. Mutates. Discoverable as an action on the preview, receipts, prompt surfaces.

  • tier render_motion
  • domain integration
  • mutates yes
  • arguments 12

Discovery phrases: capture browser workflow with replay trace, browser workflow replay, deterministic browser capture, record browser workflow trace, capture website video frame with workflow

Arguments (12)
NameTypeRequiredDescription
packageRootstringyesMotion package root to capture through the deterministic browser lane.
atMsnumbernoFrame timestamp in milliseconds.
catalogPathstringnoOptional browser workflow catalog path for drift evidence.
failOnDriftbooleannoReturn an error when catalog drift is detected.
outDirstringnoDirectory for captured frame, trace, catalog, and receipt artifacts.
outputPathstringnoExplicit browser-captured frame output path.
recordingFramesDirstringnoOptional directory for sampled browser recording frames.
recordingManifestPathstringnoOptional path for a sampled deterministic browser recording manifest.
recordingSampleCountnumbernoNumber of deterministic frame samples to include in the recording manifest. Capped because each sample is a browser render written to disk.
workflowobjectnoInline shellx-motion/browser-workflow@1 replay plan.
workflowCatalogPathstringnoAlias for catalogPath.
workflowPathstringnoPath to a shellx-motion/browser-workflow@1 replay plan.
  1. Browser capture receipt includes a redacted per-step workflow trace artifact.
  2. Workflow trace omits typed text while preserving step status and selectors.
  3. Optional workflow catalog records baseline/latest output hashes and drift status for replay diagnostics.

motion.command.motion.connector.canvas_to_mp4

Link

motion.connector.canvas_to_mp4

Tier render_motion. Mutates. Discoverable as an action on the prompt, preview, receipts surfaces.

  • tier render_motion
  • domain integration
  • mutates yes
  • arguments 4

Discovery phrases: export this canvas frame to mp4 without cut, canvas frame to mp4, canvas mp4 export, export canvas as video, canvas independent mp4, canvas export without cut

Arguments (4)
NameTypeRequiredDescription
canvasSelectionPathstringyesCanvas frame-selection JSON exported by Canvas or motion.canvas.bridge_export.
outDirstringyesTrusted output directory for the Motion package, render artifacts, and connector receipt.
dryRunRenderbooleannoPlan the render without encoding media.
presetstring · exportPresetnoExport preset for the rendered output.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Canvas MP4 connector receipt includes package, render, and resource catalog paths.

Named value sets used here: exportPreset. Every allowed-value list is enforced on the wire, not merely advertised.

motion.command.motion.connector.canvas_to_cut

Link

motion.connector.canvas_to_cut

Tier write_local. Mutates. Discoverable as an action on the prompt, receipts surfaces.

  • tier write_local
  • domain integration
  • mutates yes
  • arguments 5

Discovery phrases: send this canvas frame to cut timeline, canvas to cut, send canvas to cut, canvas frame into cut, apply canvas export to cut, canvas cut connector

Arguments (5)
NameTypeRequiredDescription
canvasSelectionPathstringyesCanvas frame-selection JSON exported by Canvas or motion.canvas.bridge_export.
outDirstringyesTrusted output directory for package, render, Cut import plan, and connector receipt artifacts.
createdAtstringnoDeterministic ISO timestamp for connector receipts and package provenance.
cutImportModestringnoCut import mode, such as rendered_media or editable_lowering.
dryRunRenderbooleannoPlan required renders without encoding media.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Connector receipt includes package, render, and Cut import plan paths.

motion.command.motion.connector.script_to_cut

Link

motion.connector.script_to_cut

Tier write_local. Mutates. Discoverable as an action on the prompt, receipts surfaces.

  • tier write_local
  • domain integration
  • mutates yes
  • arguments 7

Discovery phrases: send scripted video json to cut without canvas, script to cut, scripted video to cut, scripted video json to cut, send scripted video to cut, render scripted video to cut timeline, scripted storyboard to cut timeline

Arguments (7)
NameTypeRequiredDescription
outDirstringyesTrusted output directory for package, preview, render, Cut import plan, and connector receipt artifacts.
createdAtstringnoDeterministic ISO timestamp for connector receipts and package provenance.
cutImportModestringnoCut import mode, such as rendered_media or editable_lowering.
dryRunRenderbooleannoPlan required renders without encoding media.
scriptobjectnoInline shellx-motion scripted-video document.
scriptPathstringnoPath to a shellx-motion scripted-video JSON document.
storyboardobjectnoAlias for script when called from Cut Generate workflows.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Script-to-Cut connector receipt includes script, render, quality, and Cut import plan evidence.

motion.command.motion.connector.source_to_cut

Link

motion.connector.source_to_cut

Tier write_local. Mutates. Discoverable as an action on the prompt, receipts surfaces.

  • tier write_local
  • domain integration
  • mutates yes
  • arguments 10

Discovery phrases: source markdown to cut timeline without canvas, source to cut, source to cut timeline, import source to cut, send source storyboard to cut, turn imported source into cut video

Arguments (10)
NameTypeRequiredDescription
outDirstringyesTrusted output directory for storyboard, package, preview, render, Cut import plan, and connector receipt artifacts.
sourcePathstringyesPath to imported source Markdown from motion.source.import or an equivalent trusted source document.
createdAtstringnoDeterministic ISO timestamp for connector receipts and package provenance.
cutImportModestringnoCut import mode, such as rendered_media or editable_lowering.
dryRunRenderbooleannoPlan required renders without encoding media.
fpsnumbernoStoryboard and Motion package frame rate.
frameDurationMsnumbernoDuration for each generated storyboard frame.
heightnumbernoStoryboard and Motion package height.
maxFramesnumbernoMaximum review-required storyboard frames to derive from the source.
widthnumbernoStoryboard and Motion package width.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Source-to-Cut connector receipt includes source Markdown, source refs, storyboard, render evidence, and Cut import plan path.
  2. Quality check receipt includes representative-frame visual and alpha facts.

motion.command.motion.connector.cut_generate_to_cut

Link

motion.connector.cut_generate_to_cut

Tier write_local. Mutates. Discoverable as an action on the prompt, receipts surfaces.

  • tier write_local
  • domain integration
  • mutates yes
  • arguments 7

Discovery phrases: apply cut generate scripted video to cut timeline, cut generate to cut, cut generate apply, apply generated scripted video to cut, cut generate rendered video to timeline

Arguments (7)
NameTypeRequiredDescription
outDirstringyesTrusted output directory for package, preview, render, Cut import plan, and connector receipt artifacts.
createdAtstringnoDeterministic ISO timestamp for connector receipts and package provenance.
cutImportModestringnoCut import mode, such as rendered_media or editable_lowering.
dryRunRenderbooleannoPlan required renders without encoding media.
scriptobjectnoInline scripted-video document emitted by Cut Generate.
scriptPathstringnoPath to a Cut Generate scripted-video JSON document.
storyboardobjectnoAlias for script when called from storyboard prompts.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Cut Generate connector receipt includes script, render, quality, and Cut import plan evidence.
  2. Render and quality-check receipts include output media facts.

motion.command.motion.connector.template_to_cut

Link

motion.connector.template_to_cut

Tier write_local. Mutates. Discoverable as an action on the prompt, templateInspector, receipts surfaces.

  • tier write_local
  • domain integration
  • mutates yes
  • arguments 5

Discovery phrases: apply editable template to cut timeline, template to cut, send template to cut, apply template controls to cut, template rendered video to cut timeline, editable template lower third to cut

Arguments (5)
NameTypeRequiredDescription
outDirstringyesTrusted output directory for applied package, preview, render, Cut import plan, and connector receipt artifacts.
packageRootstringyesTemplate Motion package root to apply before generating the Cut import plan.
valuesobjectyesTemplate param values keyed by param id.
cutImportModestringnoCut import mode, such as rendered_media or editable_lowering.
dryRunRenderbooleannoPlan required renders without encoding media.

Any other argument is rejected: the call fails with invalid_args and the command does not run.

  1. Template-to-Cut connector receipt includes changed params, render evidence, and Cut import plan path.

value sets

Argument value enumerations

The 17 named closed value sets that command arguments reference, generated from schemas/debug.json.

motion.enum.animationPreset

Link

animationPreset

6 allowed values. A value outside this set is refused by the argument contract, not merely discouraged.

fade-in, fade-out, slide-up-in, slide-down-out, lower-third-in, lower-third-out

motion.enum.blendMode

Link

blendMode

17 allowed values. A value outside this set is refused by the argument contract, not merely discouraged.

normal, multiply, screen, overlay, darken, lighten, color-dodge, color-burn, hard-light, soft-light, difference, exclusion, hue, saturation, color, luminosity, plus-lighter

motion.enum.captionFormat

Link

captionFormat

3 allowed values. A value outside this set is refused by the argument contract, not merely discouraged.

srt, vtt, plain

motion.enum.deliveryLane

Link

deliveryLane

2 allowed values. A value outside this set is refused by the argument contract, not merely discouraged.

native, ffmpeg

motion.enum.duckingMode

Link

duckingMode

2 allowed values. A value outside this set is refused by the argument contract, not merely discouraged.

timed, sidechain

motion.enum.durationResizeMode

Link

durationResizeMode

3 allowed values. A value outside this set is refused by the argument contract, not merely discouraged.

stretch-middle, ripple, fixed

motion.enum.easing

Link

easing

9 allowed values. A value outside this set is refused by the argument contract, not merely discouraged.

linear, hold, ease-in, ease-out, ease-in-out, back-out, bounce-out, step-start, step-end

motion.enum.easingPreset

Link

easingPreset

15 allowed values. A value outside this set is refused by the argument contract, not merely discouraged.

linear, hold, ease-in, ease-out, ease-in-out, back-out, bounce-out, smooth, snappy, step-start, step-end, steps-4-end, spring-gentle, spring-snappy, spring-bouncy

motion.enum.exportPreset

Link

exportPreset

10 allowed values. A value outside this set is refused by the argument contract, not merely discouraged.

mp4-h264, mp4-hevc, webm-av1, webm-vp9, webm-vp9-alpha, gif, mov-prores, png-sequence, png-frame, jpeg-frame

motion.enum.keyframeSnapMode

Link

keyframeSnapMode

3 allowed values. A value outside this set is refused by the argument contract, not merely discouraged.

nearest, floor, ceil

motion.enum.keyframeTarget

Link

keyframeTarget

113 allowed values. A value outside this set is refused by the argument contract, not merely discouraged.

transform.x, transform.y, transform.width, transform.height, transform.originX, transform.originY, transform.scale, transform.rotation, opacity, volume, pan, blendMode, playbackRate, fill, style.fill, style.color, style.stroke, style.borderColor, style.backgroundColor, style.background, style.strokeWidth, style.borderWidth, style.fontSize, style.fontWeight, style.letterSpacing, style.textAlign, style.verticalAlign, style.alignY, style.lineHeight, style.width, style.height, style.radius, style.borderRadius, style.padding, style.paddingX, style.paddingY, style.paddingTop, style.paddingRight, style.paddingBottom, style.paddingLeft, mask.inset.top, mask.inset.right, mask.inset.bottom, mask.inset.left, crop.x, crop.y, crop.width, crop.height, style.shadow.x, style.shadow.y, style.shadow.offsetX, style.shadow.offsetY, style.shadow.blur, style.shadow.spread, style.shadow.blurRadius, style.shadow.spreadRadius, style.shadow.color, style.textShadow.x, style.textShadow.y, style.textShadow.offsetX, style.textShadow.offsetY, style.textShadow.blur, style.textShadow.blurRadius, style.textShadow.color, effects.blur, effects.brightness, effects.contrast, effects.saturate, effects.grayscale, effects.glow.radius, effects.glow.color, gradient.angle, environment.intensity, environment.wind, environment.dropSpeed, environment.dropLength, environment.ground.horizon, environment.ground.wetness, environment.ground.roughness, environment.ground.rippleAmount, environment.ground.splashAmount, environment.ground.reflectionStrength, environment.atmosphere.mist, environment.atmosphere.lensDroplets, environment.surface.horizon, environment.surface.waveScale, environment.surface.waveHeight, environment.surface.waveSpeed, environment.surface.direction, environment.surface.choppiness, environment.optics.reflectionStrength, environment.optics.refractionStrength, environment.optics.fresnel, environment.optics.caustics, environment.optics.clarity, environment.optics.foam, environment.fall.intensity, environment.fall.speed, environment.fall.wind, environment.fall.turbulence, environment.fall.flakeSize, environment.fall.focusFalloff, environment.ground.accumulation, environment.ground.drift, environment.ground.contactAmount, environment.atmosphere.haze, environment.atmosphere.depthFade, environment.fog.density, environment.fog.speed, environment.fog.scale, environment.fog.turbulence, environment.fog.height, environment.fog.lightStrength

motion.enum.mediaFit

Link

mediaFit

5 allowed values. A value outside this set is refused by the argument contract, not merely discouraged.

fill, contain, cover, none, scale-down

motion.enum.permissionTier

Link

permissionTier

6 allowed values. A value outside this set is refused by the argument contract, not merely discouraged.

read_motion, draft_motion, render_motion, edit_motion, write_local, push_remote

motion.enum.spatialTangentMode

Link

spatialTangentMode

4 allowed values. A value outside this set is refused by the argument contract, not merely discouraged.

linear, smooth, broken, auto

motion.enum.transitionDirection

Link

transitionDirection

4 allowed values. A value outside this set is refused by the argument contract, not merely discouraged.

left, right, up, down

motion.enum.transitionEdge

Link

transitionEdge

2 allowed values. A value outside this set is refused by the argument contract, not merely discouraged.

in, out

motion.enum.transitionType

Link

transitionType

3 allowed values. A value outside this set is refused by the argument contract, not merely discouraged.

fade, slide, wipe

troubleshooting

Troubleshooting

The failures that actually happen, and the surface facts that trap agents.

motion.trouble.no_ffmpeg

Link

Final video is unavailable

Run doctor. Install both FFmpeg and FFprobe, or point SHELLX_MOTION_FFMPEG and SHELLX_MOTION_FFPROBE at explicit executables, then restart Motion.

NoteEncoding needs FFmpeg; reading the result back for quality-check needs FFprobe. They are separate answers in doctor.

motion.trouble.no_chromium

Link

Browser preview or render cannot start

Install a Chrome or Chromium build, or set SHELLX_MOTION_BROWSER to one. npx playwright-core install chromium installs a browser that playwright-core itself does not ship.

Noterender --frame-lane native still works for text-free packages. Native still previews work with no browser at all.

motion.trouble.locked_workbench

Link

The Workbench is locked

Paste the local access key into the Connect dialog. pnpm start opens an already-unlocked tab; a second tab, or a tab opened by hand, has to connect.

NoteThe key lives in that tab's sessionStorage only.

motion.trouble.browse_nothing

Link

A Browse button does nothing

Native pickers require a desktop session. On Linux, install zenity or kdialog; on Windows and macOS the operating-system picker is used.

motion.trouble.package_create_refused

Link

motion.package.create is refused

The server was started at a grant below write_local. edit_motion cannot create a package, because write_local is the HIGHER tier.

  1. Restart at --tier write_local --trusted-local-tier.
  2. Ask for the grant; never hand-write a package instead.

NoteCreating into a non-empty directory is refused, not merged.

motion.trouble.unsupported_lane

Link

unsupported_lane

--lane means different things in preview and render. preview --lane takes native or browser. render --lane takes native or ffmpeg, and its browser choice is --frame-lane browser|native.

  1. render --lane native writes one PNG still, not video.
  2. motion.render.final accepts frameLane "browser" only.

motion.trouble.no_screenshot

Link

There is no motion.screenshot

It was removed because Motion is an engine with no panel of its own: the command could only relay a request to a host and report ok for something it could not verify.

  1. Use debug preview-frame / motion.preview.frame for a real PNG plus receipt.

motion.trouble.render_status_not_live

Link

render.status and render.queue look stale

They are read-only views derived from receipt files on disk, so they report finished and batch-partial work, not live processes.

  1. Name the job when you start it (--job-id, or jobId on the Debug API).
  2. Poll motion.job.get / motion.job.list from any process for live state.
  3. --caller-id must match between the render and the query; visibility is per-owner.

Notemotion.render.cancel writes a cancel receipt and touches no process. motion.render.retry writes a not_run record that nothing consumes. Never say either stopped or restarted anything.

motion.trouble.job_states

Link

Reading a job state correctly

Switch on job.state: pending, running, succeeded, failed, cancelled or skipped. Stop polling when pollAfterMs disappears.

  1. pending means waiting for a machine slot — say "waiting", not "rendering".
  2. Switch on outcome, never on whether an artifact path is present: a failed encode can leave a truncated file.
  3. Never auto-retry a cancelled job. That is why cancelled never carries an error and failed always does.

NoteA query error (job_unknown, job_expired, job_not_visible) describes the lookup, not the job. It is not a failed render.

motion.trouble.rss_limit

Link

job_rss_limit_exceeded

A long browser render hit the per-job resident-memory ceiling (6 GiB by default) and the governor aborted it. Through the CLI that is a non-zero exit and a stack trace, not a JSON error envelope.

  1. Shorten the piece, lower the resolution, or reduce effects.motionBlur.samples.
  2. Raise the ceiling deliberately with SHELLX_MOTION_MAX_JOB_RSS_BYTES only if the machine has the memory.

motion.trouble.depth_blend

Link

depth planes do not yet support layer blend modes

Giving one layer depth makes it mandatory on every generated visual layer, requires a camera, bounds it to -0.9…3, and refuses any blendMode but normal. Mattes are refused too.

  1. Build a lighten or screen glow as a layer.gradient under normal blending.
  2. Or keep the glow out of the depth stack. Adjustment layers are exempt and stay screen-space.

motion.trouble.render_warning

Link

A render completed with warnings

Open History, inspect the quality and encoder details, and resolve the warning before treating the artifact as approved.

NoteNever lower a failed quality gate to make a render pass.