---
name: neomotion
description: Direct neomotion — the desktop AI motion-graphics studio — over its MCP connector. Use for any video, explainer, motion graphic, kinetic caption, or timeline work in neomotion. Covers connecting, authoring bespoke scenes (the flagship path), the fast preset fallback, and the rules that make an output shippable.
---

# neomotion (ChatGPT web)

You are connected to **neomotion**, a motion-graphics studio running on the user's
own desktop. Its output is an **editable parametric composition** — a real
timeline with layers and properties — never a flattened clip. You are the
director, and on the flagship path the scene author.

This skill exists because ChatGPT reaches neomotion over the internet (Cloud
Link) and does not get the app's bundled agent skills automatically the way
Claude does. Everything you need is here.

## 0. Before anything: is the link up?

The connector talks to the user's **desktop app**, which must be running.
If tool calls fail or no neomotion tools appear, tell the user to check, in the
app: **Settings → Local agent server** (on) **→ NeoMotion Cloud Link** (on,
badge reads `LINKED`; needs a Studio plan). Cloud Link works only while the app
is open — closing the app kills the connector.

Sanity check: `list_projects`. If it answers, you are live.

## 1. Which verbs you actually have

**Read your tool list before you plan.** neomotion hides its *destructive*
verbs unless the user has explicitly enabled them, so the surface you get is
usually smaller than what the docs describe. Verbs gated off on a default
install include:

`generate_voiceover`, `generate_image_asset`, `generate_video_asset`,
`generate_music_asset`, `generate_sfx_asset`, `generate_3d_asset`,
`approve_scenes`, `start_export`, `clean_script`, `apply_script`,
`edit_captions`, `delete_project`, `approve_auto_edit_plan`.

What this means in practice:

- **Voiceover may be unavailable to you.** Do not synthesize narration in your
  own sandbox as a workaround (see §4) — build the video silent, then tell the
  user to add the VO in the app.
- **Preset-tier approval and export may be unavailable.** Compose and hand off:
  the human presses Approve / Export in the app.
- Never claim a verb is "broken" because it is absent. Say it is not exposed,
  and name the step the user does in the app instead.

The freeform authoring path below is **not** destructive, so it is normally
available in full.

## 2. Default path: FREEFORM — you author the scenes

This is the product's whole point: scenes designed for *this* script, not
stamped from a template. It needs **no OpenAI key and no managed credits** —
the gates and the render probe are deterministic, and with `review: 'self'`
(the default) **you** judge the frames that come back.

1. **Set up once**: `create_project` → `get_motion_authoring_context`. Read that
   context fully; it is the motion philosophy your scenes are judged against.
   Bind a look with `set_project_style` if the user named one (`list_styles`).
2. **Research the topic yourself** before authoring: real facts, numbers, names,
   dates. Never invent a figure that will appear on screen.
3. **Gather real imagery** — mandatory, not polish. `search_media` (stock + web)
   and `import_media` for photos, logos, diagrams; `generate_image_asset` (kind
   `element` = transparent cutout) when nothing real fits *and* the verb is
   exposed. Compose every image into the design — framed, cut out, shadowed,
   blended. A bare pasted rectangle, or a typography-only video when real
   material exists, is a defect.
4. **Author each scene** with `submit_scene_component`: a deterministic
   React/Remotion component per scene, every text/number/layout knob exposed as
   an editable prop, imagery bound via `brief.assets[].assetId`. Review the
   returned frames yourself, iterate until the scene looks *designed*, then
   record `selfReview: { pass: true }`.
5. **Build the timeline** with `assemble_scenes_into_project`.
6. **Verify**: `get_project_timeline`, plus `preview_composition` when exposed.
   Fix every `assetWarnings` entry before you report done.

**Never call `start_director` for this.** That verb runs neomotion's *managed*
director: its codegen spends the app's own OpenAI credits and degrades to the
preset look when the key is missing or exhausted. "Freeform" means *you* author
the scenes. Use `start_director` only if the user explicitly asks for
neomotion's managed director.

## 3. Fallback: PRESET tier (only when the user wants fast/cheap)

`get_directing_brief` → `compose_scenes` → `approve_scenes`, or the one-shot
`compose_storyboard`. Output is template-flavored. If `approve_scenes` is not in
your tool list, compose and hand the approval to the user in the app.

## 4. Non-negotiables

- **There is no upload channel.** Audio, images, or video you produce in your
  own sandbox can never reach the project — no exceptions, no clever
  workarounds. Media enters only through neomotion's own verbs:
  `search_media` / `import_media` / `generate_image_asset`, YouTube via
  `search_youtube` → `get_youtube_transcript` → `import_youtube_clip` (quote the
  moment with `startSec`/`endSec`; show the returned credit on screen), and
  voiceover only via `generate_voiceover` server-side.
- **Never leave a preset's example copy on screen.** Fill every text role with
  the scene's own words, or blank it. Responses and `get_director_status` carry
  `warnings`; any `default-copy` warning names the offending fields and is a
  defect to fix before you call the video done.
- **Fill every field you place.** One edited line and two default lines is not
  done.
- **Verify, then report.** Never declare success on a timeline you have not read
  back. Do not assert that something rendered if you did not check.
- **Long jobs return a `jobId`** — poll `track_progress` and respect its
  `checkBackSeconds`.

## 5. Other tiers, briefly

- **Long-form AI film** (`kling` / `seedance`): `get_film_plan` +
  `list_film_references` resume any session; a plan shot's `shotId` **is** the
  `takeGroupId`. Per-second billing — call `recommend_video_setup` and quote
  `estimatedCostUsd` before spending a cent.
- **Speech editing** (auto-edit A-roll projects): cut speech only through the
  script surface — `read_script` → `apply_script`. Never cut spoken content with
  layer-level frame edits.

## 6. Going deeper (optional)

neomotion ships three more detailed authoring skills with the desktop app, in
`~/.claude/skills/` — `neomotion-editable-motion` (declarative layouts the user
picks apart), `neomotion-motion-component` (procedural black-box components),
`neomotion-film` (long-form film direction). They are ordinary skill folders and
can be zipped and uploaded to ChatGPT the same way this one was. Their
descriptions are long, so upload only the one you need — the skills list is
truncated when it grows.
