Communitygithub.com

0xsline/openchatcut

Wird verwendet, wenn der Agent den Benutzer mit einem In-Chat-Formular um strukturierte Eingaben bitten soll, einschließlich Einfachauswahl, Mehrfachauswahl, Textfeldern, Stilauswahl oder Sprachvorsprache-Optionen.

Was ist openchatcut?

Diese Fähigkeit ermöglicht es dem Agenten, dem Benutzer ein strukturiertes In-Chat-Formular zu präsentieren, anstatt manuell Markup zu schreiben. Der Editor rendert das Formular als interaktive Karte und gibt die strukturierte Antwort des Benutzers zurück. Dies ist nützlich, um Benutzereingaben wie Videoziele, Szenarien, Stile oder Spracheinstellungen auf klare und benutzerfreundliche Weise zu sammeln. Die Fähigkeit unterstützt verschiedene Feldtypen: Einfachauswahl, Mehrfachauswahl, Text, visuelle Karten, Sprachvorsprache-Karten und native Start-Szenario-Karten. Der Agent plant die gesamte Umfrage vor dem Aufruf des Tools und sendet ein endgültiges Formular mit maximal 12 Feldern. Nach dem Senden wartet der Agent auf die Antwort des Benutzers, bevor er fortfährt. Die Fähigkeit enthält spezifische Anweisungen zur Formulargestaltung, einschließlich eines einladenden und handlungsorientierten Tons, der zu OpenChatCut passt, und vermeidet starre oder technische Formulierungen. Sie behandelt auch die Handhabung von Datei-Uploads, visuellen Vorschauen und Audio-URLs mit praktischen Hinweisen, die auf verschiedenen Plattformen zuverlässig funktionieren.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/0xsline/openchatcut/tree/HEAD/src/agent/skills/widget-forms

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Widget-Formulare

Verwenden Sie das Formular-Tool anstelle von handgeschriebenem Markup: Der Editor-Chat rendert das Formular als interaktive Karte und gibt die strukturierte Antwort des Benutzers zurück.

Laufzeitregel

Rufen Sie ask_followup_questions auf. Es serialisiert Ihre Felder in die native Formularkarte des Editors; die Einsendung des Benutzers kommt als seine nächste Nachricht zurück.

Planen Sie den gesamten Fragebogen, bevor Sie das Tool aufrufen. Senden Sie ein endgültiges Formular, kein Testformular gefolgt von einem korrigierten Formular. Das Tool unterstützt maximal 12 Felder; wenn der Benutzer nach mehr Fragen fragt, fassen Sie verwandte Eingabeaufforderungen vor dem ersten Aufruf zu kombinierten Feldern zusammen.

Rufen Sie nach dem Aufruf von ask_followup_questions die Runde auf und warten Sie, bis die eingereichte Antwort im Chat erscheint. Wenden Sie keine Auswahl an, erstellen Sie keine Assets und planen Sie nicht auf der Grundlage einer Empfehlung weiter, bis die Auswahl des Benutzers im Gespräch vorhanden ist.

Unterstütztes Feld-Mapping

Erstellen Sie ein fields-Array. Schreiben Sie jeden sichtbaren String in der Gesprächssprache des Benutzers.

  • Native <form-single> -> { type: "single", variant: "default" }
  • Native <form-multi> -> { type: "multi", variant: "default" }
  • Native <form-text> / <form-textarea> -> { type: "text" }
  • Native <form-visual> -> { type: "single", variant: "visual" }
  • Sprachvorsprache-Karten -> { type: "single", variant: "voice" }
  • Native Start-Szenario-Karten -> { type: "single", variant: "scenario" }

Ton des Formulartexts

Schreiben Sie für formularbezogenen Text (title, prompt, fields[].label, submitLabel und messagePrefix) so, als ob OpenChatCut ein fähiger Videoproduktionspartner ist, der den Benutzer einlädt zu beschreiben, was er möchte, und nicht wie eine starre Umfrage.

