Communitygithub.com

kyinwind/videohero-skill

Piloter l'application locale VideoHero via son interface en ligne de commande (CLI) pour découvrir les voix et modèles, générer de la parole à partir de texte, rendre des présentations PPTX/PDF en vidéos narrées, et surveiller ou annuler des travaux VideoHero.

Qu'est-ce que videohero-skill ?

Cette compétence permet à un agent IA d'interagir avec l'application VideoHero installée localement en utilisant exclusivement son outil CLI `videohero`. Elle couvre la découverte des voix et des modèles disponibles, la synthèse vocale (text-to-speech) à partir de fichiers texte ou de texte saisi, ainsi que la conversion de présentations PPTX ou PDF en vidéos narrées avec rendu. L'agent peut également surveiller l'état des travaux (jobs) en cours, annuler un travail si nécessaire, et récupérer le chemin du fichier de sortie final. La compétence est conçue pour respecter strictement le protocole CLI, sans jamais automatiser l'interface graphique SwiftUI ni manipuler directement la base de données SwiftData de VideoHero. Elle s'appuie sur les capacités déclarées par le CLI pour choisir les moteurs, voix, formats appropriés, et gère les workflows de manière sécurisée : résolution absolue du chemin de l'exécutable, vérification préalable avec `videohero doctor`, et suivi des travaux avec `jobs wait` ou `jobs status`. Elle est particulièrement utile pour les développeurs ou utilisateurs souhaitant intégrer VideoHero dans des pipelines automatisés ou des assistants conversationnels, sans intervention manuelle.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add kyinwind/videohero-skill

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

VideoHero

Utilisez VideoHero uniquement via son interface en ligne de commande (CLI) videohero. N'automatisez pas l'interface SwiftUI, ne modifiez pas la base de données SwiftData de VideoHero, n'appelez pas ses exécutables auxiliaires privés, et ne construisez pas de fichiers dans ses répertoires de projet.

Résolvez l'exécutable CLI à partir d'un chemin absolu fourni par l'utilisateur ou le kit de test, puis d'un chemin absolu VIDEOHERO_CLI, et seulement ensuite de la commande videohero présente dans le PATH. Continuez à utiliser cet exécutable exact pour l'ensemble du workflow. Commencez par :

CLI="/chemin/absolu/fourni/par/l'utilisateur/bin/videohero"
"$CLI" version --format json
"$CLI" capabilities --format json

Si aucun chemin absolu n'a été fourni, résolvez command -v videohero et utilisez son chemin absolu retourné comme CLI.

Si l'exécutable est manquant, si l'automatisation est désactivée ou si le protocole rapporté est incompatible, arrêtez-vous et expliquez ce que l'utilisateur doit activer ou installer dans VideoHero. Ne substituez pas des commandes devinées. Le premier protocole stable attendu est la version 1.

Workflow

  1. Lisez les capacités actuelles au lieu de vous fier à des moteurs, voix, formats ou valeurs par défaut mémorisés.
  2. Exécutez videohero doctor --workflow <workflow> --format json avant toute génération coûteuse. Pour une demande concrète, incluez ses paramètres d'entrée et de sortie lorsque le CLI installé les prend en charge.
  3. Résolvez la voix demandée à partir de videohero voices list --format json. Utilisez son id stable, et non son titre localisé. Si la description de l'utilisateur correspond à plusieurs voix, présentez les candidats pertinents au lieu de choisir silencieusement.
  4. Soumettez l'opération avec des chemins absolus et --format json sans --wait, puis analysez l'identifiant de travail retourné. Préférez --text-file pour les textes longs ou sensibles.
  5. Pour un identifiant de travail retourné, utilisez videohero jobs wait <job-id> --format ndjson lorsque l'utilisateur souhaite que le tour actuel attende ; sinon, signalez l'identifiant du travail et utilisez jobs status plus tard. Pendant les travaux de présentation, relayez les changements de stade/progression significatifs ainsi qu'une estimate si présente. Une estimate absente signifie que VideoHero ne dispose pas d'un historique compatible suffisant ; n'inventez jamais une heure d'achèvement. Utilisez jobs cancel uniquement lorsque l'utilisateur demande l'annulation ou que la tâche en cours l'autorise explicitement.
  6. Considérez le succès comme confirmé uniquement lorsque l'état final est succeeded, delivery.state est delivered et que le CLI se termine avec le code 0. Retournez le destinationPath réel du reçu ainsi que tout avertissement.

Le rendu de présentation crée et enregistre en continu un projet VideoHero modifiable par défaut lorsque capabilities.presentation.persistsProject est vrai. N'ajoutez ni n'inventez d'option --save-project. La synthèse vocale reste un travail audio temporaire et ne doit pas créer de projet VideoHero. Dans les deux cas, n'écrivez jamais vous-même la base de données SwiftData de VideoHero ni le répertoire du projet ; l'application gère la persistance.

Ne téléchargez pas de modèles, n'acceptez pas de licences, n'activez pas le contrôle agent, n'autorisez pas une voix personnelle, n'écrasez pas une sortie existante et ne réessayez pas une génération échouée avec des paramètres sensiblement différents, sauf si l'utilisateur a autorisé cette action. Un délai d'attente n'est pas une preuve que la soumission a échoué : interrogez le travail ou réessayez avec la même clé d'idempotence.

Routes

Conservez les chemins en tant qu'arguments séparés de la commande. N'interpolez pas le texte de l'utilisateur dans la syntaxe du shell. Lorsqu'une demande est complexe, écrivez un fichier JSON de requête versionné pris en charge par capabilities et passez son chemin plutôt que d'assembler une ligne de commande fragile.

Skills associés