Install · agent-media

Generate AI UGC videos from your agent

agent-media ships as a CLI, an MCP server, and a Claude Code skill — pick whichever fits your client. All paths talk to the same API and bill from the same balance.

Pick your client

The install path is different per client. Find yours below.

Claude Code

Anthropic's terminal CLI

# 1. Install the CLI (1.12.0+) + log in
npm install -g agent-media-cli@latest
agent-media login

# 2. Add the skill — pulls SKILL.md + 10 reference files
claude skills add github:gitroomhq/agent-media

# 3. (later) keep the skill fresh
agent-media skill update

Restart Claude Code. The skill asks 4 quick questions (topic, who, duration, cost) then drives agent-media.

Cursor / Continue / Windsurf

MCP-aware IDEs

# 1. Install the CLI
npm install -g agent-media-cli@latest
agent-media login

# 2. Add the MCP server to your client's mcp.json:
{
  "mcpServers": {
    "agent-media": {
      "command": "npx",
      "args": ["-y", "@agentmedia/mcp-server"],
      "env": { "AGENT_MEDIA_API_KEY": "<your ma_xxx>" }
    }
  }
}

Reload the IDE. Tools create_selfie, create_character, create_subtitle show up.

Claude.ai / Cowork / Claude Desktop

Web app + desktop app — hosted HTTP MCP

Settings → Integrations → Add custom MCP server:

URL:    https://api.agent-media.ai/mcp
Auth:   Bearer ma_xxx   (your agent-media API key)

Tools create_selfie, create_character, create_subtitle show up. Don’t have an API key? Run agent-media login on any machine first.

Standalone CLI / scripts / CI

No agent — just the CLI

npm install -g agent-media-cli@latest
agent-media login
agent-media selfie --help

Every command supports --json and --quiet for piping. Add --sync to block until the job completes.

Plain REST

From anything that can curl

curl -X POST https://api.agent-media.ai/v2/selfie \
  -H "Authorization: Bearer ma_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "25yo asian woman, long wavy dark hair, soft smile",
    "script": "I keep getting DMs about my hair oil routine",
    "preset": "salon-mirror-result",
    "vibe": "sassy",
    "duration": 10
  }'

Poll GET /v1/videos/<job_id> until status: completed. Full reference in the repo.

What you get