KoraCut

Docs · Piloter

Une porte de commande,pour tous les programmes.

KoraCut expose ce qu'elle sait faire sous forme de commandes nommées, qui répondent en JSON. Un script, un agent, Claude Code : tout ce qui a le jeton parle à l'application pendant qu'elle tourne, et tu vois chaque geste à l'écran.

Ce que c'est, et pourquoi pas des captures d'écran

Piloter une application par l'image (une capture, la reconnaissance des boutons, un clic) est lent, fragile et aveugle : un panneau déplacé et tout casse, et l'agent devine ce qu'il y a dans la timeline au lieu de le lire. C'est ce qu'on fait quand on n'a pas accès au code. KoraCut a le code.

La méthode est celle de Blender, de DaVinci Resolve ou de Figma : l'application expose elle-même ses commandes, un programme lit l'état, appelle une commande, relit l'état. Dix gestes par seconde, aucune ambiguïté. Et comme la commande passe par le même chemin que la souris, tu vois l'application bouger.

Concrètement, KoraCut ouvre au démarrage une prise locale sur ta machine (une socket Unix sur macOS et Linux, un tube nommé sur Windows), protégée par un jeton qui change à chaque lancement. Les messages sont du JSON-RPC, une ligne par message : une méthode nommée famille.methode, des paramètres nommés, une réponse ou une erreur avec un code, un message et un conseil. Les temps entrent en images ou en timecode HH:MM:SS:II et sortent sous les deux formes.

