Agent-native video editing

Connect the coding agent you already use.

Real recordings in. Launch-ready ad out.

Create a cloud Editor draft, upload recordings of your real app, and let your coding agent arrange, narrate, score, render, and download the ad. Generated scenes are optional garnish. Hubfluencer Studio on macOS is the flagship for local capture and precise editing.

Tokens live in the web app under Settings → Access tokens. Prepaid credits at $0.99 each — less in bulk — and drafts are free. The agent quotes the price and asks before it spends.

agent session
# You type
> Use Hubfluencer to turn this checkout recording into a launch ad.

# Your agent calls (creator profile — the default)
create_editor_draft({ product_prompt: "Checkout walkthrough from a real recording" })
upload_video({ slug, file_path: "./checkout.mp4" })
render({ slug })

# You get back
→ { slug: "...", ready: true,
    video_url: "https://...mp4 (presigned, ~24h)",
    saved_to: "./checkout.mp4" }
A real render — one prompt, no editor opened. Yours arrives as a clean MP4, ready to post.

How it works

Three steps. One prompt. One MP4.

Connect your account

Create your account at app.hubfluencer.com and generate an access token (Settings → Access tokens, Generate videos scope) — or skip the copy-paste and run npx -y @hubfluencer/mcp@0.20.0 login.

Drafts and planning are free — buy credits ($0.99 each, less in bulk) when you're ready to render.

Add the MCP

Register the Hubfluencer MCP server with your agent — one command or a small config snippet. Pick your tool in the Quickstart below.

npx -y @hubfluencer/mcp@0.20.0 --profile creator

The creator profile keeps the high-level create, recovery, and delivery tools visible so your agent spends less context on discovery. Existing setups remain on the full profile by default.

Prompt your agent

Say “Use Hubfluencer to make a 15s ad for my candle brand” and get an MP4 back.

Drafts are free. A short renders for 15 credits (≈ $15 max), a 5-scene editor ad for ~28 (≈ $28 max) — your agent confirms the price with you first, and most renders finish in a few minutes.

Quickstart

Wire it up to your agent.

Pick your tool. Each kit registers the same @hubfluencer/mcp server and ships a concise, on-demand skill. The MCP gives your agent the tools; the skill teaches spend approval and lifecycle rules, then loads its advanced guide only when needed.

After connecting, run npx -y @hubfluencer/mcp@0.20.0 doctor --profile creator. It verifies credentials, the secure API origin, credits access, tool profile, and local-file boundaries without spending credits.

Add the MCP — one command

terminal
claude mcp add --transport stdio --env HUBFLUENCER_API_TOKEN=YOUR_TOKEN hubfluencer -- npx -y @hubfluencer/mcp@0.20.0 --profile creator

Paste it into your shell — not into a running Claude session, where it's read as a prompt instead of executed. All flags go before the server name; -- separates it from the command Claude Code runs. Use --scope project to write the server into .mcp.json at the repo root.

…or a config file

.mcp.json
{
  "mcpServers": {
    "hubfluencer": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@hubfluencer/mcp@0.20.0", "--profile", "creator"],
      "env": {
        "HUBFLUENCER_API_TOKEN": "${HUBFLUENCER_API_TOKEN}"
      }
    }
  }
}

Teach the agent

Install the complete on-demand skill with one command. Add --project for .claude/skills instead of your personal skill directory.

npx -y @hubfluencer/mcp@0.20.0 install-skill --client claude-code

Download the kit

Connect first: create a Generate-videos-scope token in the app and export it as HUBFLUENCER_API_TOKEN, or run npx -y @hubfluencer/mcp@0.20.0 login. Never paste a token into a committed file — use ${HUBFLUENCER_API_TOKEN} expansion.

Add the MCP — one command

terminal
codex mcp add hubfluencer --env HUBFLUENCER_API_TOKEN=YOUR_TOKEN -- npx -y @hubfluencer/mcp@0.20.0 --profile creator

