anima-design-agentTurns ideas into live, full-stack web applications with editable code, built-in database, user authentication, and hosting. Anima is the design agent in the...
Install via ClawdBot CLI:
clawdbot install dannyshmueli/anima-design-agentAnima is the design agent in your AI coding swarm. This skill gives agents design awareness and the ability to turn visual ideas into production-ready code.
There are two distinct paths depending on what you're trying to do:
Build complete applications from scratch. No local codebase needed. Anima handles everything: design, code generation, scalable database, and hosting. You go from idea to live URL in minutes.
This path is powerful for parallel variant creation. Generate multiple versions of the same idea with different prompts, all at the same time. Pick the best one, then open the playground URL to keep refining. All without writing a line of code or managing infrastructure.
Create Anima Playgrounds by: Prompt, Clone URL, Figma URL
What you get:
Pull design elements and experiences from Anima into your existing project. Use this when you have a codebase and want to implement specific components or pages from a Figma design url or an existing Anima Playground.
Flows: Figma URL to Code (codegen), Anima Playground to Code
What you get:
Anima's playground-create tool generates full applications from scratch. This takes time:
Always use a 10-minute timeout (600000ms) for playground-create and playground-publish calls. Default timeouts will fail.
Before attempting any Anima MCP call, verify the connection is already working:
Interactive environments (Claude Code, Cursor, Codex): Try calling any Anima MCP tool (e.g., list tools). If it responds, you're connected β skip setup. If it fails, add the Anima MCP server and authenticate via browser OAuth.
Headless environments (OpenClaw, server-side agents): Try calling any Anima MCP tool. If it responds, you're connected. If it fails, the user needs to generate an API key from Anima Settings β API Keys at dev.animaapp.com and configure it in their environment.
See references/setup.md for full step-by-step instructions for each environment.
Before diving into tools and parameters, decide which path fits the user's goal.
| User says | Likely path | Why |
|---|---|---|
| "Implement this Figma design" | Path B | "Implement" implies code in their project |
| "Turn this Figma into a live site" | Path A (f2c) | "Live site" means they want hosting |
| "Build me an app like this" + URL | Path A (l2c) | Clone and rebuild from scratch |
| "Add this Figma component to my project" | Path B | "Add to my project" = codebase integration |
| "Clone this website" | Path A (l2c) | Clone = capture and rebuild from scratch |
| "Download the playground code" | Path B | Wants files locally |
When still unclear, ask: "Do you want a live hosted app, or code files to add to your project?"
Before calling any tool, the agent needs to decide: is this request ready to build, or does it need clarification? And if it's ready, how do you write a prompt that lets Anima shine?
Threshold rule: Can you write a prompt that includes purpose, audience, and 3-5 key features? Yes = build. No = ask.
Signals to just build:
Signals to ask:
When you ask, ask everything in one message. Don't drip-feed questions. If the user is vague and doesn't want to answer, skip clarification and use Explore Mode to generate 3 variants instead. Showing beats asking.
Anima is a design-aware AI. Treat it like a creative collaborator, not a code compiler. Describe the feel of what you want, not the pixel-level implementation. Over-specifying with code and hex values overrides Anima's design intelligence and produces generic results.
Include in prompts: purpose, audience, mood/style, 3-5 key features, content tone.
Leave out of prompts: code snippets, CSS values, hex colors, pixel dimensions, font sizes, component library names (use the uiLibrary parameter instead), implementation details, file structure.
Bad (over-specified):
Create a dashboard. Use #1a1a2e background, #16213e sidebar at 280px width,
#0f3460 cards with 16px padding, border-radius 12px. Header height 64px with
a flex row, justify-between. Font: Inter 14px for body, 24px bold for headings.
Good (descriptive):
SaaS analytics dashboard for a B2B product team. Clean, minimal feel.
Sidebar navigation, KPI cards for key metrics, a usage trend chart, and a
recent activity feed. Professional but approachable. Think Linear meets Stripe.
Determine which flow to use based on what the user provides and what they want.
User has a text description or idea β p2c
The most flexible path. Anima designs everything from your description. Best for new apps, prototypes, and creative exploration.
User has a website URL β l2c
Use l2c to clone the site. Anima recreates the full site into an editable playground.
User has a Figma URL β f2c (Path A) or codegen (Path B)
Two sub-cases:
Quick reference:
| User provides | Intent | Flow | Tool |
|---|---|---|---|
| Text description | Build something new | p2c | playground-create type="p2c" |
| Website URL | Clone it | l2c | playground-create type="l2c" |
| Figma URL | Make it a live app | f2c | playground-create type="f2c" |
| Figma URL | Implement in my project | codegen | codegen-figma_to_code (Path B) |
Describe what you want in plain language. Anima designs and generates a complete playground with brand-aware visuals.
playground-create(
type: "p2c",
prompt: "SaaS analytics dashboard for a B2B product team. Clean, minimal feel. Sidebar navigation, KPI cards for key metrics, a usage trend chart, and a recent activity feed. Professional but approachable.",
framework: "react",
styling: "tailwind",
guidelines: "Dark mode, accessible contrast ratios"
)
Parameters specific to p2c:
| Parameter | Required | Description |
|---|---|---|
| prompt | Yes | Text description of what to build |
| guidelines | No | Additional coding guidelines or constraints |
Styling options: tailwind, css, inline_styles
Returns: { success, sessionId, playgroundUrl }
Provide a website URL. Anima recreates it as an editable playground with production-ready code.
playground-create(
type: "l2c",
url: "https://stripe.com/payments",
framework: "react",
styling: "tailwind",
language: "typescript",
uiLibrary: "shadcn"
)
Parameters specific to l2c:
| Parameter | Required | Description |
|---|---|---|
| url | Yes | Website URL to clone |
Styling options: tailwind, inline_styles
UI Library options: shadcn only
Language: Always typescript for l2c
Returns: { success, sessionId, playgroundUrl }
Provide a Figma URL. Anima implements the design into a full playground you can preview and iterate on.
URL format: https://figma.com/design/:fileKey/:fileName?node-id=1-2
Extract:
/design/ (e.g., kL9xQn2VwM8pYrTb4ZcHjF)node-id query parameter value, replacing - with : (e.g., 42-15 becomes 42:15)playground-create(
type: "f2c",
fileKey: "kL9xQn2VwM8pYrTb4ZcHjF",
nodesId: ["42:15"],
framework: "react",
styling: "tailwind",
language: "typescript",
uiLibrary: "shadcn"
)
Parameters specific to f2c:
| Parameter | Required | Description |
|---|---|---|
| fileKey | Yes | Figma file key from URL |
| nodesId | Yes | Array of Figma node IDs (use : not -) |
Styling options: tailwind, plain_css, css_modules, inline_styles
UI Library options: mui, antd, shadcn, clean_react
Returns: { success, sessionId, playgroundUrl }
After creating a playground, deploy it to a live URL or publish as an npm package.
playground-publish(
sessionId: "abc123xyz",
mode: "webapp"
)
Returns: { success, liveUrl, subdomain }
The app becomes available at a URL like https://winter-sun-2691.dev.animaapp.io.
playground-publish(
sessionId: "abc123xyz",
mode: "designSystem",
packageName: "@myorg/design-system",
packageVersion: "1.0.0"
)
Returns: { success, packageUrl, packageName, packageVersion }
This is Path A's secret weapon. When a user says "build me X" or "prototype X", generate multiple interpretations in parallel, publish all of them, and return live URLs for comparison.
Workflow:
playground-create calls in parallel (one per variant, type p2c)playground-publish (mode webapp)Timing: All 3 variants generate in parallel, so total wall time is roughly the same as one (~5-7 minutes creation + 1-3 minutes publishing). Expect results within ~10 minutes.
Tips for good variant prompts:
| User provides | Flow | Tool |
|---|---|---|
| Figma URL + wants code in their project | Figma to Code | codegen-figma_to_code |
| Anima Playground URL + wants code locally | Download | project-download_from_playground |
| Project stack | Parameter | Value |
|---|---|---|
| React | framework | "react" |
| No React | framework | "html" |
| Tailwind | styling | "tailwind" |
| CSS Modules | styling | "css_modules" |
| Plain CSS | styling | "plain_css" |
| TypeScript | language | "typescript" |
| MUI | uiLibrary | "mui" |
| Ant Design | uiLibrary | "antd" |
| shadcn | uiLibrary | "shadcn" |
codegen-figma_to_code(
fileKey: "kL9xQn2VwM8pYrTb4ZcHjF",
nodesId: ["42:15"],
framework: "react",
styling: "tailwind",
language: "typescript",
uiLibrary: "shadcn",
assetsBaseUrl: "./assets"
)
Returns:
| Field | Description |
|---|---|
| files | Generated code files as {path: {content, isBinary}} |
| assets | Array of {name, url} for images and assets |
| snapshotsUrls | Visual reference images {nodeId: url} |
| guidelines | Design context: spacing, layout, and typography notes |
| tokenUsage | Approximate token count |
After receiving the response:
snapshotsUrls to understand the exact visual appearancedata-variant attributes from generated components to your component propsguidelines field as design context (spacing, layout, typography notes)assetsBaseUrl pathPull code from an existing Anima Playground into a local project.
project-download_from_playground(
playgroundUrl: "https://dev.animaapp.com/chat/abc123xyz"
)
Returns: Pre-signed URL for the project files (valid for 10 minutes). Adapt the code to the user's project conventions.
Important: Treat Anima output as a representation of design and behavior, not as final code style. Adapt it to your project's conventions, components, and design tokens.
AI Usage Analysis
Analysis is being generated⦠refresh in a few seconds.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Provides a 7-step debugging protocol plus language-specific commands to systematically identify, verify, and fix software bugs across multiple environments.
A comprehensive skill for using the Cursor CLI agent for various software engineering tasks (updated for 2026 features, includes tmux automation guide).
Write, run, and manage unit, integration, and E2E tests across TypeScript, Python, and Swift using recommended frameworks.
Control and operate Opencode via slash commands. Use this skill to manage sessions, select models, switch agents (plan/build), and coordinate coding through Opencode.
Coding style memory that adapts to your preferences, conventions, and patterns for consistent coding.