Generate AI images and videos straight from your agent. Create images from a text prompt with Z-Image, produce videos up to 15 seconds in 480p to 1080p with Seedance 2.0, or submit jobs to any other HotAPI model. Check on a job as it runs, list your recent jobs, cancel one before it starts, and fetch the finished output.
OpenCode is an open-source agent for the terminal. Remote MCP servers go in its config file and sign in through OAuth.
This guide connects HotAPI to OpenCode through MewCP, so OpenCode can use HotAPI's 9 tools, like list_face_assets, generate_z_image_spicy and list_models, without your HotAPI credentials ever reaching the app.
Your HotAPI API key is stored encrypted and injected only at call time. Your agent never holds it, so it can never leak it, log it or paste it into a prompt.
More apps
TypeSafe's Jev model for typed decisions — ask yes/no, multiple-choice or rubric-score questions about a block of state and get calibrated probabilities back instead of prose. Built for classification, routing and scoring steps inside a workflow
Turn your AI agent into a creative studio The world's best image, video, audio and 3D models, inside the AI assistant you already use.
Access Google's Gemini models for text generation, reasoning, coding, multimodal analysis and AI-powered workflows. Process text, images and structured data through advanced AI capabilities.
Give AI coding agents access to a curated library of real-world website designs, screenshots, design systems, and reusable UI components. Search visual references, find similar designs, analyze layouts, extract colors and typography, compare websites, and retrieve copy-ready JSX components for building better interfaces
Other clients
HotAPI works the same way in every client below. Pick yours for its own guide.
Free to start.
Scope access to the exact HotAPI tools and accounts you allow, work and personal side by side. Anything outside that scope is refused at call time, even when the model asks for it.
Each call is logged: what ran, on which account, and whether it worked. Failures come back structured, so the agent knows whether to retry instead of guessing.
Every app sits behind one secure MCP URL, and there is no server for you to deploy or keep running. Add an integration in the dashboard and it is live on the next call, with no config to change and no new credentials to wire up. Tools load only when a task needs them, so your agent stays fast and focused however many apps you connect.
Edit ~/.config/opencode/opencode.json, or opencode.json in your project root.
Start a new chat and ask: "List the tools you can use from MewCP." You should see your connected apps.
Lists the organization's trusted reference faces (images and videos auto-registered with the video provider), oldest-used first. Returns each face's id, source_url, created_at and last_used_at, plus the `used` and `limit` quota counts and a `next_cursor` for pagination. Each organization can hold up to 200 faces; at the cap, new submissions fail with `400 trusted_face_limit_reached` until unused faces are deleted. Use `unused_since` to find prune candidates.
Submits an asynchronous uncensored text-to-image task on the z-image-spicy model and returns the queued task (id, status, estimated_credits_cost) without waiting for the image. Credits are charged up-front; poll get_task with the returned id until status is terminal (succeeded, failed, cancelled, expired) to retrieve the hosted image URLs in `output`. Leave `webhook` unset and retrieve results by polling.
Lists the available models with their capabilities, output modality and credit pricing (1000 credits = $1; pricing shape varies by modality). Each entry's `id` is the model name to pass as `model` when creating a task.
DESTRUCTIVE — REQUIRES EXPLICIT USER CONFIRMATION BEFORE CALLING. Cancels a generation task by id and returns its id and resulting status. Cancellation cannot be undone, and the task's output is never produced. The full estimated charge is refunded only if the task has not started (started_at is null); once it is processing the provider has been billed and there is no refund. A task already in a terminal status (succeeded, failed, cancelled, expired) returns a 409 conflict. NEVER call this tool autonomously or as part of an automated flow. You MUST stop, tell the user exactly which task will be cancelled and the refund rules above, and wait for their explicit written confirmation before proceeding.
Submits an asynchronous image or video generation task for any model by model name and a model-specific input object, and returns the queued task (status queued) to poll with get_task until a terminal status. Prefer the per-model generation tool when one exists, for example generate_z_image_spicy. Model names come from list_models. Credits are charged up-front. Pass idempotency_key_header to dedupe retries: replaying the same key and body returns the original task, while the same key with a different request returns a 409 conflict. Leave webhook and webhook_url unset; results are retrieved by polling get_task.
Fetches a task by id and returns its status, credit costs, timestamps and, once status is succeeded, its output with hosted asset URLs. Poll until status is terminal (succeeded, failed, cancelled or expired) and stop on the first terminal status; use 1-2s intervals for fast models and 5s or more for long videos. Output assets expire at expires_at, so copy them to your own storage before then.
Lists the organization's tasks, most recent first, with cursor pagination (max 100 per page), and returns the page of tasks plus next_cursor. Filterable by status (or active for everything not yet terminal), API key, free-text query and creation date range. Use fields=summary when polling to omit input and output, since an inlined image input can be megabytes; then call get_task for the payload.
Retrieves daily usage rollups for the organization, one entry per model per day, most recent first. Each entry returns the date, model, request count, credits charged and error count. Optionally restrict to an inclusive date range with `from_date` and `to_date`.
Submits an asynchronous, uncensored text-to-video task on the seedance-2.0-spicy model (480p/720p/1080p, 4-15s, selectable aspect ratio, optional synced audio) and returns the queued task, including its id and estimated credit cost. Poll the task with get_task at 5-second intervals or longer until it reaches a terminal status; the video URL appears in `output` once status is succeeded. If the generated audio is rejected by provider moderation the whole task fails with no video and a full refund; pass generate_audio=false for a silent video to avoid this.