Zielen Sie auf:

  • Warmherzig, offen und handlungsorientiert. Der Text sollte implizieren: „Wähle das nächstgelegene Videobedürfnis oder sag mir einfach deine Idee; wir finden es gemeinsam heraus.“
  • Kurz und überschaubar. Verwenden Sie einen natürlichen Satz für prompt und prägnante Fragenlabels.
  • Ehrliche Fähigkeitsdarstellung. OpenChatCut kann bei vielen Video-Workflows helfen, aber beanspruchen Sie keine nicht unterstützten Fähigkeiten und garantieren Sie kein Ergebnis, bevor Eingaben bekannt sind.
  • Die Sprache des Benutzers und lokale Produktbegriffe. Behalten Sie „OpenChatCut“, „B-Roll“, „Motion Graphics“, „MG 动画“, Modell-/Produktnamen und Plattformnamen in ihrer etablierten Form.
  • Benutzerorientierte kreative Formulierung. Für frühe Planungs- oder Kreativaufnahme-Formulare bevorzugen Sie natürliche Begriffe wie Idee, Richtung, Plan, Geschichte, Schussliste, Zielgruppe, Stimmung oder Videobedürfnis gegenüber interner Produktionsdokumentationssprache.

Vermeiden Sie steife Labels wie „Videotyp auswählen“, „Bitte wählen Sie den Videotyp für dieses Projekt“ oder „Welche Art von Video möchten Sie erstellen?“ für Szenario-Aufnahmen, es sei denn, der Host hat keinen Platz für wärmeren Text.

Bevorzugen Sie für ein Szenario-Aufnahme-Formular Text wie:

{
  "title": "Was möchtest du machen?",
  "prompt": "Wähle das nächstgelegene Videoszenario oder wähle „Etwas anderes“ und beschreibe deine Idee.",
  "submitLabel": "Erstellung starten",
  "messagePrefix": "Ich möchte mit dieser Videorichtung beginnen:",
  "fields": [
    {
      "id": "scenario",
      "label": "Welches Szenario passt am besten zu deinem Video?",
      "type": "single",
      "variant": "scenario",
      "otherPlaceholder": "Zum Beispiel: Verwandle mein Reisefilmmaterial in einen atmosphärischen Vlog / Erstelle ein Launch-Video für ein neues Produkt"
    }
  ]
}

Fügen Sie keine Datei-Upload-Fragen in Formulare ein. Wenn eine Aufgabe tatsächlich Quellmedien benötigt und das Projekt/der Chat diese nicht bereits hat, bitten Sie den Benutzer separat, Dateien im Editor hochzuladen (Drag & Drop oder die Upload-Schaltfläche oder Einfügen in den Chat-Composer). Der Datei-Upload ist keine Standardvoraussetzung für jeden Fragebogen; fragen Sie nur danach, wenn der nächste Bearbeitungsschritt von fehlenden Medien abhängt.

Für Auswahlfelder:

  • Verwenden Sie id für den internen Wert, den der nächste Tool-Aufruf benötigt.
  • Verwenden Sie label für das, was der Benutzer sieht.
  • Für normale Einfachauswahl- und Mehrfachauswahl-Karten (variant: "default") behalten Sie Optionen nur mit Label. Fügen Sie keine optionale description hinzu, es sei denn, der Benutzer kann die Auswahl nicht allein anhand der Labels unterscheiden.
  • Verwenden Sie description hauptsächlich für Sprachkarten. Visuelle Stilkarten sollten normalerweise nur preview + label verwenden.
  • Wenn eine Antwort außerhalb der Liste akzeptabel ist, fügen Sie eine explizite Option mit id: "__other__" und einem label in derselben Sprache wie der Rest des Formulars hinzu, wobei Sie das Wort verwenden, das der Benutzer für eine Antwort außerhalb der Liste erwarten würde. Das Widget wandelt diese Option bei Auswahl in eine Texteingabe um. Verwenden Sie otherPlaceholder, wenn die Texteingabe einen Platzhalter benötigt.

Für visuelle Karten:

  • Verwenden Sie echte Bild-URLs oder Datenbild-URLs in preview.
  • Für Design-Stil-Katalog-Auswahlen rufen Sie zuerst manage_design_style mit action: "list" auf, dann ordnen Sie jedes zurückgegebene Preset zu { id: preset.presetId, label: preset.name } zu (in diesem Build keine Thumbnails).
  • Harten Sie niemals Katalog-Preset-IDs vor, es sei denn, der Benutzer hat bereits eines ausgewählt.

