TWISTEdBRACKETS

Skill

Blog Audio Generate

Generate blog post MP3 audio with ElevenLabs from a spoken script and enable hasAudio on the post.

// writing;

Behaviour

What it does

  • Accepts only a post slug — no paths or URLs from the user
  • Reads the spoken script from src/content/audio/{slug}.script.md
  • Calls ElevenLabs TTS with ELEVENLABS_API_KEY, ELEVENLABS_VOICE_ID, and optional ELEVENLABS_MODEL_ID
  • Saves MP3 to public/audio/posts/{slug}.mp3 for Next.js static streaming
  • Sets hasAudio: true on the MDX post automatically after success

When to use

Good fits

After blog-audio-script has produced a spoken script

When you want to publish an audio version of a blog post

Regenerating audio after script edits

Install

Get this skill

Uses Agent Kit via npx; no global install required.

Quick install

sh
npx @levi-putna/agent-kit@latest add levi-putna/skills --skill blog-audio-generate

Global (Cursor)

sh
npx @levi-putna/agent-kit@latest add levi-putna/skills --skill blog-audio-generate --global --agent cursor

Global (Claude)

sh
npx @levi-putna/agent-kit@latest add levi-putna/skills --skill blog-audio-generate --global --agent claude

Project install

sh
npx @levi-putna/agent-kit@latest add levi-putna/skills --skill blog-audio-generate --project

Interactive install

sh
npx @levi-putna/agent-kit@latest add levi-putna/skills

Uninstall

sh
npx @levi-putna/agent-kit@latest remove blog-audio-generate

Example

Example prompt

Blog Audio Generate

Generate audio for the blog post is-the-cms-dead.

Flow

How the skill works

  1. Confirm src/content/audio/{slug}.script.md exists
  2. Run pnpm run generate:post-audio -- {slug}
  3. MP3 saved to public/audio/posts/{slug}.mp3; hasAudio set automatically
  4. Test /{slug} and /blog?audio=true