Monorepo for Aesthetic.Computer aesthetic.computer
README.md

DaVinci Resolve control (MCP) — research + setup kit #

Goal: drive DaVinci Resolve from Claude/our stack — first locally on this Mac to test, then remotely on a client's Mac. Status as of 2026-06-19: prep only; Resolve is not installed on this machine yet.

What's already out there (don't rebuild) #

  • Resolve ships an official scripting API (Python + Lua). The relevant toggle is Preferences → System → General → External scripting using: None / Local (same machine) / Network (remote host). Python + Network mode require Resolve Studio (the free version is Lua-only, local-only).
  • A mature MCP already wraps the API: samuelgursky/davinci-resolve-mcp — ~1.3k★, actively maintained (shipped a release 2026-06-19), Python, stdio transport, macOS/Win/Linux, Studio 18.5+. 32 compound tools by default (341 granular), ~100% API coverage. Covers project/timeline/media-pool/render/color/Fusion/Fairlight plus execute_python / execute_lua.
  • Gap: every existing MCP is a local stdio process — assumes Claude and Resolve on the same Mac. None do remote / fleet / telemetry. That's our value-add (Tier 2).

Tier 1 — local (this Mac), to test #

  1. Install DaVinci Resolve (Studio for the full API).
  2. Resolve → Preferences → System → General → External scripting using → Local.
  3. ./toolchain/resolve/setup.fish (preflight, then runs npx davinci-resolve-mcp setup, which auto-writes the Claude Code MCP config).
  4. Restart Claude Code → davinci-resolve tools appear.

The upstream installer manages its own Python copy + env vars (RESOLVE_SCRIPT_API, RESOLVE_SCRIPT_LIB, PYTHONPATH), so we don't hand-maintain a .mcp.json entry.

Tier 2 — remote (client's Mac) — to build #

Existing MCPs can't do remote. Two transports, both leaning on code we already have:

  • (a) Resolve Network mode — set scripting to Network, run the Python MCP on the client's Resolve box, expose over our fleet transport. Needs a network shim (MCP is stdio-only today). Simplest conceptually.
  • (b) puppet-style daemon over SSH-multiplex (recommended) — fork slab/bin/puppet.mjs so instead of CDP it pipes commands to a Resolve Python session on the target Mac; slab/bin/frame.mjs captures timeline/UI state back; system/netlify/ functions/boot-log.mjs pattern tracks each render-job lifecycle. Reuses the most proven fleet code and matches how neo/blueberry/panda already talk.

Reusable foundations (from a stack survey):

Need Have File
MCP server scaffold @modelcontextprotocol/sdk + Zod ants/mail-mcp/server.mjs
Remote command multiplexer daemon + unix socket + SSH-mux slab/bin/puppet.mjs, frame.mjs
Native macOS window control Accessibility API (no AppleScript) slab/menubar-swift/.../AXTiler.swift
Fleet sync geckos.io WebRTC + Multipeer session-server/session.mjs
Job telemetry boot-phase logging → Mongo system/netlify/functions/boot-log.mjs
Render farm ffmpeg/sharp job queue oven/

Context #

Originated from a request by Greg (+1 908 963 1175). Texted him both repo URLs + the Studio/scripting-prefs note on 2026-06-19, asking what his specific issue is and whether he's tried these in his workflow yet. Awaiting reply before committing to Tier 2.