…or a config file

~/.codex/config.toml
[mcp_servers.hubfluencer]
command = "npx"
args = ["-y", "@hubfluencer/mcp@0.20.0", "--profile", "creator"]

[mcp_servers.hubfluencer.env]
HUBFLUENCER_API_TOKEN = "YOUR_TOKEN"
# Optional:
# HUBFLUENCER_BASE_URL = "https://hubfluencer.com"
# HUBFLUENCER_OUTPUT_DIR = "/absolute/path/where/mp4s/may/be/written"

Restart Codex after editing config.toml. Manage with codex mcp list / get / remove.

Teach the agent

Install the complete skill in Codex's shared native ~/.agents/skills/hubfluencer-create directory. Add --project for .agents/skills/hubfluencer-create in the current project. AGENTS.md is now only an optional short pointer.

npx -y @hubfluencer/mcp@0.20.0 install-skill --client codex

Download the kit

Connect first: create a Generate-videos-scope token in the app, or run npx -y @hubfluencer/mcp@0.20.0 login. If you logged in, omit the env block entirely — the server reads the saved token automatically.

Add the MCP — config only

OpenCode has no mcp add command. Hand-edit the JSON config. Note: type is local (not stdio), and the key is environment (not env).

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "hubfluencer": {
      "type": "local",
      "command": ["npx", "-y", "@hubfluencer/mcp@0.20.0", "--profile", "creator"],
      "enabled": true,
      "environment": {
        "HUBFLUENCER_API_TOKEN": "YOUR_ACCESS_TOKEN"
      }
    }
  }
}

Goes in opencode.json (project root) or ~/.config/opencode/opencode.json. Restart OpenCode after editing.

Teach the agent

Use OpenCode's native on-demand skill directory instead of putting the full workflow in always-on AGENTS.md. Add --project for .opencode/skills.

npx -y @hubfluencer/mcp@0.20.0 install-skill --client opencode

Download the kit

Connect first: paste a Generate-videos-scope token as HUBFLUENCER_API_TOKEN in the environment block, or run npx -y @hubfluencer/mcp@0.20.0 login and drop the block entirely.

Add MCP support, then the server

Pi has no native MCP — install the pi-mcp-adapter extension, then drop an mcp.json config.

terminal
pi install npm:pi-mcp-adapter
~/.pi/agent/mcp.json
{
  "mcpServers": {
    "hubfluencer": {
      "command": "npx",
      "args": ["-y", "@hubfluencer/mcp@0.20.0", "--profile", "creator"],
      "env": {
        "HUBFLUENCER_API_TOKEN": "${HUBFLUENCER_API_TOKEN}"
      }
    }
  }
}
Heads up: Pi MCP support comes from a community extension, not a first-party feature — the adapter's field names could drift between versions, so verify against the pi-mcp-adapter README. A fully-native alternative is to ship a Pi Skill that drives the REST API with bash + curl.

Teach the agent

Install the concise skill and its advanced reference together. Add --project for .pi/skills; AGENTS.md is only an optional short pointer.

npx -y @hubfluencer/mcp@0.20.0 install-skill --client pi

Download the kit

One config shape, many clients

Cursor, Windsurf, Claude Desktop and most other MCP clients accept the same mcpServers block:

mcp servers config
{
  "mcpServers": {
    "hubfluencer": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@hubfluencer/mcp@0.20.0", "--profile", "creator"],
      "env": {
        "HUBFLUENCER_API_TOKEN": "${HUBFLUENCER_API_TOKEN}"
      }
    }
  }
}
  • Cursor.cursor/mcp.json in the project, or ~/.cursor/mcp.json globally.
  • Windsurf~/.codeium/windsurf/mcp_config.json
  • Claude Desktopclaude_desktop_config.json via Settings → Developer → Edit config.

