← Back to Free Stuff
Fish Audio · Drama 3 · Claude

Free Guide · October 2026

Build the 3 Things
From My Drama 3 Video

An AI receptionist that answers every call and drops bookings into a spreadsheet. A morning podcast Claude writes from your inbox, read to you in your own voice. And animated videos with real voice acting. Every step and every prompt is below.

3 Builds · 6 Copy-Paste Prompts · 10,000 Free Credits · No Code Needed

Start Here

Grab the free credits first

1

10,000 free web app credits when you sign up through my link. Enough to clone your voice and try every build in this guide before you spend anything.

2

50% off every plan (Plus, Pro + Max).

3

80% off the Drama 3 API for a limited time. $10 per million characters, down from $50. This is what builds 2 and 3 run on if you automate them.

Claim your 10,000 free credits

One rule before you build anything

Fish Audio's free plan is personal use only. Your morning podcast is personal, so free works. The receptionist answers calls for a business, which is commercial use, so it needs a paid plan. Same goes for any video you make for a brand or a client.

Drama 3 in 60 Seconds

You direct it like a voice actor

Every other AI voice reads your words. Drama 3 performs them. You tell it how to say a line in plain English, inside square brackets, and it does it. Builds 2 and 3 both use this, so here's the whole cheat sheet:

Describe the delivery before the words

[barely holding it together, forcing a smile] I'm fine. Really. Go on without me.

Drop sounds and pauses exactly where they happen

I'm fine. [shaky breath] Really. [small laugh] Go on without me.

Change just a few words with paired tags

I'm fine. Really. <whisper>Go on without me.</whisper>

Tags: whisper, emphasis, soft, fast, slow, stress, forceful.

Switch language mid-sentence (experimental)

Welcome to Madrid. <spanish>Bienvenidos a nuestra casa.</spanish> Make yourself at home.

Write a whole scene with multiple voices, generated in one pass

Build 3 shows you how.

Two things to know. Directions affect everything after them, so put each one right before the words it's for. And it's still a preview model, so takes vary. Generate 2 or 3 and keep the best. Don't want to write directions yourself? Paste a plain script into the text to speech editor, pick Drama 3, and hit Auto Tag. It adds them for you. Full syntax is in the Drama 3 docs.

Build 1

An AI receptionist that never misses a call

Here's the whole thing: you give Claude your business info, Claude builds the receptionist inside Fish Audio for you, you buy a phone number, and you forward your business line to it. Now every call gets answered, even at 2am on a Sunday, and every booking lands in a Google Sheet.

If you run a business, that's every missed call that used to go to your competitor. If you want to make money helping businesses with AI, this is one of the easiest things you can sell, because every owner already knows what a missed call costs them.

Six steps. Claude does the hard part.

Build 1 · Step 1

Get a paid plan and an API key

Sign up at fish.audio through my link (that's where the 10,000 credits and the 50% off come from) and pick a paid plan. Remember: a receptionist on a business line is commercial use.

Then go to API keys and create one. Claude uses it to build the agent for you. Keep it somewhere safe and never paste it anywhere public.

Good to know: every account starts with a $5 agent trial balance, about 60 minutes of calls, so you can test before real minutes cost you anything.

Build 1 · Step 2

Give Claude Code the Fish Audio skill

Open your terminal and run this one line. It teaches Claude Code exactly how Fish Audio's API works, so it doesn't guess.

npx skills add https://docs.fish.audio -a claude-code

Build 1 · Step 3

Make the bookings spreadsheet

Fish Audio agents can call any web address in the middle of a call. They're called webhook tools. We're going to give yours one web address that writes a new row to a Google Sheet. Free, no server, about 5 minutes.

1

Create a new Google Sheet. Rename the tab at the bottom to Bookings. In row 1, type these headers: Received, Name, Phone, Requested time, Service, Notes.

2

Click Extensions → Apps Script. Delete what's there and paste the script below. Change the secret word on line 1 to something long and random.

3

Click Deploy → New deployment, click the gear, pick Web app. Execute as: Me. Who has access: Anyone. Deploy, approve the permissions, and copy the Web app URL (it ends in /exec).

Copy-paste: the spreadsheet script (Google Apps Script)

const SECRET = 'change-me-to-a-long-random-word';

function doPost(e) {
  const data = JSON.parse(e.postData.contents);
  if (data.secret !== SECRET) {
    return ContentService.createTextOutput('unauthorized');
  }
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Bookings');
  sheet.appendRow([
    new Date(),
    data.name || '',
    data.phone || data.caller_number || '',
    data.requested_time || '',
    data.service || '',
    data.notes || '',
  ]);
  return ContentService
    .createTextOutput(JSON.stringify({ saved: true }))
    .setMimeType(ContentService.MimeType.JSON);
}

The secret word is your lock. Without it, anyone who found the URL could write rows to your sheet. Keep the URL and the secret handy, Claude asks for both in the next step.

Build 1 · Step 4

Let Claude build the receptionist

Open Claude Code in an empty folder and paste this. It interviews you about the business, writes the receptionist's instructions and a knowledge doc, builds the agent inside your Fish Audio account, wires up the spreadsheet, publishes it, and finds you a local phone number. It stops and asks before it buys anything.

Copy-paste prompt for Claude Code: build the receptionist

You're going to build me an AI phone receptionist inside Fish Audio using their Voice Agents API. Use the Fish Audio skill I installed, and read https://docs.fish.audio/llms.txt for the current endpoints before you call anything.

STEP 1. SETUP
Ask me for my Fish Audio API key and save it in a .env file as FISH_API_KEY. Never print it back to me.

STEP 2. INTERVIEW ME
Ask me these one at a time and wait for each answer:
1. Business name and what we do
2. Hours, including holidays
3. Every service with prices or price ranges
4. Address, parking, and how to find us
5. Service area, if we travel to customers
6. How booking works today (appointment length, how far out we book)
7. What to say to sales calls and solicitors
8. The 5 to 10 questions callers ask most, with the answers
9. What to do when it doesn't know the answer
10. The name and personality I want the receptionist to have
11. My area code (for the phone number)
12. My Google Sheets web app URL and the secret word from my Apps Script

STEP 3. WRITE THE BRAIN
Write a system prompt under 2,000 tokens. It's a voice agent, so: one or two spoken sentences per reply, no lists, no markdown, never invent prices or availability, and when unsure take a message (name, callback number, reason, then read it back). The greeting says "this call may be recorded."
Booking rule: when a caller wants an appointment, collect their name, phone number, the day and time they want, and the service. Repeat it back. Once they confirm, call the log_booking tool, then tell them they're on the schedule and the team will confirm shortly.
Then write a knowledge doc as plain .txt with every fact from the interview.
Show me both and wait for my OK.

STEP 4. BUILD IT IN FISH AUDIO
1. Upload the knowledge doc as a knowledge source.
2. Show me 3 warm, natural-sounding voices from the Fish Audio library and let me pick one.
3. Create the agent with the system prompt, the voice I picked, and a fixed first message that uses the business name and the receptionist's name. Attach the knowledge source.
4. Create a webhook tool named log_booking. Arguments: name, phone, requested_time, service, notes. Method POST to my Sheets web app URL, content type application/json, execution mode fire_and_forget. Body template:
{"secret": "MY_SECRET", "name": "{{name}}", "phone": "{{phone}}", "requested_time": "{{requested_time}}", "service": "{{service}}", "notes": "{{notes}}", "caller_number": "{{system.caller_number}}"}
Attach it to the agent.
5. Publish the agent.

STEP 5. PHONE NUMBER
Search available local numbers in my area code. Show me 3 options and the monthly price. Do NOT buy anything until I say yes. When I pick one, buy it and bind it to the agent.

STEP 6. HAND OFF
Give me the phone number, a link to the agent in the Fish Audio console, and a 5-call test script (a question that's in the doc, one that isn't, a booking, a solicitor, and a caller who interrupts). Remind me that callers only hear the published version, so I have to publish again after every edit.

Phone numbers are US and Canada local numbers, billed monthly in daily slices, and you see the price before you buy (details here). The spreadsheet tool runs in "fire and forget" mode, which means the agent doesn't wait on Google to answer, so the caller never sits in silence.

Don't use Claude Code? You can build the same agent by hand in the Agents tab. My full receptionist guide walks through every screen, + call transfers to your cell and post-call summaries.

Build 1 · Step 5

Call it like a customer

In Agents, open your receptionist and click Test call. Run Claude's 5-call test script. The booking call is the one that matters: hang up, open your sheet, and check the row landed.

Something off? Tell Claude Code what went wrong ("it made up a price for gutters"), let it fix the prompt, and have it publish again. Test calls run your latest draft. Real callers only hear the published version.

Build 1 · Step 6

Forward the business line

Missed calls only (start here)

Your main number stays exactly as it is. Turn on "forward when unanswered" (conditional call forwarding) to the agent's new number. You still pick up the calls you always pick up. The agent only catches the ones that used to go to voicemail.

After hours, or everything

Forward all calls at night, or full-time once you trust it.

Every carrier does this a little differently. Search "[your carrier] conditional call forwarding" and it's usually a short star code you dial once. And keep "this call may be recorded" in the greeting. Some states require it.

Build 2

Your own morning show, in your own voice

Claude reads your inbox, your calendar, and your notes, and writes it all up every morning. Then Fish Audio reads it back to you in your voice while you drive. Your own daily podcast, about your day, hosted by you.

It sounds like a gimmick until you try it. Hearing your day in your own voice hits different than reading a to-do list. Four steps.

Build 2 · Step 1

Clone your voice in about 15 seconds

Go to Fish Audio voice cloning, record or upload about 15 seconds of you talking, name it something you'll remember ("My Voice"), and save. That's it. It shows up under My Voices everywhere in Fish Audio.

Ten seconds works. Fifteen to twenty sounds better. Read this out loud at your normal pace:

"Good morning. Here's what's happening today. I've got a few calls this afternoon, two emails I actually need to answer, and one thing I keep putting off that I'm finally going to finish. Let's keep it simple, get the big stuff done first, and see where the day goes."

Where to record

A quiet room with soft furniture, or a parked car. Your phone's mic is fine, about a hand's width from your mouth. One voice only, no music, no TV.

Only clone a voice you own

Yours, or someone who gave you clear permission. Nobody else.

Build 2 · Step 2

Plug Fish Audio into Claude

Fish Audio has an official connector that lets Claude generate speech in your account. In Claude, go to Settings → Connectors → Add custom connector, paste this address, and sign in with your Fish Audio account:

https://api.fish.audio/mcp

While you're in Connectors, turn on Gmail and Google Calendar + wherever your notes live (Notion, Google Drive). In Claude Code it's one line: claude mcp add --transport http fish-audio https://api.fish.audio/mcp, then /mcp to sign in. Audio made through the connector comes out of your plan's credits, same as the web app (connector docs).

Build 2 · Step 3

Paste the morning prompt

Fill in the two brackets once, save it inside a Claude Project so it's always one click away, and run it with your coffee. Claude writes the brief, sends it to Fish Audio, and hands you back a link to the audio.

Copy-paste prompt for Claude: your morning brief

Write my morning brief, then turn it into audio.

1. Pull what matters from the last 24 hours:
- Gmail: anything from a real person that needs a reply or a decision. Skip newsletters, receipts, and promos.
- Google Calendar: everything on my calendar today, with times.
- My notes: [NOTION PAGE / GOOGLE DOC / FOLDER NAME] for open to-dos and anything I flagged.

2. Write it as a script for the ear, 2 to 3 minutes out loud (about 350 to 450 words):
- Open with "Good morning" and the single most important thing today.
- Then today's schedule, then the emails that need me (who, what they want, what I should do), then my top 3 to-dos.
- Close with one line to start the day.
- Short sentences. No bullets, no headings, no links, no emoji. Write times the way you'd say them ("two thirty", not "2:30").
- Add delivery directions in square brackets where they help, like [warm, upbeat morning radio host] at the top and [pause] between sections.

3. Use the Fish Audio connector to read the script as speech in my cloned voice, "[YOUR VOICE NAME]". Use the Drama 3 model if the connector lets you pick one.

4. Give me the audio link first, then the written script underneath so I can skim it.

The secret is "written for the ear." A brief written like an email sounds robotic out loud, no matter how good the voice is. Short sentences, no bullets, times written how you'd say them. The prompt already handles it.

Build 2 · Step 4 (optional)

Make it show up on its own every morning

Once you like it, stop running it by hand. Paste this into Claude Code (after the one-line skill install from Build 1, Step 2). It sets up a job on your computer that writes the brief, has Fish Audio read it in your voice with Drama 3, and drops the MP3 into a folder that syncs to your phone. You wake up, it's there.

Copy-paste prompt for Claude Code: run it every morning

I want a personal podcast waiting on my phone every morning: Claude writes a brief from my email, calendar, and notes, and Fish Audio reads it in my cloned voice. Build it on this computer. Use the Fish Audio skill I installed and read https://docs.fish.audio/llms.txt before writing any Fish Audio code.

Ask me first, one at a time:
1. Where my email and calendar live (Gmail, Outlook, other) and where my notes live (a folder of .md files, Notion, Google Docs, Apple Notes)
2. My Fish Audio API key (save it in .env as FISH_API_KEY, never print it)
3. The name of my cloned voice in Fish Audio (look up its voice ID for me)
4. What time I want it ready, and which folder the MP3 should land in so it shows up on my phone (an iCloud Drive or Google Drive folder works)

Then build:
- A step that gathers the last 24 hours of email that needs me (skip newsletters, receipts, promos), today's calendar, and open to-dos from my notes.
- A step where Claude writes the brief (headless claude -p is fine): 350 to 450 words, written for the ear, short sentences, no lists or links, times written the way you'd say them. Open with the most important thing today, close with one line to start the day. Use Drama 3 directions in square brackets, like [warm, upbeat morning radio host] at the top and [pause] between sections.
- Text to speech through the Fish Audio API with my voice ID and the model header set to drama-3. If that header is missing the request quietly falls back to an older model, so double check it. Save it as YYYY-MM-DD-morning-brief.mp3 in my chosen folder, with a .txt copy of the script next to it.
- A daily schedule that runs the whole thing at my chosen time (use whatever is most reliable on my operating system) + a log file so I can see if a run failed.

Run it once now so I can listen. Then tell me how to change the time, the length, or the sections.

This version runs on the Drama 3 API, which is 80% off right now. A 400-word brief is around 2,500 characters, so even at full price a year of mornings is pocket change. Your computer does need to be on (or asleep, not shut down) at the time you pick.

Build 3

Custom animated videos with real voice acting

Most people don't know this: Fish Audio also has an image + video generator with some of the best models out there, like GPT Image, Seedance, Kling, and Veo. Put those next to Drama 3 and you can make an animated short where the characters actually act, all in one account.

The flow: Claude writes it, Fish Audio draws it, animates it, and voices it, and you stitch it together. Five steps.

Build 3 · Step 1

Have Claude write the scene

This prompt gets you everything you need in one go: a character sheet, a shot list with an image prompt and a motion prompt per shot, and the voiceover already written with Drama 3 directions.

Copy-paste prompt for Claude: write the animated scene

Help me make a short animated video (30 to 45 seconds) with AI images, AI video, and a Fish Audio Drama 3 voiceover.

First ask me 3 things, one at a time:
1. The idea (a funny scene, a mini story, an explainer with characters, a fake movie trailer, anything)
2. The look (Pixar-style 3D, anime, claymation, 90s cartoon, storybook watercolor)
3. Vertical 9:16 for Reels and TikTok, or wide 16:9

Then give me 4 things:

1. CHARACTER SHEET
For each character (3 max): a name, a one-line personality, and one detailed image prompt for a clean full-body character reference on a plain background, in the chosen style. I'll generate these first and reuse them as references so the characters stay consistent from shot to shot.

2. SHOT LIST (6 to 8 shots, about 5 seconds each)
For each shot: what happens, an IMAGE PROMPT for the starting frame (characters, setting, camera angle, lighting, style), and a MOTION PROMPT for animating it (one action + one camera move, like "she slams the laptop shut, slow push-in"). One action per shot. AI video falls apart when you ask for three things at once.

3. VOICEOVER SCRIPT FOR DRAMA 3
Write it as a scene with speaker names. Put a direction in square brackets before each line, the way you'd brief a voice actor: [barely holding it together, forcing a smile] or [whispering, way too excited]. Add sounds and pauses where they happen: [sigh], [small laugh], [pause]. Wrap the one word that has to land in <emphasis></emphasis>. Directions apply to everything after them, so put each one right before the words it's for. Label every line with its shot number.

4. VOICE CASTING
For each character, describe the voice I should search for in the Fish Audio voice library (age, accent, energy).

Build 3 · Step 2

Generate your characters first

Open the image + video generator, pick an image model, and run each character prompt from the sheet. Generate a few, keep your favorite of each.

Then make every shot's starting frame using those characters as reference images. This is the step people skip, and it's why their characters look like a different person in every shot.

Build 3 · Step 3

Animate each frame

Switch to video, upload a starting frame, paste that shot's motion prompt, and generate. One action and one camera move per shot. Repeat for every shot. Video generation needs the Plus plan or higher.

Rather have Claude click the buttons? With the Fish Audio connector from Build 2 it can generate the images and videos for you. Ask it to "quote the credits first, then generate." It shows you the price and waits for your yes every time.

Build 3 · Step 4

Voice the whole scene with Drama 3

Find a voice for each character in the Fish Audio library using Claude's casting notes (or use your own clone for one of them). Then pick one route:

No code: line by line

In the text to speech editor, pick Drama 3 and a character's voice, paste that character's lines with their directions, and generate. Repeat for each character. Done in 10 minutes.

Claude Code: the whole scene in one pass

Drama 3 can generate every voice in one file, with the characters reacting to each other like a real recording. The prompt below sets it up.

Copy-paste prompt for Claude Code: the one-pass voiceover

Generate a multi-speaker voiceover with Fish Audio Drama 3 in one pass. Use the Fish Audio skill and read https://docs.fish.audio/features/text-to-speech/drama-3 first.

My API key is in .env as FISH_API_KEY (ask me for it if it isn't there).

Here's my script and the voice I picked for each speaker:
[PASTE THE VOICEOVER SCRIPT CLAUDE WROTE]
[SPEAKER NAME = voice name or voice ID from the Fish Audio library]

Do this:
1. Look up the voice ID for any voice I gave you by name.
2. Turn the script into one text string: swap each speaker name for a speaker tag (<|speaker:0|> for the first voice, <|speaker:1|> for the second, and so on) and keep every [direction] and paired tag exactly as written.
3. Call POST /v1/tts with the model header set to drama-3 and reference_id as an array of the voice IDs in speaker order. Save it as voiceover-take-1.mp3.
4. Drama 3 is still a preview model, so takes vary. Make 3 takes (take-1, take-2, take-3) so I can pick the best one.
5. Tell me which shot each line lands on so I can line it up in my editor.

Under the hood, each speaker gets a tag (<|speaker:0|>, <|speaker:1|>) and the request sends one voice per speaker. You don't have to touch any of that. Claude does it.

Build 3 · Step 5

Stitch it together

Drop the clips into CapCut (or any editor) in shot order, lay the voiceover on top, and trim each clip to its line. Add captions. That's a finished animated short with voice acting that would have cost thousands to hire out a couple of years ago.

Posting it for a brand or a client? That's commercial use, so make it on a paid plan.

Before You Get Stuck

The gotchas, all in one place

Free plan is personal use only. The receptionist, and anything you make for a business, needs a paid plan.

Publish after every receptionist edit. Callers only hear the published version.

Phone numbers are US and Canada local only from the buy menu. No toll-free.

Editing the spreadsheet script? Use Deploy → Manage deployments → edit → New version, so the URL stays the same. A brand-new deployment gets a new URL and breaks the receptionist.

The API needs the model header set to drama-3. Leave it off and it quietly uses an older model. No error, just flatter audio.

Directions affect everything after them. Put each one right before the words it's for.

Drama 3 is still in preview. Takes vary. Make 2 or 3, keep the best.

Only clone voices you own or have clear permission to use.

Your Move

Pick one build and do it today

Don't try all 3 at once. Clone your voice and run the morning prompt tomorrow. That's 10 minutes. Then come back for the receptionist or the animated short.

Sign up through my link and you get 10,000 free web app credits, 50% off every plan, and 80% off the Drama 3 API while it lasts.

Try Drama 3 free

The AI Course

Want the whole system, not just this piece?

This guide is one part. The AI Course walks you through building your own AI Operating System: an AI that knows your business, connects to your tools, and does real work for you. No coding. I coach inside it every week.

Check out The AI Course