Für Sprachkarten:

  • Verwenden Sie audioUrl für die Beispieldatei.
  • Bevorzugen Sie den dokumentierten Beispielpfad wie /voice-samples/doubao-liuchang.mp3 oder eine öffentliche HTTPS-URL. Übergeben Sie keine Localhost-Beispiel-URLs; MCP-Host-Iframes lösen editor-lokale Medien nicht zuverlässig auf.
  • Halten Sie benutzersichtbare Beschreibungen anbieterneutral. Beschreiben Sie die Stimme genauso wie die native OpenChatCut-Vorsprache-UI: Geschlecht / Altersspanne / Ton / Anwendungsfall, wie z.B. „Weiblich / jung / freundlich, allgemein“ oder „Männlich / mittleren Alters / tiefgründig, Wissenserklärung“. Zeigen Sie keine Anbieternamen wie ElevenLabs oder Doubao in den Optionsbeschreibungen.
  • Behalten Sie die Option id gleich der Anbieter-Stimmen-ID, die von submit_voice benötigt wird.

Für native Start-Szenario-Karten:

  • Verwenden Sie diese, wenn der Benutzer auswählen soll, welchen OpenChatCut-Video-Workflow er starten möchte, wie z.B. Sprecherkopf-Bearbeitung, MG-Animation, Langvideo-zu-Kurzvideo, Produkt-/App-Werbung, KI-Kurzfilm oder Erklärvideo.
  • Präsentieren Sie diese als gängige Videobedürfnisse/-szenarien, nicht als die einzigen möglichen Video-Workflows. Das Formular muss dem Benutzer auch ermöglichen, ein anderes Videobedürfnis zu beschreiben.
  • Verwenden Sie genau ein Einfachauswahl-Feld mit variant: "scenario".
  • Stellen Sie Optionen mit den kanonischen IDs unten und lokalisierten Labels in der Sprache des Benutzers bereit. Fügen Sie id: "__other__" nur hinzu, wenn Sie das Label für die Auflistung anpassen müssen; ansonsten hängt das Backend eine lokalisierte „Andere“-Option an.
  • Englische, chinesische und spanische Szenario-Labels/-Beschreibungen/-Starter-Prompts sind integriert. Für jede andere Benutzersprache übersetzen Sie die englischen label, description und den Starter-Prompt jedes Szenarios originalgetreu in die Sprache des Benutzers und übergeben Sie diese lokalisierten Werte in den Optionsobjekten. Bewahren Sie die OpenChatCut-Produktbegriffe und die Workflow-Bedeutung; fügen Sie keine neuen Anforderungen hinzu. Verwenden Sie submitPrompt für den übersetzten Starter-Prompt. Diese Überschreibung ist spezifisch für variant: "scenario"; normale Optionskarten, Sprachkarten und visuelle Stilkarten erhalten ihren sichtbaren Text bereits aus den von Ihnen übergebenen Werten.
  • Stellen Sie keine benutzerdefinierten preview oder audioUrl bereit; das Backend füllt das native Erstbildschirm-Vorschaubild.
  • Kanonische IDs: talking-head, motion-graphics, long-video-to-shorts, app-promo, ai-cinematic-short-film, explainer, plus __other__ für ein freies Videobedürfnis.
  • Beispieloptionen: { "id": "talking-head", "label": "Sprecherkopf-Bearbeitung" }, { "id": "motion-graphics", "label": "Motion Graphics" }, { "id": "long-video-to-shorts", "label": "Langvideo zu Kurzvideos" }, { "id": "app-promo", "label": "Produkt / App-Werbung" }, { "id": "ai-cinematic-short-film", "label": "KI-Kurzfilm" }, { "id": "explainer", "label": "Erklärvideo" }, { "id": "__other__", "label": "Etwas anderes" }.

Aktuelle Lücken

ask_followup_questions ist nur für strukturierte Antworten. Es unterstützt kein natives benutzerdefiniertes HTML, keine Timeline-Parameter-Brücken, keine Editor-Elementauswahl und keine Datei-Upload-Felder. Für Dateien, die bereits von der Agenten-Laufzeit gehalten oder außerhalb dieser Karte direkt an den Chat angehängt werden, ist der Workflow für den Medienimport weiterhin gültig: Rufen Sie import_media auf und führen Sie den Hilfs-/direkten Upload-Pfad aus. Für Dateien, die der Benutzer direkt in einem Projekt platzieren möchte, bitten Sie ihn, die OpenChatCut-Editor-Upload-UI zu verwenden.

