Windpaint
Connect

Claude Code

Install the Windpaint plugin in Claude Code to generate images and video from your terminal session.

The Windpaint plugin for Claude Code adds five skills and connects the hosted MCP server. Claude can then generate images and clips, run products, and write code against the Windpaint API from inside your session.

Prerequisites

Install the plugin

Export your key

In the shell you start Claude Code from:

export WINDPAINT_API_KEY=aak_...

The plugin’s MCP config reads it as Authorization: Bearer ${WINDPAINT_API_KEY}. Add the export to your shell profile so new sessions pick it up.

Add the marketplace and install

Start claude, then run:

/plugin marketplace add windpaint-ai/skills
/plugin install windpaint@windpaint

Check the connection

/mcp

windpaint should show as connected with 20 tools. The skills are available as /windpaint:windpaint, /windpaint:windpaint-image, /windpaint:windpaint-video, /windpaint:windpaint-products and /windpaint:windpaint-api. Claude also loads them on its own when a request matches.

To confirm the key works end to end, ask:

What's my Windpaint credit balance?

Claude calls get_balance and answers with your available and held credits.

MCP server only

If you want the tools without the skills, add the hosted server directly:

claude mcp add --transport http windpaint https://mcp.windpaint.ai/mcp \
  --header "Authorization: Bearer $WINDPAINT_API_KEY"

This writes your key into Claude Code’s config. To share the setup in a repo without committing a key, put it in .mcp.json at the project root and let each person export their own key:

.mcp.json
{
  "mcpServers": {
    "windpaint": {
      "type": "http",
      "url": "https://mcp.windpaint.ai/mcp",
      "headers": {
        "Authorization": "Bearer ${WINDPAINT_API_KEY}"
      }
    }
  }
}

To pin a project, add "X-Windpaint-Project": "my-project" to headers.

Skip this if you installed the plugin; it already registers a server named windpaint.

Try it

Make a 16:9 image of a lighthouse at dusk, long exposure, then animate it with a
slow push-in and waves breaking. Save both to ./media.

What happens:

  1. Claude loads the windpaint, windpaint-image and windpaint-video skills and calls list_capabilities to see which models are live, their resolutions and prices.
  2. It calls generate with capability="image.generate", aspect_ratio="16:9" and wait=true. The image finishes in seconds.
  3. It calls download_asset on the output. Over the hosted server that returns a signed URL, and Claude saves the file with curl -o media/lighthouse.png "<url>".
  4. It calls estimate_cost for video.generate with the image’s asset id in the start_frame slot, then tells you the credits and your available balance and waits for a go-ahead.
  5. After you approve, it calls generate with wait=false, then wait_for_job with timeout_s=600. Video takes a few minutes. If the wait times out, Claude calls wait_for_job again rather than resubmitting.
  6. It downloads the MP4 the same way and reports the paths, the models used, and the credits charged.

Claude Code asks you to approve each tool call unless you’ve allowed them. Keep approval on for generate and run_product if you want to sign off on every spend.

Troubleshooting

Next steps