Using MOVIE-ADE
Sending to agents
Run Claude Code or Codex in the built-in terminal and hand them a review with one click. You can also copy the instruction for any other agent, or post the review to GitHub.
#Review findings
Each card in the Findings tab supports:
- Inline edit of the title and request
- Send / Don't send toggle
- Watch Recording (seeks to that time) and Replace Image (pick another frame)
- Confirm / Mark as Needs Review, Merge with Next, Delete
The header has Undo, Open Folder, Copy for Agent, Send to GitHub, Organize, and Send to Agent. Speech that didn't become a finding is listed under Excluded speech, where Restore as Finding brings it back. Overall Note adds a note for the whole review.
#Run agents in the built-in terminal
When a project opens, MOVIE-ADE starts one terminal tab per enabled agent in the project folder. The defaults are:
claude --dangerously-skip-permissions
codex --dangerously-bypass-approvals-and-sandbox
About the default flags
These flags let the agent edit files and run commands without asking. If you want approval prompts, clear the arguments in Settings → Agent (Claude Code arguments / Codex arguments). Reset Commands restores the defaults.
If neither agent is enabled, a plain shell opens. The + menu opens New Terminal, launches Claude Code or Codex in a new tab, or jumps to Agent settings…. Its search box also finds tabs, saved URLs, and files.
Tabs show the agent state: Running, Waiting for input, Done (unread), Idle.
| Action | macOS | Windows / Linux |
|---|---|---|
| New Terminal | ⌘T | CtrlT |
| Split Right | ⌘D | CtrlShiftD |
| Split Down | ⌘⇧D | AltShiftD |
| Close Pane / Tab | ⌘W | CtrlW |
#Send to Agent / Copy for Agent
- Focus a terminal tab where Claude Code or Codex is running.
- Click Send to Agent.
- MOVIE-ADE writes the instruction into the agent's input and submits it. Follow progress in the terminal.
Nothing is sent if no agent is detected in that terminal, or if the agent is waiting for a permission answer. Answer in the terminal first.
Copy for Agent puts the same instruction on the clipboard for an agent running elsewhere (another terminal, IDE, or app). Only findings toggled to Send are addressed. The video is never included.
#Acceptance check with a decision model
Turn this on and your coding agent checks its own work against each finding before it reports Done. MOVIE-ADE does not judge anything itself: it gives the agent a decision model (any System One compatible API) and tells it, in feedback.md, to loop until every finding passes.
- The agent implements the findings.
- For each finding it captures an AFTER screenshot (same viewport and page state as the BEFORE still) and sends one request with the finding text, its "Done when" line and the BEFORE/AFTER images to the decision model.
- A finding passes when P(done) is at least the threshold (default 0.7) and the choice is
done. The agent fixes the rest and re-judges all findings every round, and stops only when every finding passes in the same round, or for an honest reason it must state: the API is unreachable, a finding is out of scope, or a finding is stuck with unchanged scores. - The final Done / Not done list includes each finding's scores and the number of rounds.
Set it up in Settings → Decision model and turn on Add the decision-model check to agent instructions. Presets only fill in the fields; every field stays editable, and Custom works with any compatible API.
| Preset | Request URL | Models | Key |
|---|---|---|---|
| Ollama (default) | http://localhost:11434/v1/systemone | clef-flash, clef (read images); nimble, tev1 (text only) | none, free |
| Cloudflare Workers AI | https://api.cloudflare.com/client/v4/accounts/{account_id}/ai/run/@cf/cloudflare/{model} | clef-flash, clef (read images) | CLOUDFLARE_API_TOKEN (Workers AI permission); account ID from the field or CLOUDFLARE_ACCOUNT_ID |
| Vercel AI Gateway | https://ai-gateway.vercel.sh/typesafe/v1/systemone | typesafe-ai/jev, convaiinnovations/laya (text only) | AI_GATEWAY_API_KEY |
| TypeSafe | https://api.typesafe.ai/v1/systemone | jev-latest, jev-preview (text only) | TYPESAFE_API_KEY |
| Custom | any full URL | any | Bearer, a custom header, or none; extra headers allowed |
For Ollama, install it (0.35.1 or later for Clef / Clef Flash) and pull the model in a terminal. MOVIE-ADE doesn't run installers:
ollama pull clef-flash
Keys come from the key field (saved with your other API keys), an environment variable you name (the app's environment, the project .env, or ~/.movie-ade/.env), or apiKey in settings.json. Extra headers can read values from environment variables with ${VAR}.
How the key stays out of prompts
Agents never see your key. MOVIE-ADE runs a local relay on 127.0.0.1 and gives each terminal MOVIE_ADE_DECISION_URL (the relay, with a per-terminal token), MOVIE_ADE_DECISION_MODEL and MOVIE_ADE_DECISION_IMAGES. The relay adds the key and headers and forwards the request unchanged, so prompts, feedback.md and agent transcripts contain no secrets. Terminals opened after you change the settings pick them up.
Cloudflare differs from the System One docs in two ways (checked against the live API): images must be data URIs (data:image/jpeg;base64,…, otherwise 422 "image must be an embedded base64 data URI"), and the answer is wrapped as { "result": { … }, "success": true } (errors come back as { "success": false, "errors": [ … ] }). The Cloudflare preset sets Image encoding to data URI, agents get it as MOVIE_ADE_DECISION_IMAGE_FORMAT, and the instructions tell them to read .result when present. The relay passes both directions through unchanged. To use a Global API Key instead of an API token, set Authentication to No key and add the headers X-Auth-Email: ${CLOUDFLARE_EMAIL} and X-Auth-Key: ${CLOUDFLARE_API_KEY}.
Only Clef and Clef Flash read images. With a text-only model, turn off Send BEFORE/AFTER images; the agent then judges from text alone, which is less reliable.
Ollama and large images
Ollama 0.35.0 limits /v1/systemone requests to 64 KiB, so requests with screenshots fail with HTTP 413. The instructions tell the agent to shrink both images to at most 1024px wide as JPEG (quality about 70). If it still gets 413, update Ollama to 0.35.1 or later, or switch to Cloudflare Workers AI.
#API usage in the footer
Decision calls go through the relay, so MOVIE-ADE can count them. The footer item next to the agent usage meter shows the decision model and today's calls, tokens and cost (for example clef-flash · 42 calls · 18.3k tok). Click it for today, this month, per project, per model and per kind (decision / transcription / organize), and the last 50 calls.
Cost appears only when the API reports it (Vercel AI Gateway does) or when you set prices per 1M tokens in Settings → Decision model; otherwise it shows "—". Only metadata is logged (time, project, model, status, latency, size, image count, tokens, cost), never images, text or keys, in ~/.movie-ade/usage/decision-YYYY-MM.jsonl, one file per month.
#Customize the instruction
Edit Settings → Agent → Instructions for Agent. Two variables are expanded:
| Variable | Expands to |
|---|---|
{{path}} | Absolute path of feedback.md |
{{relpath}} | Path relative to the project: .ade-movie/reviews/<id>/feedback.md |
Leave it empty to use the default. The maximum length is 2000 characters, and Reset Instructions restores the default. Example:
Read {{relpath}} and the PNGs next to it. Fix only findings marked to send, one commit per finding, then run the tests.
The setting is stored as agentPrompt in settings.json.
#Send to GitHub (Issue / PR comment)
Send to GitHub posts the review as a new issue or as a comment on one of your open pull requests. Authentication is delegated to the GitHub CLI (opens in a new tab). MOVIE-ADE never reads or stores a token.
- Install
gh:brew install gh(macOS),winget install --id GitHub.cli(Windows), or see cli/cli (opens in a new tab). - Settings → GitHub → Sign In in Terminal runs
gh auth login --web -h github.comin the built-in terminal. - Click Send to GitHub, choose Create a new issue or a PR, and review the Title and Body (editable).
- Tick the confirmation checkbox, then Create Issue or Post Comment.
Details:
- The repository comes from
git remote get-url origin. - MOVIE-ADE runs
gh issue create --repo … --title … --body-file -orgh pr comment <n> --repo … --body-file -. - The body is
feedback.mdwithout the image lines (images are not uploaded), up to 60,000 characters. - PR candidates are your own open PRs (up to 30).
If GH_TOKEN or GITHUB_TOKEN is set, gh uses it first, and the settings panel warns about it.