Beispiel

{
  "title": "Deine Videoidée",
  "prompt": "Wähle aus oder fülle aus, was du im Kopf hast, damit OpenChatCut eine gute Startrichtung wählen kann.",
  "submitLabel": "Idee senden",
  "messagePrefix": "Fahre mit dieser Videorichtung fort:",
  "fields": [
    {
      "id": "goal",
      "label": "Was ist das Hauptziel dieses Videos?",
      "type": "single",
      "options": [
        { "id": "product_intro", "label": "Produktvorstellung" },
        { "id": "social_ad", "label": "Social-Ad" },
        { "id": "__other__", "label": "Etwas anderes" }
      ]
    },
    {
      "id": "elements",
      "label": "Was soll es enthalten? (Wählen Sie alle zutreffenden aus)",
      "type": "multi",
      "options": [
        { "id": "broll", "label": "B-Roll" },
        { "id": "logo", "label": "Markenlogo" },
        { "id": "__other__", "label": "Etwas anderes" }
      ]
    }
  ]
}

Individual skills in this repo

This repo contains 11 individual skills — each has its own dedicated page.

0xsline/openchatcut

Connect an MCP-capable coding agent to OpenChatCut and edit local video projects. Use when the user asks to install, connect, or set up OpenChatCut; inspect or edit an OpenChatCut project; work with its timeline, transcript, captions, media, generation, motion graphics, audio, color, or export tools; or recover from an OpenChatCut MCP error.

0xsline/openchatcut

Use when acquiring or importing media into a OpenChatCut project asset library for video editing or creation, including local/attached videos, user-provided paths, public media URLs, web video/audio/image assets, upload fallback decisions, and deciding between import_media, download_media, or manual user action.

0xsline/openchatcut

Use when a OpenChatCut video editing or creation workflow needs export, render, download, share, final delivery, subtitle-file export, render choice, local-only asset handling, or export fallback explanation.

0xsline/openchatcut

AI image generation via Fal.ai, gpt-image-2, nano-banana, MiniMax image-01, and xAI Grok Imagine. Use when the user wants to generate or create an image / picture / still.

0xsline/openchatcut

Use when a OpenChatCut tool call fails or returns an unexpected shape.

0xsline/openchatcut

Music generation via Mureka, MiniMax, Atlas Cloud, and Sonilo. Use for instrumentals, songs, soundtracks, track/stem generation, covers, or video-conditioned scoring of the finished cut through `submit_music`.

0xsline/openchatcut

OpenChatCut product knowledge — UI layout, editor features, and how generation providers are configured. Use when the user asks about the product interface, how to use a feature, where to find something, or needs GUI guidance for something the agent cannot do directly. Also use as fallback when a task fails and the user needs to complete it manually in the UI. NOT for live project-state queries ("where are my folders?", "what's on my timeline?", "where is clip X?") — those are answered by `read_project`, not by this skill.

0xsline/openchatcut

AI shader generator for WebGL video effects, transitions, masks, and color grading (LUT / 调色 / 电影感 / film look). Use when the user wants a video effect (滤镜 / 特效), a transition (转场 / crossfade / wipe / cube / 3d), a mask (蒙版 / 遮罩 / reveal), a zoom / push-in (推近 / 推镜头), or a color grade — try the built-in effects (zoom, builtin LUTs) before generating a new shader.

0xsline/openchatcut

Use when checking whether agent edits are reflected in the OpenChatCut project and editor.

0xsline/openchatcut

AI video generation via Fal.ai, Seedance 2.0, Kling, MiniMax Hailuo, xAI Grok Imagine, and OFox. Use when the user wants to generate a video clip — text-to-video, image-to-video, first/last-frame transitions, reference-guided generation, multi-shot, or generatively editing / extending an existing clip.

0xsline/openchatcut

Text-to-Speech (TTS), voiceover, narration placement/sync, and custom sound effects (SFX) generator. Use when the user wants generated speech from text, wants to add/replace/align narration or voiceover for an existing video/timeline, wants to keep existing voiceover synced after visual retiming edits, needs voice audition/selection, or explicitly wants a newly generated/custom sound effect that is not available in the Sound Effects library.

Verwandte Skills