Communitygithub.com

kyinwind/videohero-skill

로컬 VideoHero 앱을 지원되는 CLI를 통해 제어하여 음성과 모델을 검색하고, 텍스트를 음성으로 변환하며, PPTX/PDF 프레젠테이션을 내레이션이 포함된 비디오로 렌더링하고, VideoHero 작업을 모니터링하거나 취소합니다. 사용자가 에이전트에게 VideoHero로 미디어를 생성하도록 요청할 때 사용하며, 일반 미디어 도구나 UI 클릭 자동화에는 사용하지 마세요.

videohero-skill란 무엇인가요?

이 스킬은 로컬 VideoHero 앱을 CLI를 통해 프로그래매틱하게 제어하는 방법을 에이전트에게 가르칩니다. 에이전트는 `videohero` CLI 실행 파일을 사용자가 제공한 절대 경로, `VIDEOHERO_CLI` 환경 변수, 또는 시스템 `PATH`에서 순차적으로 찾아 사용합니다. 먼저 `version`, `capabilities` 명령으로 실행 환경과 지원 프로토콜을 확인하고, `doctor --workflow`로 비용이 많이 드는 생성 전에 사전 검증을 수행합니다. 음성은 `voices list`에서 안정적인 `id`를 사용해 선택하고, 작업은 `--wait` 없이 제출한 후 반환된 job id로 상태를 폴링하거나 기다립니다. 프레젠테이션 렌더링 시 VideoHero 프로젝트가 자동으로 생성되는 반면, 텍스트-음성 변환은 임시 오디오 작업으로 유지됩니다. 모든 작업은 CLI의 JSON 출력을 파싱하고, 오류 처리와 취소는 사용자 명시적 승인 하에만 수행합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add kyinwind/videohero-skill

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

VideoHero

VideoHero는 지원되는 videohero CLI를 통해서만 사용하세요. SwiftUI 인터페이스를 자동화하거나, VideoHero의 SwiftData 저장소를 편집하거나, 비공개 헬퍼 실행 파일을 호출하거나, 프로젝트 디렉토리 내부에 파일을 직접 구성하지 마세요.

사용자 또는 테스트 키트가 제공한 절대 경로, 그 다음에는 절대 경로 VIDEOHERO_CLI, 마지막으로 PATH 상의 videohero 명령에서 CLI 실행 파일을 찾습니다. 워크플로우 전체에서 정확히 그 실행 파일을 계속 사용하세요. 다음으로 시작하세요:

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

절대 경로가 제공되지 않은 경우 command -v videohero를 확인하여 반환된 절대 경로를 CLI로 사용하세요.

실행 파일이 없거나, 자동화가 비활성화되었거나, 보고된 프로토콜이 호환되지 않는 경우 작업을 중단하고 사용자가 VideoHero에서 활성화하거나 설치해야 할 사항을 설명하세요. 추측한 명령을 대체하지 마세요. 예상되는 첫 번째 안정적인 프로토콜은 버전 1입니다.

워크플로우

  1. 기억된 엔진, 음성, 형식 또는 기본값에 의존하지 않고 현재 기능을 읽습니다.
  2. 비용이 많이 드는 생성 전에 videohero doctor --workflow <워크플로우> --format json을 실행합니다. 구체적인 요청의 경우, 설치된 CLI가 이를 지원할 때 입력 및 출력 매개변수를 포함하세요.
  3. videohero voices list --format json에서 요청된 음성을 찾습니다. 지역화된 제목이 아닌 안정적인 id를 사용하세요. 사용자의 설명이 여러 음성과 일치하는 경우, 묵묵히 선택하지 말고 의미 있는 후보를 제시하세요.
  4. --wait 없이 절대 경로와 --format json을 사용하여 작업을 제출하고, 반환된 작업 id를 파싱합니다. 길거나 민감한 텍스트에는 --text-file을 선호하세요.
  5. 반환된 작업 id에 대해, 사용자가 현재 턴 동안 기다리기를 원하면 videohero jobs wait <job-id> --format ndjson을 사용하고, 그렇지 않으면 작업 id를 보고하고 나중에 jobs status를 사용합니다. 프레젠테이션 작업 중에는 의미 있는 단계/진행 변경사항과 estimate(있는 경우)를 전달합니다. estimate가 없으면 VideoHero에 호환되는 기록이 충분하지 않음을 의미합니다. 완료 시간을 절대 임의로 생성하지 마세요. 사용자가 취소를 요청하거나 현재 작업이 명시적으로 승인한 경우에만 jobs cancel을 사용하세요.
  6. 최종 상태가 succeeded이고, delivery.state가 delivered이며, CLI가 코드 0으로 종료될 때만 성공으로 처리합니다. 영수증의 실제 destinationPath와 모든 경고를 반환합니다.

프레젠테이션 렌더링은 capabilities.presentation.persistsProject가 true일 때 기본적으로 편집 가능한 VideoHero 프로젝트를 생성하고 지속적으로 저장합니다. --save-project 옵션을 추가하거나 임의로 만들지 마세요. 텍스트-음성 변환은 임시 오디오 작업으로 유지되며 VideoHero 프로젝트를 생성해서는 안 됩니다. 두 경우 모두 VideoHero의 SwiftData 저장소나 프로젝트 디렉토리를 직접 쓰지 마세요. 앱이 지속성을 소유합니다.

사용자가 해당 작업을 승인하지 않은 경우 모델을 다운로드하거나, 라이선스를 수락하거나, 에이전트 제어를 활성화하거나, 개인 음성을 승인하거나, 기존 출력을 덮어쓰거나, 실패한 생성을 본질적으로 다른 설정으로 재시도하지 마세요. 시간 초과는 제출 실패의 증거가 아닙니다. 작업을 조회하거나 동일한 idempotency 키로 재시도하세요.

경로

경로는 별도의 명령 인수로 유지하세요. 사용자 텍스트를 셸 구문에 삽입하지 마세요. 요청이 복잡한 경우, capabilities에서 지원하는 버전 관리된 요청 JSON을 작성하고 경로를 전달하세요. 취약한 명령줄을 조립하지 마세요.

관련 스킬