Point your agent at Playback.
Playback ships with playback-mcp, an MCP server that lets an agent drive a live session — list
windows, start a recording, drop a zoom, caption a step, and export
the finished cut. It's bundled with the app. Setup is one line in
your client.
- 1
Install Playback
The MCP server ships inside the app — there's nothing separate to download. Download Playback and open it.
- 2
Add the server to your client
Terminal commandclaude mcp add playback playback-mcpOr commit the JSON form to your repo as .mcp.json so the whole team gets it.
~/Library/Application Support/Claude/claude_desktop_config.json{ "mcpServers": { "playback": { "command": "playback-mcp" } } }Settings → Developer → Edit Config, paste, then restart Claude Desktop.
~/.cursor/mcp.json — or .cursor/mcp.json per project{ "mcpServers": { "playback": { "command": "playback-mcp" } } }Global config connects every project; the project file scopes it to one repo.
~/.config/opencode/opencode.json — or opencode.json per project{ "mcp": { "playback": { "type": "local", "command": ["playback-mcp"], "enabled": true } } }OpenCode wants command as an array and type set to “local”.
Terminal commandcodex mcp add playback -- playback-mcpWrites the [mcp_servers.playback] entry into ~/.codex/config.toml — edit that file directly if you prefer.
~/.grok/settings.json — or .grok/settings.json per project{ "mcpServers": { "playback": { "command": "playback-mcp" } } }Or run /mcps inside the Grok TUI to manage servers interactively.
- 3
Ask for a recording
With Playback open, try “list the windows Playback can record”. While an agent works, the Agent activity pill in the app header shows the connected session and a live feed of every command it runs — you can keep editing alongside it.
Every editor command is a tool
The tools map 1:1 to what you can do by hand, so anything in the editor is scriptable — nothing agent-only, nothing hand-only.
- Discovery
- playback_list_displaysplayback_list_windows
- Session
- playback_new_projectplayback_open_projectplayback_get_projectplayback_saveplayback_get_status
- Recording
- playback_start_recordingplayback_stop_recordingplayback_pause_recordingplayback_resume_recording
- Editing
- playback_add_zoomplayback_remove_zoomplayback_add_annotationplayback_remove_annotationplayback_add_captionplayback_remove_captionplayback_set_backgroundplayback_set_frame_styleplayback_set_cursor_configplayback_set_segment_speedplayback_set_cropplayback_set_webcam_overlayplayback_set_audio_config
- Output
- playback_exportplayback_get_export_statusplayback_cancel_export
Export runs async: the agent starts a job, gets an id back, and polls it — long renders never block the session.
How it connects
agent ──stdio──▶ playback-mcp ──local socket──▶ Playback.app Your client spawns playback-mcp and talks to it over stdio; the bridge forwards each tool call to the running app over a Unix socket. Everything stays on your machine — no relay, no cloud session. Private by design.
Requires macOS 14 Sonoma or later on Apple silicon. Open this page on your Mac to download.
Read the full agent guide