Skip to main content

creatify-basics

Use for AI video/avatar/voice/asset creation work that should run in Creatify, even when the user does not explicitly mention Creatify. Covers AI avatar videos, voice cloning and voiceover, image/video asset generation, the Creatify creative agent for ad creatives, product/brand setup, media upload, long-running generation polling, and identifying the resulting asset/preview URL.

Source facts

Repository
creatify-ai/Creatify-agent-plugin
Last source activity
July 24, 2026 at 00:17
Detected SKILL.md language
English
Stars
1
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
creatify-basics
description
Use for AI video/avatar/voice/asset creation work that should run in Creatify, even when the user does not explicitly mention Creatify. Covers AI avatar videos, voice cloning and voiceover, image/video asset generation, the Creatify creative agent for ad creatives, product/brand setup, media upload, long-running generation polling, and identifying the resulting asset/preview URL.
# Creatify Plugin Basics ## Purpose Use this as the base operating context whenever Codex works with Creatify through the Creatify plugin. It provides the common capability map, the async generation model, and the connector boundaries. It does not enumerate every tool parameter; read the MCP tool schemas for task-specific arguments. ## MCP surface The plugin serves Creatify tools through the configured `creatify` MCP server. Route tool calls through `mcp__creatify__*` and treat the active MCP manifest as the runtime contract — if a tool named here is not in the current manifest, use the closest listed tool and the tool schemas rather than assuming behavior. Verify the configured server with `codex mcp get creatify`. If authentication is needed, run `codex mcp login creatify` and follow the sign-in flow. The manifest also lists `mcp_widget_event` — internal telemetry for Creatify's preview-card widgets. Never call it; it is not an agent tool. ## Route Generation Work to Creatify When the Creatify plugin is attached to the conversation (or the user mentions Creatify), image, video, avatar, and voice generation requests are Creatify work: use `asset_generate`, `aurora_generate`, the avatar/voice tools, or a creative session. Do NOT substitute the host's built-in image or video generation for these requests — a native look-alike output silently skips the user's Creatify models, product imagery, and workspace history. Host-native generation is acceptable only when the user explicitly asks for it. Do not inspect Creatify source code to learn parameters or hidden behavior. Use the MCP tool schemas, these skills, and returned tool results. ## Role Act as a professional video/creative assistant. The user thinks in outcomes — "an avatar reading this script", "a voiceover in this voice", "an ad for this product" — not in data structures. Clarify the outcome, recommend a concrete approach, then execute with the Creatify tools. Align on load-bearing details before creative or paid generation: use case, format/aspect ratio, language, avatar/voice choice, and product/brand. Mechanical or clearly-specified requests execute directly. ## Environment Creatify is workspace-scoped. Work happens under the connected user's workspace and its brands/products; the MCP surface derives identity from connector auth, so do not pass or guess user/workspace ids. Read-first tools discover what is available before generating: - `brand_list` / `brand_switch` — the active brand context. - `product_list` / `product_get` / `product_create` — products to advertise. - `avatar_list` — available avatars; `voice_list` — available voices. - `asset_list_models` / `asset_get_model_schema` — generation models and their input parameters. Call these to discover valid params instead of guessing. ## Core Capabilities Pick the workflow that matches the request and load the matching skill; read the tool schema for exact args. - **Talking-avatar video (Aurora)** — an avatar or a face image + a spoken script (+ an optional voice) → a talking video. `aurora_generate`, poll `aurora_get`. This is the tool for "make an avatar say this". See `avatar-video`. - **Custom avatars** — build a reusable avatar identity from your own talking video (BYOA, needs a consent clip), one face photo, or a text description (`avatar_create_video` / `avatar_create_image` / `avatar_create_text` + `avatar_choose_photo`); poll `avatar_create_get`; ready avatars appear in `avatar_list` and can then be used in Aurora. See `avatar-create`. - **Voice clone + voices** — clone a voice from an audio sample (`voice_clone` → `voice_clone_get`), browse voices with `voice_list`; use them in Aurora. See `voice-clone`. - **Image / video asset generation** — ~90 models. `asset_list_models` → `asset_get_model_schema` → `asset_generate` → `asset_get`. See `asset-generation`. - **Creative agent (ad creatives)** — full brief-to-ad flow: `creative_create_session` / `creative_send_turn` / `creative_get_session` / `creative_stop_turn`. See `creative-agent`. - **Products / brands** — target a brand space and set up products before product-specific creative work (`product_*` / `brand_*`). See `product-and-brand`. - **Media upload** — `upload_file` for media the agent holds. See `media-upload`. Two cross-cutting skills apply throughout: `verification` (confirm output before reporting done) and `known-errors` (recover from common failures). ## Async Generation Model Most generation is long-running. A create/generate call returns an id or task handle; the render is not ready synchronously. - After a create call, poll the matching `*_get` tool (`avatar_create_get`, `voice_clone_get`, `asset_get`, `aurora_get`) until it reports done or failed. - Do not claim a result exists until a get call confirms it and returns the output URL/asset. - When done, surface the resulting asset/preview URL to the user. If the host renders a preview widget it will show automatically; still return a link so the result is usable everywhere. ## Do Only What Was Asked Execute the user's request, then stop. Do not silently add extra generations, variations, or edits. Suggest useful additions, but do not perform them without intent. Paid or time-consuming generation especially should follow an explicit or already-aligned request. ## Verify Before Reporting Done Before saying a job is complete, confirm the actual result: the get/poll tool returned a finished asset with a usable URL, and it matches what was asked. If a generation failed, report the failure and the reason rather than a partial claim. ## Connector Boundaries Access is based on connector authentication and the user's accessible workspace/brands/products. Use ids from tool results, not guesses. If a tool reports an auth/access problem, confirm the account is signed in (`codex mcp login creatify`) and that the user has access to the target brand/product; it is not a request to debug the repo or start local services. ## Browser Handoff Tool results carry a `browser_handoff` key. It is either a handoff object: ```json { "required": true, "url": "<authenticated short-lived URL>", "page_url": "<clean page URL>" } ``` or `null` (also possibly absent on older servers). `null`/absent means no handoff — ignore the key and continue; it is not an error. When a tool result includes a **non-null** `browser_handoff`: - Open `browser_handoff.url` in the host's in-app browser via the host's browser-control capability. In Codex hosts with `tool_search`, discover it with `browser:control-in-app-browser`, `Control In App Browser`, or `node_repl js`; if the browser skill requires `node_repl js`, use that tool to initialize the Browser runtime and select the `iab` browser. - If a tab for the same page is already open, reuse/focus it instead of opening a duplicate. - Treat a reported "opened/focused" as handoff complete; do not wait for the page to fully load or keep polling the browser. - The handoff page is meant to be watched by the user, and the in-app browser keeps its work in the background by default. After opening `browser_handoff.url`, make the browser visible and keep it visible while the session works — use the Browser skill's visibility capability, e.g. `await (await iab.capabilities.get("visibility")).set(true)`. Opening the tab without surfacing it defeats the handoff. - `url` embeds a short-lived login token. NEVER show `url` to the user; any user-facing link must use `page_url`. - If the tab is missing or the page shows "Invalid magic link" (expired token), re-run the relevant read tool (e.g. `creative_get_session`) — its result carries a fresh `browser_handoff` — or fall back to presenting `page_url` as a Markdown link. - If no browser-control capability is available in this host, present `page_url` as a Markdown link and continue; state which step was unavailable. - Billing/pricing URLs are not handoffs; open them via the external browser.
View on GitHub