@writepanda/cli
v1.26.0
Published
Drive PandaStudio (a desktop video editor for YouTube creators) from the command line. Talks to a localhost HTTP API the desktop app exposes.
Downloads
2,364
Maintainers
Readme
@writepanda/cli
The pandastudio command-line interface — drive PandaStudio (a desktop video editor for YouTube creators) from your terminal, shell scripts, or AI agents.
PandaStudio's signature feature — editing video by deleting words from the transcript — is now scriptable. Plus headless export, motion-graphic generation, FX overlays, lower-thirds, captions, AI title/description generation. Everything the human editor does, callable from the CLI.
You also need the desktop app installed. The CLI is a thin HTTP client; the actual rendering happens in PandaStudio's localhost-only automation server. Get the app at writepanda.ai.
Install
npm install -g @writepanda/cli
# or run without installing:
npx @writepanda/cli system.statusThe same pandastudio binary also ships bundled inside every PandaStudio install (Settings → Local automation → Install to PATH). The npm version is convenient for AI agents and CI pipelines that want to script the editor without going through the in-app install button.
Quickstart
# 1. Install + open PandaStudio (writepanda.ai). Settings → Local automation → toggle ON.
# 2. Confirm reachability:
pandastudio system.status
# 3. Discover the surface (62 verb-noun commands):
pandastudio commands
# 4. Render a motion graphic:
JOB=$(pandastudio motion.generate \
--templateId=title-card-vox \
--slots='{"title":"How I Built This","subtitle":"in 24 hours"}' \
--aspectRatio=16:9 \
--json | jq -r '.data.jobId')
pandastudio job.wait --id="$JOB" --json | jq '.data.job.result.outputPath'If PandaStudio isn't running, the CLI auto-launches it and waits up to 60s for the HTTP listener. Pass --no-launch to opt out.
The agentic edit flow
The 13-step "agent gets two videos and produces a polished MP4" workflow is documented in full at writepanda.ai/cli. Headline:
pandastudio project.new --withMedia='[...]' --json
pandastudio transcript.transcribe --id=$ID
pandastudio transcript.remove-fillers --id=$ID
pandastudio motion.generate ...
pandastudio project.add-motion-graphic ...
pandastudio caption.toggle --enabled=true
pandastudio caption.set-template --templateId=bold
pandastudio export.start --id=$IDHeadless. No editor window required. Same Skia native render-helper the in-app Export button uses.
For AI agents (Claude Code, Claude Desktop)
If you're an agent: install the bundled Claude Skill instead — it teaches you the full surface in one auto-discovered SKILL.md. From the running PandaStudio app: Settings → Local automation → Install Skill. The Skill copies to ~/.claude/skills/pandastudio/ and Claude auto-loads it.
For Cursor / Continue / Cline / other MCP clients, use the companion package: @writepanda/mcp.
Auth
Every PandaStudio launch generates a fresh 256-bit token, written 0600 to:
| Platform | Path |
|---|---|
| macOS / Linux | ~/.config/pandastudio/{token,port,audit.log} |
| Windows | %APPDATA%\pandastudio\{token,port,audit.log} |
The CLI reads both files on every invocation; no env vars, no caching. Closing and reopening the desktop app rotates the token automatically. PANDASTUDIO_CONFIG_DIR overrides the path (used in tests).
Licensing
The CLI honours the same license gate the desktop app does:
| State | What's allowed |
|---|---|
| Licensed | Every command |
| Active trial | Every command |
| Trial expired, no license | Only system.* and window.focus |
Run pandastudio system.status to see automationGated: true/false in the response.
Output modes
- Default: pretty one-line summaries to stdout
--json: raw{ ok, data, error }envelope — pipe throughjqfor scripting
Documentation
- Full command catalogue + recipes: writepanda.ai/cli
- Source: github.com/kamskans/openscreen
License
MIT.
