Communitygithub.com

VideoHero

Steuert die lokale VideoHero-App über ihre unterstützte CLI, um Stimmen und Modelle zu entdecken, Sprache aus Text zu generieren, PPTX/PDF-Präsentationen als Videos mit Voice-Over zu rendern und VideoHero-Jobs zu überwachen oder abzubrechen. Verwende dies, wenn ein Benutzer einen Agenten auffordert, Medien mit VideoHero zu erstellen; nicht für allgemeine Medienwerkzeuge oder UI-Klick-Automatisierung.

Was ist VideoHero?

Diese Fähigkeit ermöglicht es einem KI-Agenten, mit der nativen macOS-App VideoHero zu interagieren, indem er ihr offizielles CLI-Tool „videohero“ verwendet. Sie dient als kontrollierte Schnittstelle für Aufgaben wie Text-to-Speech, Präsentation-zu-Video-Konvertierung (PPTX/PDF) und Job-Management, ohne die SwiftUI-Oberfläche, das SwiftData-Speicher oder private Hilfsprogramme zu automatisieren. Die Fähigkeit validiert zunächst die CLI-Verfügbarkeit, liest die aktuellen Fähigkeiten der App, löst die richtige Stimme anhand von stabilen IDs auf (statt lokalisierten Titeln) und sendet Jobs mit absolutem Pfad und JSON-Formatierung. Sie behandelt Job-Workflows, indem sie die Ausgabe als ndjson streamt oder den Job-Status später abfragt, und sie besteht auf Erfolgsbedingungen (Zustand „succeeded“ und „delivery.state“ = „delivered“), bevor sie Ergebnisse zurückmeldet. Die Implementierung stellt sicher, dass Agenten keine nicht autorisierten Aktionen ausführen (z. B. Modelle herunterladen, Ausgaben überschreiben oder Einstellungen wiederholen), bietet aber Mechanismen zur Fehlerbehebung und Wiederherstellung durch Job-Abfrage und idempotente Schlüssel.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add kyinwind/videohero-skill

In Ihrer bevorzugten KI fragen

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

Dokumentation

Was macht VideoHero?

Verwende VideoHero nur über seine unterstützte videohero CLI. Automatisiere nicht die SwiftUI-Oberfläche, bearbeite nicht den SwiftData-Speicher von VideoHero, rufe keine privaten Hilfsprogramme auf und erstelle keine Dateien in seinen Projektverzeichnissen.

Ermittle das CLI-Executable zuerst aus einem absoluten Pfad, der vom Benutzer oder Testkit bereitgestellt wird, dann aus einer absoluten VIDEOHERO_CLI und erst dann aus dem Befehl videohero auf PATH. Verwende dieses exakte aufgelöste Executable für den gesamten Workflow. Beginne mit:

CLI="/absolute/path/supplied/by/the/user/bin/videohero"
"$CLI" version --format json
"$CLI" capabilities --format json

Wenn kein absoluter Pfad bereitgestellt wurde, löse command -v videohero auf und verwende den zurückgegebenen absoluten Pfad als CLI.

Wenn das Executable fehlt, die Automatisierung deaktiviert ist oder das gemeldete Protokoll inkompatibel ist, stoppe und erkläre, was der Benutzer in VideoHero aktivieren oder installieren muss. Ersetze keine erratenen Befehle. Das erwartete erste stabile Protokoll ist Version 1.

Workflow

  1. Lies die aktuellen Fähigkeiten, anstatt dich auf gespeicherte Engines, Stimmen, Formate oder Standardwerte zu verlassen.
  2. Führe videohero doctor --workflow <workflow> --format json vor teuren Generierungen aus. Bei einer konkreten Anfrage füge deren Eingabe- und Ausgabeparameter hinzu, wenn die installierte CLI sie unterstützt.
  3. Löse die angeforderte Stimme aus videohero voices list --format json auf. Verwende ihre stabile id, nicht ihren lokalisierten Titel. Wenn die Beschreibung des Benutzers auf mehrere Stimmen zutrifft, präsentiere die sinnvollen Kandidaten, anstatt still zu wählen.
  4. Sende den Vorgang mit absoluten Pfaden und --format json ohne --wait, dann parse die zurückgegebene Job-ID. Bevorzuge --text-file für lange oder sensible Texte.
  5. Verwende für eine zurückgegebene Job-ID videohero jobs wait <job-id> --format ndjson, wenn der Benutzer möchte, dass die aktuelle Runde wartet; ansonsten melde die Job-ID und verwende später jobs status. Gib während Präsentationsjobs sinnvolle Phasen-/Fortschrittsänderungen und eine estimate weiter, wenn vorhanden. Ein fehlender Schätzwert bedeutet, dass VideoHero nicht genügend kompatible Historie hat; erfinde niemals eine Fertigstellungszeit. Verwende jobs cancel nur, wenn der Benutzer den Abbruch verlangt oder die aktuelle Aufgabe ihn explizit autorisiert.
  6. Betrachte Erfolg nur als bestätigt, wenn der Endzustand succeeded, delivery.state = delivered und der CLI mit Code 0 beendet ist. Gib den tatsächlichen destinationPath der Quittung und alle Warnungen zurück.

Das Rendern von Präsentationen erstellt und speichert standardmäßig ein bearbeitbares VideoHero-Projekt, wenn capabilities.presentation.persistsProject wahr ist. Füge keine --save-project-Option hinzu oder erfinde sie. Text-to-Speech bleibt ein temporärer Audio-Job und darf kein VideoHero-Projekt erstellen. Schreibe in beiden Fällen niemals selbst in den SwiftData-Speicher oder das Projektverzeichnis von VideoHero; die App besitzt die Persistenz.

Lade keine Modelle herunter, akzeptiere keine Lizenzen, aktiviere keine Agentensteuerung, autorisiere keine persönliche Stimme, überschreibe keine vorhandene Ausgabe oder wiederhole eine fehlgeschlagene Generierung mit wesentlich anderen Einstellungen, es sei denn, der Benutzer hat diese Aktion autorisiert. Ein Timeout ist kein Beweis dafür, dass die Übermittlung fehlgeschlagen ist: Frage den Job ab oder wiederhole ihn mit demselben Idempotenz-Schlüssel.

Routen

Halte Pfade als separate Befehlsargumente. Interpoliere keinen Benutzertext in die Shell-Syntax. Wenn eine Anfrage komplex ist, erstelle ein versioniertes JSON-Anfrage, das von capabilities unterstützt wird, und übergebe dessen Pfad, anstatt eine fragile Befehlszeile zusammenzubauen.

Verwandte Skills