Field names occasionally differ between clients (env vs environment) — check your tool's MCP docs if the server doesn't appear.

Teach the agent

Grab the plain-Markdown guidance and drop it wherever your tool reads instructions — a rules file, project notes, or the system prompt. API.md is the same reference the skills consult.

Download the kit

Connect first: create a Generate-videos-scope token in the app and reference it as ${HUBFLUENCER_API_TOKEN}, or run npx -y @hubfluencer/mcp@0.20.0 login and drop the env block entirely.

Tool reference

What the agent can call.

Tool What it does Credits
create_editor_draft Create an empty editor timeline for real recordings. Default creator-profile start. 0
upload_video Upload your own video clip and drop it onto the timeline as a scene. 0
render Render the timeline. Footage-only projects are 0 credits; ungenerated AI scenes charge at render. 0+
make_video Full profile only: creates a synthetic draft, quotes it, generates, polls and downloads. 15+
create_short Create a short draft from a prompt. 0
generate_short Render a short draft. 15
create_editor_ad Create a multi-scene editor ad draft for story prompts. 0
cancel_autopilot Stop exactly the Autopilot attempt observed in generation_summary; the tool forwards its run/start fence and keeps completed work. 0
cancel_segment_generation Cancel one individually generated scene with its claim token and refund its charge. refund
set_product Attach a product photo as the identity reference for every generated AI scene; its description grounds the story and the exact image becomes the closing shot unless you set another. 0
set_logo Overlay your brand logo on the finished video. 0
set_closing_image Set a custom end-card image — upload one or reuse the product shot. 0
get_status Check current status, including real per-clip progress while a paid short renders. 0
wait_for_completion Poll until the render finishes; call it again if it times out mid-wait. 0
download_result Download the finished MP4 from its presigned (~24h) URL. 0
list_renders List every render version with status, download/thumbnail URLs, duration, freshness, and retryability. 0
retry_render Re-run a failed render from its saved snapshot. 0
list_voices List voice-over voices and their verified languages. 0
get_credits Read the current credit balance before spending. 0
list_projects List the account's recent video projects. 0

The default creator profile starts with real footage: create_editor_draft, upload_video, then render. make_video and shorts live on --profile full. A footage-only render is 0 credits; generated scenes and a short render spend credits (a credit is $0.99, less in bulk) — quote first.

Bringing your own media is free: upload_video drops your footage onto the timeline, and set_product / set_logo / set_closing_image add your brand. Beyond this curated set, the MCP also exposes the full granular editor — scenario, per-scene prompts, narration, voice and music — so the agent can direct an ad end to end. See the @hubfluencer/mcp tool list for everything.

How it works

Record the real app. Let your coding agent edit.

Hubfluencer Studio captures display, window, region, or the iOS Simulator. Connect the coding agent you already use. Cloud editor ads and shorts stay on --profile full as the no-Mac escape valve.

Capture

Record the real product on a Mac. Local editing is free; credits meter only third-party ingredients (voice, music, AI garnish).

Connect

Device-link or a Generate-videos token. Agent tokens are video:read + video:generate — never account:admin.

Edit

create_editor_draft → upload_video → optional voice/music → render. That is the default creator profile.

Deliver

wait_for_completion then download_result. Review links and the reminder calendar stay available when you need a client or a posting date.

Campaign packs, series, tracking, and make_video remain in the API and on --profile full. They are not the Connect-your-agent default.

Auth & credits

Prepaid credits, scoped tokens.

You buy credits and create access tokens in the app — $0.99 a credit, less in bulk. Nothing crypto here — just a balance and a bearer token. The agent quotes the cost and asks before it spends; you stay in control.

Access tokens

Created in the app under Settings → Access tokens. The agent scope is labelled “Generate videos” = video:generate + video:read. Agent tokens never get account:admin.

