| name | baoyu-design-integration |
| description | Run Claude Design locally as an Agent Skill to produce polished UI mockups, prototypes, decks & wireframes as self-contained HTML |
| triggers | ["create a design using baoyu-design","make a prototype with claude design locally","design a UI mockup as HTML","build an interactive prototype","create a slide deck design","wireframe a mobile app interface","generate a landing page design","design a dashboard UI"] |
baoyu-design Integration
Skill by ara.so — Design Skills collection.
baoyu-design packages Claude Design — the design engine behind claude.ai/design — as a portable Agent Skill. It enables local agents to produce polished UI mockups, interactive prototypes, wireframes, landing pages, dashboards, mobile apps, and slide decks as self-contained HTML files.
What It Does
- Full design process: Clarifying questions → design context gathering → HTML deliverables → preview & verification
- 24 built-in skills: Hi-fi design, interactive prototypes, wireframes, slide decks, mobile prototypes, design systems, export formats (PDF, PPTX, Figma)
- Visual iteration loop: Point at elements in browser preview, describe changes, agent edits source
- Self-contained output: All designs saved as standalone HTML in
designs/<project>/
- Best with Claude Opus 4.8: Optimized for strong models but works with other capable LLMs
Installation
Via npx skills CLI (Recommended)
npx skills add JimLiu/baoyu-design
npx skills add JimLiu/baoyu-design -g
npx skills add JimLiu/baoyu-design --agent claude-code
npx skills add JimLiu/baoyu-design --agent cursor
npx skills add JimLiu/baoyu-design --agent codex
Installs to:
.claude/skills/ for Claude Code
.agents/skills/ for Cursor/Codex
- Add
-g for user-level install (~/.claude/skills/ or ~/.agents/skills/)
Manual Installation
git clone https://github.com/JimLiu/baoyu-design.git
cp -r baoyu-design/skills/baoyu-design ~/.claude/skills/
cp -r baoyu-design/skills/baoyu-design ~/.agents/skills/
cp -r baoyu-design/skills/baoyu-design ./.claude/skills/
Alternative: Direct URL
Paste the repository URL into your agent chat:
Read https://github.com/JimLiu/baoyu-design and follow its skills/baoyu-design/SKILL.md to design a settings screen for a meditation app.
Skill Structure
skills/baoyu-design/
├── SKILL.md # Entry point — orchestrates the design flow
├── system-prompt.md # Design methodology & craft standards
├── references/
│ ├── claude.md # Tool map for Claude Code
│ ├── cursor.md # Tool map for Cursor
│ └── codex.md # Tool map for Codex Agent
├── built-in-skills/ # 24 specialized design prompts
│ ├── hi-fi-design.md
│ ├── interactive-prototype.md
│ ├── wireframe.md
│ ├── make-deck.md
│ ├── mobile-prototype.md
│ └── ...
└── starter-components/ # Reusable scaffolds
├── device-frames/
├── deck-stage/
├── canvas/
└── animation-engine/
Usage Patterns
Basic Design Request
The skill auto-activates from natural language:
Design 3 hi-fi variations of a settings screen for a meditation app.
In Claude Code, explicitly trigger with:
/baoyu-design design a pricing page
In Codex, mention when skills are available:
$baoyu-design create a dashboard UI
With Design Context (Recommended)
Provide screenshots, design files, or codebase references for better results:
Design a pricing page based on this screenshot [attach image].
Use the brand colors and typography from the image.
Recreate the composer UI from src/components/Composer.jsx,
then make it interactive with working state management.
Make a 10-slide deck from this PRD.md for an engineering all-hands.
Use our brand guidelines from brand-kit.pdf.
Interactive Prototype
Prototype a working onboarding flow with:
- Real state management
- Smooth transitions between steps
- Form validation
- Progress indicator
Mobile Design
Wireframe a few layout ideas for a mobile expense-tracker home screen.
Show iOS and Android variations with native UI patterns.
Slide Deck
Create a pitch deck with 12 slides covering:
1. Problem statement
2. Our solution
3. Market opportunity
4. Product demo
5. Business model
6. Team
7. Roadmap
8. Ask
Use clean, modern aesthetic with data visualizations.
Design System Creation
Build a design system component library for our SaaS dashboard including:
- Button variants (primary, secondary, ghost, danger)
- Form inputs (text, select, checkbox, radio)
- Card layouts
- Navigation patterns
- Color palette and typography scale
Preview Server
Designs are previewed over HTTP. The agent typically starts this automatically:
python3 -m http.server 4311 --directory designs
npx http-server designs -p 4311
Output Structure
All deliverables are saved as self-contained HTML:
designs/
└── <project-name>/
├── index.html # Main deliverable
├── variant-1.html # Design variations
├── variant-2.html
├── variant-3.html
├── prototype.html # Interactive prototype
├── wireframe.html # Wireframe version
└── deck.html # Slide deck
Each HTML file is standalone — no external dependencies, all CSS/JS inline.
Built-in Skills Reference
Core Design
hi-fi-design — High-fidelity UI mockups
interactive-prototype — Working prototypes with state
wireframe — Low-fidelity wireframes
frontend-aesthetic-direction — Visual design exploration
Decks & Presentations
make-deck — Slide presentations
speaker-notes — Add presenter notes
Mobile & Motion
mobile-prototype — iOS/Android app designs
animated-video — Motion graphics and animations
sound-effects — Audio integration
Design Systems
create-design-system — Component libraries
design-components — Individual components (.dc.html)
make-tweakable — Add live editing panel
Export & Handoff
standalone-html — Self-contained export
export-pdf — PDF generation
export-pptx-editable — Editable PowerPoint
export-pptx-screenshots — Screenshot-based PPTX
send-to-figma — Figma integration
send-to-canva — Canva integration
handoff-to-claude-code — Developer handoff
AI Integration
gemini-image-generation — AI-generated images
call-claude-from-prototypes — Embedded AI features
read-pdf — PDF content parsing
Common Workflows
Workflow 1: Brand-Consistent Landing Page
1. "Design a landing page for our SaaS product"
→ Agent asks for brand context
2. Provide: screenshot of existing site, logo, brand-kit.pdf
3. Agent produces 3 variations in designs/landing-page/
4. Preview at http://localhost:4311/landing-page/variant-1.html
5. "Make the hero section taller and add a video background"
→ Agent edits variant-1.html
6. "Export this as standalone HTML for deployment"
→ Agent uses standalone-html skill
Workflow 2: Mobile App Prototype
1. "Prototype an iOS habit-tracking app with working navigation"
2. Agent asks about:
- Target iOS version
- Color scheme
- Key features
3. Respond with feature list and design references
4. Agent produces interactive prototype with:
- iOS device frame
- Tab navigation
- Modal interactions
- State persistence
5. Test in browser, request refinements by pointing at elements
Workflow 3: Pitch Deck Creation
1. "Create a 15-slide investor pitch deck from this outline.md"
2. Agent reads outline, asks for:
- Company logo
- Brand colors
- Data for charts
3. Provide assets and data
4. Agent generates deck.html with:
- Slide navigation
- Presenter mode
- Speaker notes
5. "Export as editable PPTX"
→ Uses export-pptx-editable skill
Iteration & Refinement
The key advantage of local execution is visual iteration:
# Point at elements in browser preview
"Make that button larger"
"Change the header background to gradient"
"Add more padding around the cards"
"Use a darker shade of blue"
"Align those icons vertically"
# Agent uses browser DevTools or element annotation to identify
# the exact element, then edits the HTML source
This creates a tight feedback loop — you don't describe element locations, you point at them.
Configuration
Model Selection
For best results, configure your agent to use Claude Opus 4.8:
Claude Code:
{
"model": "claude-opus-4.8"
}
Cursor:
Environment Variable:
export ANTHROPIC_MODEL="claude-opus-4.8"
Custom Component Library
Add your own starter components:
mkdir -p skills/baoyu-design/starter-components/custom/
cat > skills/baoyu-design/starter-components/custom/my-nav.html << 'EOF'
<!-- Your custom navigation component -->
<nav class="custom-nav">
<!-- ... -->
</nav>
EOF
Reference in prompts:
Use the custom navigation from starter-components/custom/my-nav.html
Brand Context Files
Store brand assets for reuse:
mkdir -p designs/_brand/
cp logo.svg designs/_brand/
cp brand-colors.json designs/_brand/
cp typography.css designs/_brand/
Reference in prompts:
Use brand assets from designs/_brand/
Code Examples
Example 1: Interactive Dashboard (Generated Output)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Analytics Dashboard</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
background: #f5f5f7;
padding: 2rem;
}
.dashboard {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 1.5rem;
max-width: 1400px;
margin: 0 auto;
}
.card {
background: white;
border-radius: 12px;
padding: 1.5rem;
box-shadow: 0 2px 8px rgba(0,0,0,0.08);
transition: transform 0.2s, box-shadow 0.2s;
}
.card:hover {
transform: translateY(-2px);
box-shadow: 0 4px 16px rgba(0,0,0,0.12);
}
.metric { font-size: 2rem; font-weight: 600; color: #1d1d1f; }
.label { color: #86868b; font-size: 0.875rem; margin-top: 0.5rem; }
.chart { height: 200px; margin-top: 1rem; }
</style>
</head>
<body>
<div class="dashboard">
<div class="card">
<div class="metric">$47,329</div>
<div class="label">Revenue (MTD)</div>
<canvas class="chart" id="revenueChart"></canvas>
</div>
<div class="card">
<div class="metric">1,234</div>
<div class="label">Active Users</div>
<canvas class="chart" id="usersChart"></canvas>
</div>
<div class="card">
<div class="metric">94.2%</div>
<div class="label">Uptime</div>
<canvas class="chart" id="uptimeChart"></canvas>
</div>
</div>
<script>
function drawLineChart(canvasId, data) {
const canvas = document.getElementById(canvasId);
const ctx = canvas.getContext('2d');
const width = canvas.width = canvas.offsetWidth * 2;
const height = canvas.height = canvas.offsetHeight * 2;
ctx.scale(2, 2);
ctx.strokeStyle = '#007AFF';
ctx.lineWidth = 2;
ctx.beginPath();
data.forEach((value, i) => {
const x = (i / (data.length - 1)) * (width / 2);
const y = (height / 2) - (value * height / 2);
i === 0 ? ctx.moveTo(x, y) : ctx.lineTo(x, y);
});
ctx.stroke();
}
drawLineChart('revenueChart', [0.3, 0.5, 0.4, 0.7, 0.6, 0.8, 0.75]);
drawLineChart('usersChart', [0.4, 0.45, 0.5, 0.48, 0.6, 0.65, 0.7]);
drawLineChart('uptimeChart', [0.9, 0.92, 0.95, 0.94, 0.96, 0.95, 0.97]);
</script>
</body>
</html>
Example 2: Mobile Prototype with iOS Frame
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Meditation App — Prototype</title>
<style>
body {
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
background: #1a1a1a;
margin: 0;
}
.device-frame {
width: 390px;
height: 844px;
background: #000;
border-radius: 55px;
padding: 12px;
box-shadow: 0 20px 60px rgba(0,0,0,0.5);
position: relative;
}
.device-frame::before {
content: '';
position: absolute;
top: 0;
left: 50%;
transform: translateX(-50%);
width: 150px;
height: 30px;
background: #000;
border-radius: 0 0 20px 20px;
z-index: 10;
}
.screen {
width: 100%;
height: 100%;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
border-radius: 47px;
overflow: hidden;
position: relative;
}
.app-content {
padding: 60px 24px 24px;
color: white;
height: 100%;
overflow-y: auto;
}
.greeting { font-size: 2rem; font-weight: 300; margin-bottom: 2rem; }
.session-card {
background: rgba(255,255,255,0.15);
backdrop-filter: blur(10px);
border-radius: 20px;
padding: 1.5rem;
margin-bottom: 1rem;
cursor: pointer;
transition: transform 0.2s;
}
.session-card:active { transform: scale(0.98); }
.tab-bar {
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 80px;
background: rgba(0,0,0,0.3);
backdrop-filter: blur(20px);
display: flex;
justify-content: space-around;
align-items: center;
padding-bottom: 20px;
}
.tab-item {
display: flex;
flex-direction: column;
align-items: center;
gap: 4px;
color: rgba(255,255,255,0.6);
font-size: 0.75rem;
cursor: pointer;
}
.tab-item.active { color: white; }
</style>
</head>
<body>
<div class="device-frame">
<div class="screen">
<div class="app-content">
<div class="greeting">Good evening, Sarah</div>
<div class="session-card">
<div style="font-size: 1.25rem; font-weight: 500;">Sleep Meditation</div>
<div style="opacity: 0.8; margin-top: 0.5rem;">15 min · Relaxation</div>
</div>
<div class="session-card">
<div style="font-size: 1.25rem; font-weight: 500;">Anxiety Relief</div>
<div style="opacity: 0.8; margin-top: 0.5rem;">10 min · Breathing</div>
</div>
<div class="session-card">
<div style="font-size: 1.25rem; font-weight: 500;">Morning Focus</div>
<div style="opacity: 0.8; margin-top: 0.5rem;">8 min · Energy</div>
</div>
</div>
<div class="tab-bar">
<div class="tab-item active">
<svg width="24" height="24" fill="currentColor"><circle cx="12" cy="12" r="8"/></svg>
<span>Home</span>
</div>
<div class="tab-item">
<svg width="24" height="24" fill="currentColor"><path d="M12 2L2 7v10c0 5.5 3.8 10.7 10 12 6.2-1.3 10-6.5 10-12V7l-10-5z"/></svg>
<span>Library</span>
</div>
<div class="tab-item">
<svg width="24" height="24" fill="currentColor"><circle cx="12" cy="8" r="4"/><path d="M12 14c-4.4 0-8 1.8-8 4v2h16v-2c0-2.2-3.6-4-8-4z"/></svg>
<span>Profile</span>
</div>
</div>
</div>
</div>
</body>
</html>
Example 3: Invoking Specific Built-in Skills
When you need a specific output type, reference the built-in skill:
Create a wireframe using the wireframe skill for a checkout flow with:
- Cart review
- Shipping address
- Payment method
- Order confirmation
Keep it low-fidelity, grayscale, with placeholder content.
Use the make-deck skill to create a product roadmap presentation:
- Q1 2024: Core features
- Q2 2024: Mobile apps
- Q3 2024: Enterprise features
- Q4 2024: AI integration
Include speaker notes for each slide.
Apply the mobile-prototype skill to design an Android expense tracker with:
- Bottom navigation
- FAB for adding expenses
- Material Design 3 styling
- Working category filters
Troubleshooting
Skill Not Activating
Problem: Agent doesn't recognize design requests.
Solutions:
ls -la ~/.claude/skills/baoyu-design/
ls -la ~/.agents/skills/baoyu-design/
npx skills add JimLiu/baoyu-design -g --force
/baoyu-design create a dashboard
$baoyu-design design a landing page
Preview Server Not Starting
Problem: localhost:4311 not accessible.
Solutions:
lsof -i :4311
python3 -m http.server 8080 --directory designs
mkdir -p designs
Output Quality Issues
Problem: Generated designs are low-quality or inconsistent.
Solutions:
- Use Claude Opus 4.8 — The skill is optimized for strong models
- Provide design context — Screenshots, brand kits, or references dramatically improve output
- Be specific — "Modern SaaS dashboard with dark mode, Tailwind aesthetic" vs "make a dashboard"
- Iterate visually — Use browser preview to point at specific elements
Missing Starter Components
Problem: Agent can't find device frames or templates.
Solutions:
ls skills/baoyu-design/starter-components/
cd skills/baoyu-design
git pull origin main
npx skills add JimLiu/baoyu-design -g --force
Multi-file Prototypes Not Loading
Problem: Prototype with external assets won't load.
Solution: All assets must be inline or served over HTTP:
python3 -m http.server 4311 --directory designs
Agent Not Using Design Context
Problem: You provided screenshots/files but agent ignores them.
Solutions:
# Explicitly reference context in prompt
"Design a settings page using the colors and typography from screenshot.png"
# Attach files inline if supported
[Attach: brand-kit.pdf, logo.svg]
"Use these brand assets for a landing page design"
# Point to codebase patterns
"Match the component style from src/components/Button.tsx"
Best Practices
- Start with context — Provide screenshots, brand guidelines, or existing code before requesting designs
- Use Claude Opus 4.8 — Quality scales dramatically with model capability
- Iterate visually — Point at browser preview elements instead of describing locations
- Export when final — Use
standalone-html or export-pdf skills for production-ready outputs
- Version control designs — Commit
designs/ directory to track design iterations
- Organize by project — Use descriptive folder names:
designs/landing-page/, designs/mobile-app/
- Leverage built-in skills — Reference specific skills (
make-deck, mobile-prototype) for consistent output types
Environment Variables
No API keys required — the skill runs within your agent's existing authentication context.
Optional configuration:
export ANTHROPIC_MODEL="claude-opus-4.8"
export BAOYU_PREVIEW_PORT="4311"
export BAOYU_DESIGNS_DIR="./designs"
Integration with Development Workflow
Version Control
git add designs/
git commit -m "Add dashboard design variations"
echo "designs/" >> .gitignore
Export for Production
# Generate production-ready HTML
"Export the final dashboard design as standalone HTML with minified CSS/JS"
# The agent will:
# 1. Inline all assets
# 2. Minify CSS and JavaScript
# 3. Remove comments and debug code
# 4. Output to designs/<project>/production.html
Handoff to Developers
# Use handoff skill
"Use handoff-to-claude-code skill to prepare this prototype for development"
# Generates:
# - Annotated HTML with component boundaries
# - CSS variables for theming
# - JavaScript state structure
# - Implementation notes
Resources
The skill auto-activates when you describe design tasks. Just ask for what you need — the agent handles the rest.