Les familles : app, actions (les 850 actions des menus, par leur nom : tout ce qui n'a pas d'outil dédié se fait par là), ui (changer de module, ouvrir un panneau, répondre à une fenêtre, faire une capture pour vérifier), projet, fichiers (le disque, dans le dossier du projet seulement), medias (le chutier, importer, analyser), timeline (l'état, les outils des agents, la sélection, la tête de lecture), export, historique (annuler, refaire, grouper en un tour) et evenements (recevoir sans demander). La porte est ouverte à tous, comme l'application : ce que KoraCut vend, ce sont ses agents, pas la porte.

koracut-ctl, la ligne de commande

Un petit exécutable livré à côté de KoraCut, identique sur les trois systèmes. Il trouve la porte tout seul, envoie une commande et imprime la réponse en JSON. Code de retour 0 si tout va bien, 1 sur une erreur (le JSON de l'erreur sur la sortie d'erreur), 2 quand aucune KoraCut n'est ouverte. Une valeur qui a la forme d'un JSON (nombre, true, liste, objet) est lue comme tel, sinon c'est une chaîne.

# Qui répond ?$ koracut-ctl app ping# Lire l'état de la timeline : pistes, clips, identifiants, sélection, tête de lecture$ koracut-ctl timeline etat niveau=resume# Importer deux rushs dans le dossier Rushs du chutier (copie ou lie, ne déplace jamais)$ koracut-ctl medias importer chemins='["Rushs/A001.mp4", "Rushs/A002.mp4"]' dossier=Rushs# Couper le clip 21 à quatre secondes (l'identifiant vient de timeline etat, jamais d'une supposition)$ koracut-ctl timeline outil nom=couper_clip args='{"clip_id": 21, "position": "00:00:04:00"}'# Exporter en MP4 H.264, son nivelé à -14 LUFS$ koracut-ctl export lancer prereglage='MP4-H264/AAC' chemin=Exports/final.mp4 niveau_lufs=-14

Pour grouper un travail en une seule étape d'annulation, ouvre un tour avant et ferme-le après : tout ce qui se passe entre les deux devient une seule ligne « koracut-ctl : Organiser les rushs » dans l'historique, et « abandon » défait tout.

$ koracut-ctl historique tour faire=debut titre='Organiser les rushs'$ 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# Toute l'aide, méthode par méthode, telle que KoraCut l'annonce$ koracut-ctl --aide

Renommer un fichier par la porte renomme aussi le clip du chutier qui pointait dessus, tout de suite, et l'annulation remet les deux. Avec plusieurs KoraCut ouvertes, --reglage <nom> choisit l'instance ; le terminal ouvert depuis la Console la connaît déjà.

Le serveur MCP, pour Claude Code et les autres

Le serveur koracut-mcp parle le Model Context Protocol, celui qu'attendent Claude Code, Claude Desktop, Cursor et les autres. Chaque méthode de la porte devient un outil koracut_<famille>_<methode> (koracut_timeline_etat, koracut_medias_importer…), avec son schéma ; le projet, la timeline, les médias et les actions sont des ressources ; les compétences sont des prompts. Une seule commande l'ajoute à Claude Code.

$ claude mcp add koracut -- node "<dossier de KoraCut>/Agents in-app/mcp/dist/main.js"# Puis, KoraCut ouverte, dans n'importe quel dossier :$ claude -p "Appelle l'outil koracut_app_ping et donne-moi l'heure qu'il rend."

Le serveur lit le fichier de la porte, se reconnecte si KoraCut redémarre (le jeton change), et rien ne passe par le réseau. Une méthode à confirmation rend confirmation_requise avec un identifiant de demande : tu réponds dans la Console de KoraCut, et l'outil se rappelle avec cet identifiant.

La Console et « Ouvrir un terminal ici »

⌘⇧J ouvre le panneau Console, onglet du bloc de droite en Montage, à côté des Agents. C'est le journal de la porte : chaque commande reçue, d'où qu'elle vienne, avec l'heure, le client, la méthode, le résultat ou l'erreur et la durée (« Claude Code · couper_clip 21 à 00:00:04:00 · ok · 3 ms »). Un clic sur une ligne place la tête de lecture sur le temps concerné. Les demandes d'accord s'affichent en cartes au-dessus : Accepter, Refuser, Faire confiance à ce programme pour la session. Le champ du bas accepte une commande tapée à la main.

Le bouton « Ouvrir un terminal ici » ouvre le terminal de ton système (Terminal sur Mac, ton terminal habituel sur Linux, Windows Terminal) dans le dossier du projet, avec la porte déjà connue et koracut-ctl dans le chemin. Si Claude Code est installé, il démarre directement ; sinon c'est un shell. Avant, KoraCut écrit dans le dossier du projet un CLAUDE.md court : ce qu'est ce projet, où sont les rushs, comment lui parler, les règles. Le projet doit être enregistré, sinon il n'a pas de dossier.

Un exemple. Tu ouvres le terminal et tu écris à Claude Code : « importe les trois rushs du dossier Ngor, mets-les bout à bout sur V1, coupe les silences du micro, ajoute un titre d'ouverture et exporte pour YouTube ». Dans KoraCut, les clips apparaissent dans le chutier, se posent, les coupes se font, la fenêtre Export s'ouvre et le rendu part. La Console montre chaque ligne, et un Annuler défait tout le tour si le résultat te déplaît.

Les compétences koracut-*

Un agent qui a la porte sait appuyer sur les boutons. Il lui faut aussi le métier. Cinq compétences (des fichiers Markdown au format des skills de Claude Code, que le serveur MCP expose aussi comme prompts pour les autres clients) sont livrées avec KoraCut et proposées à Claude Code par le bouton du terminal.

koracut-piloter
La porte, les conventions (temps, identifiants, un tour = un Annuler, la confirmation), les gestes courants, ce qu'il ne faut jamais faire. À lire en premier.
koracut-montage
Le métier du Monteur, règle par règle et type de vidéo par type : structure, pistes, rythme, transitions, sous-titres, habillage.
koracut-tournage
Ce que le guide dit du tournage : préparation, matériel, plans, lumière, prise de son, pour conseiller avant même d'avoir des rushs.
koracut-son
Prise de son, sound design, musique, mixage et niveaux par plateforme.
koracut-export-publication
Préréglages, specs des plateformes, titre et miniature, publication.

Quatre des cinq sont générées depuis le guide des types de vidéos, la même source que la fenêtre Nouveau projet et que le guide de ce site. Les compétences HyperFrames, pour le Motion, s'installent par leur propre commande, à côté.

Le guide des types de vidéos

La sécurité

Une prise locale
La porte est une socket sur ta machine, jamais un port réseau. Rien ne sort de l'ordinateur par la porte, et rien n'y entre depuis l'extérieur.
Un jeton
Il change à chaque lancement et vit dans un fichier que toi seul peux lire. Un programme qui ne l'a pas ne parle pas à KoraCut.
Jamais de suppression
Aucune méthode ne supprime, ne déplace ni ne renomme un fichier hors du dossier du projet. Le seul retrait possible met le fichier à la corbeille du système, après ton accord, et refuse un fichier encore utilisé dans le chutier.
Ton accord pour le sensible
Quitter, écraser un export, supprimer un plan, mettre à la corbeille : la Console te demande, avec les vrais paramètres. Tu peux faire confiance à un programme pour la session, sauf pour quitter et écraser un fichier.
Pas les réglages
La porte ne touche pas aux préférences de l'application, seulement aux propriétés du projet ouvert. C'est par construction, pas par prompt.
Un interrupteur
Préférences > Divers > Pilotage extérieur : « Autoriser les programmes extérieurs à piloter KoraCut ». Décoché, la porte se ferme.

Et tout est visible : la Console garde le journal de chaque commande, et l'écran suit chaque geste. Un agent qui pilote KoraCut travaille devant toi.

Les agents nommésLa page Confidentialité

Toute la documentation

En développement

KoraCut est en développement

L'application arrive. Amadou Ba y travaille tous les jours et le site suit. Laisse ton adresse pour être prévenu à la sortie.