Docs · Drive
One command gate,for every program.
KoraCut exposes what it can do as named commands that answer in JSON. A script, an agent, Claude Code: anything that has the token talks to the app while it runs, and you see every move on screen.
What it is, and why not screenshots
Driving an app through the image (a screenshot, button recognition, a click) is slow, fragile and blind: one panel moved and everything breaks, and the agent guesses what is in the timeline instead of reading it. That is what you do when you do not have the code. KoraCut has the code.
The method is the one of Blender, DaVinci Resolve or Figma: the app itself exposes its commands, a program reads the state, calls a command, reads the state again. Ten moves a second, no ambiguity. And since the command goes through the same path as the mouse, you see the app move.
Concretely, KoraCut opens at startup a local socket on your machine (a Unix socket on macOS and Linux, a named pipe on Windows), protected by a token that changes at every launch. Messages are JSON-RPC, one line per message: a method named family.method, named parameters, a response or an error with a code, a message and a hint. Times come in as frames or as HH:MM:SS:FF timecode and go out in both forms.
The families: app, actions (the 850 menu actions, by name: anything without a dedicated tool goes through there), ui (switch module, open a panel, answer a dialog, take a screenshot to check), project, files (the disk, inside the project folder only), media (the bin, import, analyze), timeline (the state, the agents' tools, the selection, the playhead), export, history (undo, redo, group into one turn) and events (receive without asking). The gate is open to everyone, like the app: what KoraCut sells is its agents, not the gate.
koracut-ctl, the command line
A small executable shipped next to KoraCut, identical on the three systems. It finds the gate on its own, sends a command and prints the answer in JSON. Exit code 0 when all is well, 1 on an error (the error's JSON on stderr), 2 when no KoraCut is open. A value shaped like JSON (number, true, list, object) is read as such, otherwise it is a string.
# Who answers?$ koracut-ctl app ping# Read the timeline state: tracks, clips, ids, selection, playhead$ koracut-ctl timeline etat niveau=resume# Import two clips into the Rushs folder of the bin (copies or links, never moves)$ koracut-ctl medias importer chemins='["Rushs/A001.mp4", "Rushs/A002.mp4"]' dossier=Rushs# Cut clip 21 at four seconds (the id comes from timeline etat, never from a guess)$ koracut-ctl timeline outil nom=couper_clip args='{"clip_id": 21, "position": "00:00:04:00"}'# Export as MP4 H.264, loudness normalized to -14 LUFS$ koracut-ctl export lancer prereglage='MP4-H264/AAC' chemin=Exports/final.mp4 niveau_lufs=-14To group a piece of work into a single undo step, open a turn before and close it after: everything that happens between the two becomes one line "koracut-ctl: Organize the footage" in the history, and "abandon" undoes it all. The method and parameter names are in French, the app's first language: the help lists them all.
$ koracut-ctl historique tour faire=debut titre='Organize the footage'$ koracut-ctl fichiers creer_dossier chemin=Rushs$ koracut-ctl fichiers renommer chemin=Rushs/A001.mp4 nouveau_nom='01 - Interview Aminata.mp4'$ koracut-ctl historique tour faire=fin# The whole help, method by method, as KoraCut announces it$ koracut-ctl --aideRenaming a file through the gate also renames the bin clip that pointed to it, right away, and undo restores both. With several KoraCut instances open, --reglage <name> picks the instance; the terminal opened from the Console already knows it.
The MCP server, for Claude Code and others
The koracut-mcp server speaks the Model Context Protocol, the one Claude Code, Claude Desktop, Cursor and others expect. Every method of the gate becomes a koracut_<family>_<method> tool (koracut_timeline_etat, koracut_medias_importer…), with its schema; the project, the timeline, the media and the actions are resources; the skills are prompts. One command adds it to Claude Code.
$ claude mcp add koracut -- node "<KoraCut folder>/Agents in-app/mcp/dist/main.js"# Then, with KoraCut open, from any folder:$ claude -p "Call the koracut_app_ping tool and give me the time it returns."The server reads the gate file, reconnects if KoraCut restarts (the token changes), and nothing goes through the network. A method that needs confirmation returns confirmation_requise with a request id: you answer in KoraCut's Console, and the tool calls itself again with that id.
The Console and "Open a terminal here"
⌘⇧J opens the Console panel, a tab of the right block in Edit, next to Agents. It is the gate's log: every command received, wherever it comes from, with the time, the client, the method, the result or the error and the duration ("Claude Code · couper_clip 21 at 00:00:04:00 · ok · 3 ms"). A click on a line puts the playhead on the time concerned. Approval requests show as cards above: Accept, Refuse, Trust this program for the session. The field at the bottom accepts a command typed by hand.
The "Open a terminal here" button opens your system's terminal (Terminal on Mac, your usual terminal on Linux, Windows Terminal) in the project folder, with the gate already known and koracut-ctl on the path. If Claude Code is installed, it starts directly; otherwise it is a shell. Before that, KoraCut writes a short CLAUDE.md in the project folder: what this project is, where the footage is, how to talk to it, the rules. The project must be saved, otherwise it has no folder.
An example. You open the terminal and write to Claude Code: "import the three clips from the Ngor folder, put them end to end on V1, cut the silences of the microphone, add an opening title and export for YouTube". In KoraCut, the clips appear in the bin, get placed, the cuts are made, the Export window opens and the render starts. The Console shows every line, and one Undo undoes the whole turn if you dislike the result.
The koracut-* skills
An agent that has the gate knows how to press the buttons. It also needs the craft. Five skills (Markdown files in the format of Claude Code skills, which the MCP server also exposes as prompts for other clients) ship with KoraCut and are offered to Claude Code by the terminal button.
- koracut-piloter
- The gate, the conventions (times, ids, one turn = one Undo, confirmation), the common moves, what must never be done. Read first.
- koracut-montage
- The Editor's craft, rule by rule and kind of video by kind: structure, tracks, pace, transitions, subtitles, graphics.
- koracut-tournage
- What the guide says about shooting: preparation, gear, shots, light, sound recording, to advise before there is even footage.
- koracut-son
- Sound recording, sound design, music, mixing and loudness per platform.
- koracut-export-publication
- Presets, platform specs, title and thumbnail, publishing.
Four of the five are generated from the video types guide, the same source as the New project window and as the guide on this site. The HyperFrames skills, for Motion, install with their own command, alongside.
Security
- A local socket
- The gate is a socket on your machine, never a network port. Nothing leaves the computer through the gate, and nothing enters from the outside.
- A token
- It changes at every launch and lives in a file only you can read. A program that does not have it does not talk to KoraCut.
- Never a deletion
- No method deletes, moves or renames a file outside the project folder. The only possible removal sends the file to the system trash, after your approval, and refuses a file still used in the bin.
- Your approval for the sensitive
- Quitting, overwriting an export, deleting a shot, sending to the trash: the Console asks you, with the real parameters. You can trust a program for the session, except for quitting and overwriting a file.
- Not the settings
- The gate does not touch the app's preferences, only the properties of the open project. That is by design, not by prompt.
- A switch
- Preferences > Misc > External control: "Allow external programs to drive KoraCut". Unchecked, the gate closes.
And everything is visible: the Console keeps the log of every command, and the screen follows every move. An agent driving KoraCut works in front of you.