本文へ移動
cccskills
無料GitHub で公開

add-cli-option

Add a new Remotion CLI or config option by creating an AnyRemotionOption, registering CLI parsing, wiring config setters, and updating documentation. Use when adding or converting command-line flags or Remotion options.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md6.0 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Add a new CLI option

How to convert a hardcoded CLI flag into a proper AnyRemotionOption, or add a brand new one.

1. Create the option definition

Create packages/renderer/src/options/<name>.tsx:

import type {AnyRemotionOption} from './option';

let myValue = false; // module-level default state

const cliFlag = 'my-flag' as const;

export const myFlagOption = {
  name: 'Human-readable Name',
  cliFlag,
  id: cliFlag,
  description: () => <>Description shown in docs.</>,
  ssrName: null, // or 'myFlag' if used in SSR APIs
  docLink: 'https://www.remotion.dev/docs/options/my-flag',
  type: false as boolean, // TypeScript type witness; defaults are resolved in getValue
  getValue: ({commandLine}) => {
    if (commandLine[cliFlag] !== undefined) {
      return {value: commandLine[cliFlag] as boolean, source: 'cli'};
    }
    return {value: myValue, source: 'config'};
  },
  setConfig(value) {
    myValue = value;
  },
} satisfies AnyRemotionOption<boolean>;

The type in AnyRemotionOption<T> and type: <value> as T determines the option's value type. Use boolean, string | null, number | null, etc.

The id must be unique and contain only lowercase letters, digits, and hyphens. It determines the /docs/options/<id> page and the <Options id="..." /> value. It usually matches cliFlag, but shared flags can have distinct option IDs.

Set docLink to https://www.remotion.dev/docs/options/<id>.

For negating flags (like --disable-ask-ai → askAIEnabled = false), handle the inversion in getValue.

2. Register in options index

packages/renderer/src/options/index.tsx:

  • Add the import (keep alphabetical within the import block)
  • Add the option to the allOptions object

This makes it available as BrowserSafeApis.options.myFlagOption throughout the codebase.

3. Update CLI parsed flags

packages/cli/src/parsed-cli.ts:

  • For boolean flags, add BrowserSafeApis.options.myFlagOption.cliFlag to the BooleanFlags array
  • For non-boolean flags, no entry needed here (minimist handles them as strings/numbers automatically)

packages/cli/src/parse-command-line.ts:

  • Add to the destructured BrowserSafeApis.options
  • In the CommandLineOptions type, add: [myFlagOption.cliFlag]: TypeOfOption<typeof myFlagOption>;

4. Use the option where needed

Instead of reading parsedCli['my-flag'] directly, resolve via:

const myFlag = myFlagOption.getValue({commandLine: parsedCli}).value;

For Studio options, this is typically in packages/cli/src/studio.ts. For render options, in the relevant render command file.

If the option is consumed by Studio, read ../studio-config-option-lifecycle/SKILL.md completely before wiring it. Classify the option as startup-fixed or reloadable across all Studio consumers; mixed behavior is not allowed. If any consumer requires startup-fixed behavior, pass the startup snapshot to every consumer.

5. Add to Config

packages/cli/src/config/index.ts:

  • Add to the destructured BrowserSafeApis.options
  • Add the setter signature to the FlatConfig type (either in the RemotionConfigObject global interface or the FlatConfig intersection)
  • Add the implementation to the Config object: setMyFlagEnabled: myFlagOption.setConfig

6. Update docs — IMPORTANT, do not skip this step

This step is mandatory. Every new option must have its docs updated to use <Options id="..." /> so the description is pulled from the option definition automatically (single source of truth). If converting an existing hardcoded flag, replace any hand-written description with the <Options> component.

CLI command pages (check all that apply — cli/render.mdx, lambda/cli/render.mdx, cloudrun/cli/render.mdx, cli/benchmark.mdx):

  • Add or update the ### \--my-flag`` section
  • Use <Options id="my-flag" /> as the description body (no import needed — it's globally available)
  • The id must match the option's id value

CLI help metadata: Add the flag to each supported command's option list in packages/cli/src/print-help.ts, packages/lambda/src/cli/help.ts, or packages/cloudrun/src/cli/help.ts. The generated option page uses the help entries' optionIds to list supported commands; ensure shared flags resolve to the correct option ID.

API pages: Document each public parameter under its own heading so the generated page can link to it.

packages/docs/docs/config.mdx:

  • Add or update the ## \setMyFlagEnabled()`` section with:
    • <Options id="my-flag" /> for the description
    • A twoslash config example
    • A link to /docs/options/<id> noting that the CLI flag takes precedence

Follow the pattern of nearby entries (e.g., setAskAIEnabled, setEnableCrossSiteIsolation).

Generated option reference: Generate packages/docs/docs/options/<id>.mdx and the options index using the commands below. Edit the option definition and API/config docs rather than the generated MDX. Option pages are added to the sidebar automatically.

7. Build and verify

# From the repository root
bun run build
cd packages/docs
bun run generate-option-docs
bun run render-cards
bun run check-option-docs

Verify /docs/options/<id> includes the description, supported commands, and relevant API/configuration links. Commit the generated page and index, the article catalog (packages/docs/src/data/articles.ts), and the new social preview card.

Reference files

  • Option type definition: packages/renderer/src/options/option.ts
  • Good example to copy: packages/renderer/src/options/ask-ai.tsx (boolean, studio-only)
  • Options index: packages/renderer/src/options/index.tsx
  • CLI flag registration: packages/cli/src/parsed-cli.ts
  • CLI type definitions: packages/cli/src/parse-command-line.ts
  • Config registration: packages/cli/src/config/index.ts

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

add-bug

無料

Add a new Remotion bug entry to packages/bugs/api/[v].ts. Use when the user describes a bug and affected Remotion versions that should be surfaced through the bugs API.

日本語の概要は準備中です。原文の説明を表示しています。

remotion-dev/remotion6.3万2026年10月11日 更新

Add a new effect to @remotion/effects, including implementation, package exports, docs, demos, preview images, Remotion skill updates, formatting, and builds.

日本語の概要は準備中です。原文の説明を表示しています。

remotion-dev/remotion6.3万2026年10月11日 更新

Add a new expert to the Remotion experts page

日本語の概要は準備中です。原文の説明を表示しています。

remotion-dev/remotion6.3万2026年10月11日 更新

Add a new package to the Remotion monorepo, including package scaffolding, monorepo registration, documentation, build scripts, and release checklist updates. Use when creating a new @remotion package.

日本語の概要は準備中です。原文の説明を表示しています。

remotion-dev/remotion6.3万2026年10月11日 更新

add-sfx

無料

Add a new sound effect to @remotion/sfx

日本語の概要は準備中です。原文の説明を表示しています。

remotion-dev/remotion6.3万2026年10月11日 更新

Add a browser WebCodecs bug to the Remotion Mediabunny WebCodecs bugs docs page. Use when given a Chromium, WebKit, or Firefox issue URL that should be tracked in packages/docs/docs/mediabunny/webcodecs-bugs.mdx, especially when needing to look up the issue title, filing date, reporter, and resolution state before editing the MDX table.

日本語の概要は準備中です。原文の説明を表示しています。

remotion-dev/remotion6.3万2026年10月11日 更新

remotion-dev のスキルをすべて見る

このスキルの問題を報告する