Narova + OpenAI
Use this skill for optional OpenAI speech or Sora video generation. Keep every OpenAI API detail in this companion and communicate through Narova's generic speech or video JSONL protocol. Let Narova own caching, staging, provenance, captions, rendering, and every downstream media stage.
Requires the standalone Narova CLI, the Narova skill, Python 3.10+, network
access, an OpenAI Platform project with the requested model access, and
OPENAI_API_KEY.
Setup
Install the standalone Narova CLI as described by the
narovaskill, then installnarovaandnarova-openaias independently selected skills fromammar-hasan/narova.Locate this installed skill from the directory containing this
SKILL.md; call it<narova-openai-skill-dir>.Verify the worker:
bash <narova-openai-skill-dir>/tool/setup.shSet the key in the environment that runs Narova. Never put it in
reel.config.mjs:export OPENAI_API_KEY="..."Explicitly register and verify only the workers you need:
narova providers add \ <narova-openai-skill-dir>/tool/provider.json narova providers doctor openai narova voices list --backend openai narova providers add \ <narova-openai-skill-dir>/tool/video-provider.json narova providers doctor sora
Read references/configuration.md before writing a voice block. Read references/video-generation.md before using Sora, including its announced API shutdown date.
Operating rules
- Default to
gpt-4o-mini-ttswithmarinorcedar; use the dated model snapshot when a render must remain pinned. - Put delivery direction in
providerOptions.instructions, not visible caption text. Keepvo.textclean; reservesynthesisTextfor wording that should be spoken but not captioned. - Keep
OPENAI_API_KEYonly in the process environment or a user-managed secret store. - Do not add the OpenAI SDK to Narova's venv or modify Narova's setup.
- Do not copy this worker into the Narova skill. Registration composes two independently installed skills.
- Treat synthesis as a network operation that may be rate-limited or billed.
- Do not automatically retry synthesis failures. A request may be billed even when the connection fails before Narova receives it.
- Disclose to end users that the voice is AI-generated.
- Let Narova's sentence cache avoid repeat billing. Text, voice, language, tempo, gain, provider version, model, speed, or instructions changes invalidate the relevant cache entry.
- Treat Sora generation as an explicit, billed network operation. Do not retry a submission automatically; the remote job may already exist.
- Keep Sora's lifecycle warning visible. Its API is currently deprecated and scheduled to shut down on September 24, 2026.