Skip to content

feat(elevenlabs): add ElevenLabs TTS provider (CLI + Studio API)#492

Closed
cuio wants to merge 1 commit intoheygen-com:mainfrom
cuio:feat/elevenlabs-tts
Closed

feat(elevenlabs): add ElevenLabs TTS provider (CLI + Studio API)#492
cuio wants to merge 1 commit intoheygen-com:mainfrom
cuio:feat/elevenlabs-tts

Conversation

@cuio
Copy link
Copy Markdown

@cuio cuio commented Apr 25, 2026

Adds first-class ElevenLabs support so projects can use cloud voices alongside the existing local Kokoro pipeline.

  • @hyperframes/core/elevenlabs: client (listVoices, synthesize, fetchVoicePreview) and dotenv-based key loader (process env → /.env → ~/.hyperframes/.env). API key never leaves the server — the studio routes proxy preview audio.
  • CLI: new hyperframes el-tts command (--voice, --list, --stability, --similarity-boost, --style, --format, --json). Registered in cli.ts and help.ts under "AI & Integrations".
  • Studio API: GET /elevenlabs/voices, GET /elevenlabs/voices/:id/preview (proxied stream), POST /projects/:id/elevenlabs/generate (writes into /assets/voice/, validated via isSafePath).

No new runtime dependencies — uses node:fetch.

What

Brief description of the change.

Why

Why is this change needed?

How

How was this implemented? Any notable design decisions?

Test plan

How was this tested?

  • Unit tests added/updated
  • Manual testing performed
  • Documentation updated (if applicable)

Adds first-class ElevenLabs support so projects can use cloud voices
alongside the existing local Kokoro pipeline.

- @hyperframes/core/elevenlabs: client (listVoices, synthesize,
  fetchVoicePreview) and dotenv-based key loader (process env →
  <project>/.env → ~/.hyperframes/.env). API key never leaves the
  server — the studio routes proxy preview audio.
- CLI: new `hyperframes el-tts` command (--voice, --list,
  --stability, --similarity-boost, --style, --format, --json).
  Registered in cli.ts and help.ts under "AI & Integrations".
- Studio API: GET /elevenlabs/voices, GET /elevenlabs/voices/:id/preview
  (proxied stream), POST /projects/:id/elevenlabs/generate (writes into
  <project>/assets/voice/, validated via isSafePath).

No new runtime dependencies — uses node:fetch.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@cuio cuio closed this Apr 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant