·
Kamal Sankarraj
·7 min read
How people use PandaStudio

Make a narrated SaaS tutorial with an AI agent

A founder wrote in with a very specific wish. He wanted his AI agent to make product tutorials for his SaaS without him sitting down to do it. The agent could already click through his app in a browser, so it knew the flow. What it could not do was capture that flow at real quality, and then narrate it in his own voice. This post is what we built for him, and the exact steps anyone can follow to do the same.

The request

Paraphrased, and with the details changed to keep him anonymous:

"I want Claude to record a tutorial of my SaaS for me. It can already drive Chrome, but its own screen capture is low resolution. So I want it to start a proper screen recording, stop it when the walkthrough is done, and then build the final video, adding a voiceover and so on."

Two real problems sit inside that sentence. First, browser-based screen capture is genuinely low quality, fine for a quick clip, wrong for a tutorial you publish. Second, even a perfect recording is only raw footage. Somebody still has to narrate it, tighten it, point the viewer's eye at the right button, and export it. He wanted the agent to own that whole chain.

What we built

PandaStudio already has a high-quality native screen recorder, the same one you use from the app's record button. It captures your display through the operating system's own capture pipeline (ScreenCaptureKit on macOS, Windows Graphics Capture on Windows), not through a browser tab. So the recorder was there. The missing piece was letting an agent drive it, start and stop, with no human clicking anything.

So we added three agent commands:

  • recording.start begins a recording. It captures your main display by default, or a specific display or window you point it at.
  • recording.stop ends the recording, finalizes the video file, and hands back a ready-to-edit project.
  • recording.list-sources lists the displays and windows available, so the agent can target a single app window rather than the whole screen.

For the voiceover half, PandaStudio connects directly to your own ElevenLabs account. Add your API key once, and the agent can generate narration in any voice on your account, including voices you have cloned. It bills to your ElevenLabs plan, and nothing routes through a third party.

The full loop, end to end

Here is the exact sequence, the way the agent runs it. Everything below is a real command against the local PandaStudio API.

1. Record the walkthrough

Start the recording, drive the app (the agent clicks through the feature in the browser), then stop. Stop returns a project you can edit immediately.

# optional: see what you can record
pandastudio recording.list-sources --json

# start (whole primary display) — or pass --source="window:123:0"
pandastudio recording.start --json

#  ...the agent now clicks through the SaaS feature...

# stop: finalizes the MP4 and creates an editable project
PROJECT=$(pandastudio recording.stop --name="Feature walkthrough" --json \
  | jq -r '.data.projectId')

2. Clean it up

Transcribe, then trim the dead air so the tutorial moves.

pandastudio transcript.transcribe --id=$PROJECT
pandastudio transcript.remove-silences --id=$PROJECT --minSilenceMs=500

3. Add the voiceover in your own voice

Generate narration through your ElevenLabs account and drop it on the timeline. Use the name of a voice you have cloned.

VO=$(pandastudio media.generate-narration \
  --model=elevenlabs-direct \
  --voice="My Cloned Voice" \
  --text="Here is how you connect your first data source." \
  --json | jq -r '.data.audioPath')

pandastudio project.add-audio --id=$PROJECT --path="$VO" --startMs=0

4. Point the eye, then export

Add a zoom on the moment that matters (a click, a setting), then export. A screen recording keeps cursor data, so zooms can even follow the pointer.

pandastudio project.add-zoom --id=$PROJECT --atMs=8000 --durationMs=1800 --depth=3
pandastudio export.start --id=$PROJECT

Why this works without a person in the loop

The capture runs in PandaStudio's background process and writes the video straight to disk. There is no recorder window to click, no preview to confirm, no save dialog. That is what makes it safe to hand to an agent: recording.start returns as soon as capture is live, and recording.stop returns the finished project. The agent never needs a screen of its own.

It is also fully local. The recording, the transcript, and the edit all stay on your machine. The only thing that leaves is the short piece of text you send to ElevenLabs to synthesize, billed to your own account.

One-time setup notes

  • Screen Recording permission. The first recording asks your operating system for Screen Recording access, the same one-time approval the app's record button uses. If you have ever recorded in PandaStudio, it is already granted and the agent path just works. This is an OS approval, so you grant it once yourself; an agent cannot grant it for you.
  • ElevenLabs key. Add it once under Settings, Integrations. Your cloned voices then show up automatically, and the agent can pick them by name.
  • No microphone needed. The agent path records screen only. Record clean, then let the voiceover carry the narration. That way you can rewrite the script without re-recording.

Try it yourself

PandaStudio runs locally on your Mac or PC, and connects to Claude, Cursor, and other agents over a localhost API. Record your product once through the agent, narrate it in your own voice, and export a finished tutorial, without opening the editor.