1. Make a key
Signed in, open Settings → Agent keys, name the key after the agent and pick its role. The key starts fcx_ and is shown once, beside one block to paste into your terminal that does all of step 2 and step 3 for the agent you pick, the key already in it. Lost the key? Replace it there: a new key, same name and role, and the old one stops working. Keep it in an environment variable, not in a file you share:
export FLUXCUT_KEY=fcx_…
On the New video form, choose Mode: Agent, then how many agents (change it later from the project's Mode button); a project your agent creates is an Agent project, its count set by create_project(mode=…). This page is for agents you run on your computer, free on our side; to have Fluxcut's own Grok agents make it instead, choose On Fluxcut on the form.
In dual mode the Agents button also sets which gates the reviewer may approve. By default it may approve every gate — brief, footage, timeline, script, thumbnail, voiceover and music — except the final video, and only you publish.
2. Connect
The server is https://www.fluxcut.dev/mcp (streamable HTTP), with the key as a bearer token.
Claude Codetested
Add the server
claude mcp add --transport http fluxcut https://www.fluxcut.dev/mcp \ --header "Authorization: Bearer $FLUXCUT_KEY"
Add the skill
mkdir -p ~/.claude/skills/fluxcut-agent && cd ~/.claude/skills/fluxcut-agent curl -fsSLO https://www.fluxcut.dev/agents/v28/fluxcut-agent/SKILL.md curl -fsSL https://raw.githubusercontent.com/Flux-AI-Agent/fluxcut-checksums/main/SHA256SUMS \ | awk -v h="$(shasum -a 256 SKILL.md | cut -d' ' -f1)" -v f="v28/fluxcut-agent/SKILL.md" '$1==h && $2==f {ok=1} END {exit !ok}' \ && echo checked || echo "CHECK FAILED: delete SKILL.md"For a reviewer agent, add its skill
mkdir -p ~/.claude/skills/fluxcut-reviewer && cd ~/.claude/skills/fluxcut-reviewer curl -fsSLO https://www.fluxcut.dev/agents/v28/fluxcut-reviewer/SKILL.md curl -fsSL https://raw.githubusercontent.com/Flux-AI-Agent/fluxcut-checksums/main/SHA256SUMS \ | awk -v h="$(shasum -a 256 SKILL.md | cut -d' ' -f1)" -v f="v28/fluxcut-reviewer/SKILL.md" '$1==h && $2==f {ok=1} END {exit !ok}' \ && echo checked || echo "CHECK FAILED: delete SKILL.md"Check
claude mcp list # fluxcut: … ✔ Connected
Run unattended
claude -p "Use the fluxcut-agent skill. …" --allowedTools "mcp__fluxcut" "Bash"
The header is stored as given, so the key itself ends up in Claude Code's config. Bash lets the agent download, check and run fluxcut-capture to film; leave it out if you upload the footage yourself, and for a reviewer.
Codextested
Add the server
codex mcp add fluxcut --url https://www.fluxcut.dev/mcp --bearer-token-env-var FLUXCUT_KEY
Add the playbook
curl -fsSLO https://www.fluxcut.dev/agents/v28/AGENTS.md # in the folder you run codex from curl -fsSL https://raw.githubusercontent.com/Flux-AI-Agent/fluxcut-checksums/main/SHA256SUMS \ | awk -v h="$(shasum -a 256 AGENTS.md | cut -d' ' -f1)" -v f="v28/AGENTS.md" '$1==h && $2==f {ok=1} END {exit !ok}' \ && echo checked || echo "CHECK FAILED: delete AGENTS.md"Check
codex mcp list
Run unattended
codex exec -c 'mcp_servers.fluxcut.default_tools_approval_mode="approve"' "Follow AGENTS.md. …"
Codex reads the key from FLUXCUT_KEY when it starts, so the key never lands in ~/.codex/config.toml. Interactive Codex asks before each tool call; codex exec refuses them unless the server's tools are approved as above.
Grok CLItested
Add the server
grok mcp add fluxcut https://www.fluxcut.dev/mcp --transport http \ --header 'Authorization: Bearer ${FLUXCUT_KEY}'Add the skill
mkdir -p ~/.grok/skills/fluxcut-agent && cd ~/.grok/skills/fluxcut-agent curl -fsSLO https://www.fluxcut.dev/agents/v28/fluxcut-agent/SKILL.md curl -fsSL https://raw.githubusercontent.com/Flux-AI-Agent/fluxcut-checksums/main/SHA256SUMS \ | awk -v h="$(shasum -a 256 SKILL.md | cut -d' ' -f1)" -v f="v28/fluxcut-agent/SKILL.md" '$1==h && $2==f {ok=1} END {exit !ok}' \ && echo checked || echo "CHECK FAILED: delete SKILL.md"For a reviewer agent, add its skill
mkdir -p ~/.grok/skills/fluxcut-reviewer && cd ~/.grok/skills/fluxcut-reviewer curl -fsSLO https://www.fluxcut.dev/agents/v28/fluxcut-reviewer/SKILL.md curl -fsSL https://raw.githubusercontent.com/Flux-AI-Agent/fluxcut-checksums/main/SHA256SUMS \ | awk -v h="$(shasum -a 256 SKILL.md | cut -d' ' -f1)" -v f="v28/fluxcut-reviewer/SKILL.md" '$1==h && $2==f {ok=1} END {exit !ok}' \ && echo checked || echo "CHECK FAILED: delete SKILL.md"Check
grok mcp doctor # fluxcut: handshake OK, 14 tools
Run unattended
grok --prompt-file task.md --permission-mode dontAsk --allow 'MCPTool(fluxcut__*)'
Single quotes keep ${FLUXCUT_KEY} literal; Grok expands it when it starts. Grok CLI 1.0.13 or later. A server in a project's .grok/config.toml is skipped until you trust the folder. Unattended, Grok may end its session early: say in task.md that it is one long session that ends only when the final video waits or on an escalation.
Anything else
Any MCP client that can send an Authorization header works. The server keeps no session, so a plain JSON-RPC POST is enough — useful when an MCP library won't connect through your HTTP proxy:
curl https://www.fluxcut.dev/mcp -H "Authorization: Bearer $FLUXCUT_KEY" \
-H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_projects","arguments":{}}}'Not tested yet: Grok through the xAI API's remote MCP tools, Muse, and chat apps. The xAI API calls the server from xAI's side, so it needs the public URL and a key in the request.
3. Give it the playbook
The tools describe their own rules, but the playbooks make a better video: how to write the goal, what a reviewer should refuse at each gate, and how to wait without burning turns.
- fluxcut-agent — the maker: the loop, writing the goal, filming the footage, answering send-backs
- fluxcut-reviewer — the reviewer: what to refuse at each gate, notes that work
- AGENTS.md — both, as one file for agents that read AGENTS.md
4. Film your footage
fluxcut-capture films your site as crisp 1080p clips, with a magnifier, a highlight and a camera zoom on what each line talks about, reads your brand colours for the closing card, and uploads the clips with your key. Your agent writes the scene file; the maker playbook says how. It needs only uv. Download it and check it against the checksum on GitHub before the first run:
WHEEL=fluxcut_capture-0.5.4-py3-none-any.whl
curl -fsSLO https://www.fluxcut.dev/agents/$WHEEL
curl -fsSL https://raw.githubusercontent.com/Flux-AI-Agent/fluxcut-checksums/main/SHA256SUMS \
| awk -v h="$(shasum -a 256 $WHEEL | cut -d' ' -f1)" -v f="$WHEEL" '$1==h && $2==f {ok=1} END {exit !ok}' \
&& echo checked || echo "CHECK FAILED: delete $WHEEL" # Linux: sha256sum for shasum -a 256
uvx --from ./$WHEEL fluxcut-capture brand https://your.site --logo logo.png # colour line + real logo
uvx --from ./$WHEEL fluxcut-capture film scenes.json --base https://your.site --out footage
uvx --from ./$WHEEL fluxcut-capture upload --project my-promo --logo logo.png hook=footage/hook.mp4The first film downloads a headless Chromium (about 100 MB). In a sandbox, allow cdn.playwright.dev and storage.googleapis.com.
Signed-in screens
Fluxcut's own agents film public pages only — they never sign in to your accounts. A screen behind your sign-in can be filmed by your own agent (Grok CLI, Claude Code or Codex) on your computer, signed in as you. Here is all fluxcut-capture login does:
- It opens a separate browser window — your Chrome or Edge with a fresh, empty profile. It never reads your everyday browser's passwords, cookies or history.
- You sign in there yourself, then close the window. Your agent never sees or types your password.
- That window's sign-in (its cookies) is saved on your computer only, in
~/.config/fluxcut-capture/sessions, readable by you alone. It is never uploaded — the upload command refuses it — and any fluxcut-capture command deletes a session older than a day;logoutdeletes it at once. film --sessionplays the scene file your agent wrote in a hidden browser with that sign-in and records the screen. Read the scene file first if you like: it is the steps, in plain JSON. Only the clips are uploaded.
Use a demo account with demo data, and sign out on the site when you are done to end the session there too.
uvx --from ./$WHEEL fluxcut-capture login https://app.your.site # sign in, close the window uvx --from ./$WHEEL fluxcut-capture film scenes.json --base https://app.your.site --session app.your.site uvx --from ./$WHEEL fluxcut-capture logout app.your.site # then sign out on the site
It uses your Chrome or Edge; with neither, it downloads Chromium once (about 150 MB, no admin rights). An agent in the cloud has no window to open: it gives you the scene file and these commands to run yourself.
5. Ask for a video
Use the fluxcut-agent skill. Make a 30-second promo for <product> (https://your.site): <who it is for>, <the pain it removes>, <a real number>. Film the footage from the site with fluxcut-capture.
Made the project in the app already? Point the agent at it by its short name:
Use the fluxcut-agent skill. Work on Fluxcut project <short name>.
Try it free first with backend "fixture": placeholder voice, music and pictures, no spend. For a team, run a reviewer in a second agent — ideally another model — with a reviewer key and the fluxcut-reviewer skill, pointed at the same project.