# roxsaita/capcut-editor-cli architecture

> Architecture diagram of the GitHub repository roxsaita/capcut-editor-cli, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/roxsaita/capcut-editor-cli
- Repository: https://github.com/roxsaita/capcut-editor-cli

## Overview

capcutctl is a macOS command-line editor for native, editable CapCut projects—not a video renderer. Its main workflow is to inspect or analyze footage, apply a reviewed cut and edit plan, then validate the project for delivery. The graph also shows the documented layout, caption, motion-graphics, and QA capabilities. Relationships are based on the supplied README and source-index references; unsampled implementations are represented by their listed paths, without inferring internal call chains.

Main entry points: [`src/cli.mjs`](https://github.com/roxsaita/capcut-editor-cli/blob/main/src/cli.mjs) (Command router), [`src/build.mjs`](https://github.com/roxsaita/capcut-editor-cli/blob/main/src/build.mjs) (Edit-plan build), [`src/core.mjs`](https://github.com/roxsaita/capcut-editor-cli/blob/main/src/core.mjs) (Project documents), [`tools/aroll.py`](https://github.com/roxsaita/capcut-editor-cli/blob/main/tools/aroll.py) (A-roll recutting)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["CLI and planning"]
  node_cli["Command router<br/>[cli.mjs]"]
  node_build["Edit-plan build<br/>[build.mjs]"]
  node_profile["Style profile<br/>[profile.mjs]"]
end

subgraph group_editing["Native project editing"]
  node_core["Project documents<br/>[core.mjs]"]
  node_transactions["Transactional edits<br/>[core.mjs]"]
  node_layouts["Editable layouts<br/>[layouts.mjs]"]
  node_media["Media insertion<br/>[add.mjs]"]
end

subgraph group_analysis["Media analysis"]
  node_recut["A-roll recutting<br/>[aroll.py]"]
  node_review["Cut review<br/>[review.mjs]"]
  node_python["Python tool runner<br/>[python.mjs]"]
end

subgraph group_finishing["Finishing and review"]
  node_captions["Word captions<br/>[pipeline.py]"]
  node_music["Music and ducking<br/>[music.mjs]"]
  node_mograph["Motion graphics<br/>[mograph-place.mjs]"]
  node_scenes["Animated scenes<br/>[mograph-scene.mjs]"]
  node_gate["Delivery gate<br/>[gate.mjs]"]
  node_exportqa["Export QA<br/>[verify.mjs]"]
end

node_editor(("Editor"))
node_project[("CapCut project")]

node_editor -->|"runs commands"| node_cli
node_cli -->|"inspects projects"| node_core
node_cli -->|"runs build"| node_build
node_build -->|"uses style"| node_profile
node_build -->|"checks readiness"| node_gate
node_cli -->|"commits edits"| node_transactions
node_transactions -->|"updates mirrors"| node_project
node_core -->|"loads documents"| node_project
node_cli -->|"applies layouts"| node_layouts
node_cli -->|"adds media"| node_media
node_cli -->|"runs analysis"| node_recut
node_cli -->|"previews cuts"| node_review
node_cli -->|"creates captions"| node_captions
node_cli -->|"adds music"| node_music
node_cli -->|"places graphics"| node_mograph
node_cli -->|"renders scenes"| node_scenes
node_cli -->|"checks project"| node_gate
node_cli -->|"checks export"| node_exportqa
node_cli -->|"runs tools"| node_python
node_recut -.->|"feeds decisions"| node_review

click node_cli "https://github.com/roxsaita/capcut-editor-cli/blob/main/src/cli.mjs"
click node_build "https://github.com/roxsaita/capcut-editor-cli/blob/main/src/build.mjs"
click node_profile "https://github.com/roxsaita/capcut-editor-cli/blob/main/src/profile.mjs"
click node_core "https://github.com/roxsaita/capcut-editor-cli/blob/main/src/core.mjs"
click node_transactions "https://github.com/roxsaita/capcut-editor-cli/blob/main/src/core.mjs"
click node_layouts "https://github.com/roxsaita/capcut-editor-cli/blob/main/src/layouts.mjs"
click node_media "https://github.com/roxsaita/capcut-editor-cli/blob/main/src/add.mjs"
click node_recut "https://github.com/roxsaita/capcut-editor-cli/blob/main/tools/aroll.py"
click node_review "https://github.com/roxsaita/capcut-editor-cli/blob/main/src/review.mjs"
click node_captions "https://github.com/roxsaita/capcut-editor-cli/blob/main/tools/caption_engine/pipeline.py"
click node_music "https://github.com/roxsaita/capcut-editor-cli/blob/main/src/music.mjs"
click node_mograph "https://github.com/roxsaita/capcut-editor-cli/blob/main/src/mograph-place.mjs"
click node_scenes "https://github.com/roxsaita/capcut-editor-cli/blob/main/src/mograph-scene.mjs"
click node_gate "https://github.com/roxsaita/capcut-editor-cli/blob/main/src/gate.mjs"
click node_exportqa "https://github.com/roxsaita/capcut-editor-cli/blob/main/src/verify.mjs"
click node_python "https://github.com/roxsaita/capcut-editor-cli/blob/main/src/python.mjs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_cli,node_build,node_profile toneBlue
class node_core,node_transactions,node_layouts,node_media,node_project toneAmber
class node_recut,node_review,node_python toneMint
class node_captions,node_music,node_mograph,node_scenes,node_gate,node_exportqa toneRose
class node_editor toneIndigo
```

## Components

### CLI and planning

- [Command router](https://github.com/roxsaita/capcut-editor-cli/blob/main/src/cli.mjs): `src/cli.mjs`
- [Edit-plan build](https://github.com/roxsaita/capcut-editor-cli/blob/main/src/build.mjs): `src/build.mjs`
- [Style profile](https://github.com/roxsaita/capcut-editor-cli/blob/main/src/profile.mjs): `src/profile.mjs`

### Native project editing

- [Project documents](https://github.com/roxsaita/capcut-editor-cli/blob/main/src/core.mjs): `src/core.mjs`
- [Transactional edits](https://github.com/roxsaita/capcut-editor-cli/blob/main/src/core.mjs): `src/core.mjs`
- [Editable layouts](https://github.com/roxsaita/capcut-editor-cli/blob/main/src/layouts.mjs): `src/layouts.mjs`
- [Media insertion](https://github.com/roxsaita/capcut-editor-cli/blob/main/src/add.mjs): `src/add.mjs`

### Media analysis

- [A-roll recutting](https://github.com/roxsaita/capcut-editor-cli/blob/main/tools/aroll.py): `tools/aroll.py`
- [Cut review](https://github.com/roxsaita/capcut-editor-cli/blob/main/src/review.mjs): `src/review.mjs`
- [Python tool runner](https://github.com/roxsaita/capcut-editor-cli/blob/main/src/python.mjs): `src/python.mjs`

### Finishing and review

- [Word captions](https://github.com/roxsaita/capcut-editor-cli/blob/main/tools/caption_engine/pipeline.py): `tools/caption_engine/pipeline.py`
- [Music and ducking](https://github.com/roxsaita/capcut-editor-cli/blob/main/src/music.mjs): `src/music.mjs`
- [Motion graphics](https://github.com/roxsaita/capcut-editor-cli/blob/main/src/mograph-place.mjs): `src/mograph-place.mjs`
- [Animated scenes](https://github.com/roxsaita/capcut-editor-cli/blob/main/src/mograph-scene.mjs): `src/mograph-scene.mjs`
- [Delivery gate](https://github.com/roxsaita/capcut-editor-cli/blob/main/src/gate.mjs): `src/gate.mjs`
- [Export QA](https://github.com/roxsaita/capcut-editor-cli/blob/main/src/verify.mjs): `src/verify.mjs`

### Other components

- **Editor**
- **CapCut project**

## Connections

- Editor → Command router: runs commands (evidence: `README.md`)
- Command router → Project documents: inspects projects (evidence: `src/cli.mjs`)
- Command router → Edit-plan build: runs build (evidence: `README.md`)
- Edit-plan build → Style profile: uses style (evidence: `README.md`)
- Edit-plan build → Delivery gate: checks readiness (evidence: `README.md`)
- Command router → Transactional edits: commits edits (evidence: `README.md`)
- Transactional edits → CapCut project: updates mirrors (evidence: `README.md`)
- Project documents → CapCut project: loads documents (evidence: `src/core.mjs`)
- Command router → Editable layouts: applies layouts (evidence: `README.md`)
- Command router → Media insertion: adds media (evidence: `src/cli.mjs`)
- Command router → A-roll recutting: runs analysis (evidence: `src/cli.mjs`)
- Command router → Cut review: previews cuts (evidence: `README.md`)
- Command router → Word captions: creates captions (evidence: `README.md`)
- Command router → Music and ducking: adds music (evidence: `README.md`)
- Command router → Motion graphics: places graphics (evidence: `README.md`)
- Command router → Animated scenes: renders scenes (evidence: `README.md`)
- Command router → Delivery gate: checks project (evidence: `README.md`)
- Command router → Export QA: checks export (evidence: `README.md`)
- Command router → Python tool runner: runs tools (evidence: `src/cli.mjs`)
- A-roll recutting → Cut review: feeds decisions