Environment variables the server reads:

  • HUBFLUENCER_API_TOKEN — required (unless logged in)
  • HUBFLUENCER_BASE_URL — optional, default https://hubfluencer.com
  • HUBFLUENCER_OUTPUT_DIR — optional, confines where MP4s may be written

Connect with no copy-paste

Run npx -y @hubfluencer/mcp@0.20.0 login. It prints a URL and a short code; you approve the connection in the signed-in app. A scoped token is saved to ~/.hubfluencer/credentials.json and the server picks it up automatically — so you can omit HUBFLUENCER_API_TOKEN entirely.

terminal
npx -y @hubfluencer/mcp@0.20.0 login

The agent never invents a token and never echoes one in its output.

Failure handling

  • 402 — credits_insufficient: report required vs available, then stop (no loop).
  • 409 — already running: keep polling, do not restart.
  • 403 — insufficient_scope: the token lacks video:generate.
  • Retries: send an Idempotency-Key on generate calls so a retry can't double-charge.

Credits

  • Draft & plan — free (plus 20 AI assists/day)
  • Render a short — 15 credits (≈ $15 max)
  • 5-scene editor ad — ~28 credits (≈ $28 max; preflight the exact cost)

A credit is $0.99, less in bulk — prepaid in the app. The skills have the agent quote the cost and get your go-ahead before spending.

Out of scope

Publishing to TikTok / Instagram needs a human-linked social account. The agent never auto-publishes — it returns the finished MP4 plus a ready-to-paste caption so you post it yourself.

Direct REST — no MCP

Prefer raw HTTP? Go for it.

Base URL is https://hubfluencer.com, everything lives under /api, and you authenticate with Authorization: Bearer <token>. Three requests take a short from prompt to MP4: create the draft, start the render, then follow generation_summary timing and available actions until download_result is advertised.

Read the API reference.

Every external endpoint, with parameters and example responses — no token needed to read it. The raw OpenAPI spec is linked from there too.

For Editor and Short, generation_summary is lifecycle authority: follow generation_summary.timing.poll_after_ms, invoke only generation_summary.available_actions, and use product projections as display metadata or explicit route fences only. Fetch the artifact only when download_result is advertised.

shorts.sh
# 1. Create an editor draft (0 credits) — language is required; response includes the slug
curl -X POST https://hubfluencer.com/api/editor \
  -H "Authorization: Bearer $HUBFLUENCER_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: editor-draft:checkout" \
  -d '{"language": "en", "product_prompt": "Checkout walkthrough from a real recording"}'

# 2. Upload recordings (0 credits) via MCP upload_video, or POST /api/editor/SLUG/uploads/presign → PUT → confirm.
# 3. Render (0 credits when every scene is already footage).
curl -X POST https://hubfluencer.com/api/editor/SLUG/render \
  -H "Authorization: Bearer $HUBFLUENCER_API_TOKEN" \
  -H "Idempotency-Key: editor-render:SLUG"

FAQ

Questions, answered.

How long does a render take?

A few minutes for most shorts; multi-scene autopilot runs can take longer. Poll only while generation_summary.timing.poll_after_ms is positive, using the exact server cadence; null means stop and follow an advertised action.

What does a video cost in real money?

A credit is $0.99 — less when bought in bulk (packs and subscriptions). A short is 15 credits (up to ~$15), a 5-scene editor ad ~28 (up to ~$28) — drafts, planning and 20 AI assists a day are free, and the skills have your agent confirm the price with you before rendering.

Watermarks or usage restrictions?

No watermarks — the MP4 you download is the final asset, ready to post. You keep the rights to everything you upload.

Can I run it headless — CI, cron, a bot?

Yes. Auth is a plain env-var Bearer token, every feature is REST underneath, and the MCP server is a stateless npx process — anything that speaks MCP or HTTP works.

Where do I get help?

The Discord is the fastest lane — or email contact@hubfluencer.com. Bug reports and feature requests about the MCP kits are especially welcome.