-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
User Requirement
The user wants to run the codey-video plugin (three video‑analysis skills) from the OpenCode platform instead of Claude Code. This requires exposing frame extraction, audio transcription, and multimodal answering via OpenCode’s plugin system.
Research Summary
- API Differences: Claude Code uses
SKILL.mdprompts that fork a Haiku sub‑agent and rely onBash&Readtools. OpenCode plugins are TypeScript/JavaScript modules exporting a plugin function and interacting with the SDK (client.models.chat,client.files.upload,$shell helper). - Requirements: Access to the same preprocessing scripts (
scripts/*.ts), Whisper models inresources/models, and a vision‑capable LLM (Claude 3.5 Sonnet, GPT‑4V, Gemini‑1.5‑Flash, etc.). - Acceptance Criteria:
- The three skills (
query-video-segment,generate-video-outline,generate-transcript) are callable from OpenCode (opencode run …). - Results are comparable to the Claude Code version (frame count, transcript accuracy, multimodal answer quality).
- All processing stays local (ffmpeg, Whisper); no external services required.
- Installation works via
opencode plugin installor by copying the plugin into.opencode/plugins.
- The three skills (
- Testing Plan:
- Unit Tests: Mock the SDK to verify correct chat message construction and file uploads.
- Integration Tests: Run each skill on a small sample video (≤ 10 s) and assert:
- At least one frame image is uploaded.
- A non‑empty transcript JSON is produced.
- The LLM response contains the user query text.
- CI: GitHub Actions that install ffmpeg, execute
opencode runfor each skill, and compare output length to a baseline.
Additional Notes
- Expose only the needed
bashandreadtools (or a custom wrapper) to retain the security model. - Model selection should be configurable via an environment variable (
VISION_MODEL). - Optional OpenCode hooks (notifications, logging) can be added later.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels