マルチモーダルAIビジュアルテストプラグイン。Claude 4.5 Sonnetのビジョン機能でスクリーンショット分析。アクセシビリティ(WCAG 2.1)、パフォーマンス、レスポンシブデザインを含む10カテゴリのテスト。
The world's first fully autonomous, multi-agent, closed-loop frontend development system with visual feedback, testing constitutions, and visual memory
Build UIs like a team of expert developers - with vision, coordination, memory, and iterative refinement until perfect.
Features • Demo • Installation • Constitutions • Visual Memory • Examples
Traditional AI code assistants are blind to frontend issues:
❌ Can't see if buttons are misaligned ❌ Can't verify colors match design specs ❌ Can't detect visual regressions ❌ Can't test user interactions visually ❌ No feedback loop for UI/UX improvements
Result: Endless back-and-forth, broken UIs, frustrated developers.
Claude Code Frontend Dev gives AI vision and interactivity for frontend development:
Write Code → Test Visually → AI Sees Results → Auto-Fix → Repeat Until Perfect
Like a human developer who:
But 10x faster and never gets tired.
10 Comprehensive Test Categories:
Functional Testing
Accessibility Testing (WCAG 2.1 AA/AAA)
Performance Testing (Core Web Vitals)
Responsive Design Testing
Security Testing
Expert SEO Optimization ⭐ NEW
Visual & UX Testing
Cross-Browser Compatibility
Code Quality
Production Readiness
Testing Constitutions ⭐ NEW
Visual Memory (MemVid MCP) ⭐ NEW
Authentication Testing ⭐ NEW
Industry-Standard Quality Scoring:
Evidence-Based Decisions:
.jsx, .tsx, .vue, .svelte, .css)Works with any frontend framework:
|
Step 1: Initial Load
✅ AI verifies: Counter starts at 0 |
Step 2: After 6 Clicks
✅ AI verifies: Counter incremented to 6 |
Step 3: Form Submitted
✅ AI verifies: Success message displays |
# 1. Clone into Claude Code plugins directory
cd ~/.claude/plugins
git clone https://github.com/hemangjoshi37a/claude-code-frontend-dev.git frontend-dev
# 2. Install dependencies
cd frontend-dev
npm install
# 3. Restart Claude Code
# Plugin will auto-load on next launch!
Type /frontend-dev in Claude Code - you should see one smart command:
/frontend-dev - Intelligent frontend development with automatic visual testingThis ONE command smartly handles everything:
┌─────────────────────────────┐
│ USER COMMAND /frontend-dev │
│ "add a dark mode toggle" │
└──────────────┬──────────────────┘
│
▼
┌──────────────────────────────────────────────────────────┐
│ CLOSED-LOOP COORDINATOR (Master Orchestrator) │
│ • Parses intent & plans comprehensively (10-20 steps) │
│ • Reads necessary code for context │
│ • Coordinates 5 specialized agents │
│ • Implements code changes │
│ • Manages closed-loop feedback until perfect │
└───┬────────┬────────┬────────┬────────────────────────────┘
│ │ │ │
│ Parallel Execution │
▼ ▼ │ │
┌───────┐ ┌───────┐ │ │
│ UX │ │ SEO │ │ │
│Design │ │Spec │ │ │
└───┬───┘ └───┬───┘ │ │
│ │ │ │
└────┬────┘ │ │
│ │ │
▼ ▼ ▼
[Implement] [Dev Server] [Test]
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────┐
│ 1️⃣ DEV SERVER MANAGER AGENT │
│ • Auto-detects framework │
│ • Starts dev server │
│ • Returns URL: http://localhost:* │
└─────────────┬───────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ 2️⃣ FRONTEND TESTER AGENT │
│ • Browser automation (Playwright) │
│ • Captures screenshots (CRITICAL) │
│ • Monitors console (errors/logs) │
│ • Tests all interactions │
│ • Tests all viewports │
└─────────────┬───────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ Visual Evidence + Console Logs │
│ 📸 Screenshots at every step │
│ 📊 Console output (errors/warnings) │
│ ⚡ Performance metrics │
└─────────────┬───────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ 3️⃣ FRONTEND VALIDATOR AGENT │
│ • Analyzes screenshots (AI vision) │
│ • Validates vs requirements │
│ • Checks console for errors │
│ • Decision: PASS ✅ or FAIL ❌ │
│ • Provides specific fixes │
└─────────────┬───────────────────────┘
│
┌───────┴────────┐
│ │
▼ ▼
PASS ✅ FAIL ❌
│ │
│ ▼
│ ┌──────────────────────┐
│ │ Coordinator Applies │
│ │ Fixes Automatically │
│ └──────────┬───────────┘
│ │
│ ▼
│ [Re-test Loop]
│ (Up to 5 iterations)
│ │
│←───────────────┘
│
▼
┌─────────────────────────────────────┐
│ COMPLETION REPORT │
│ ✅ Feature implemented & validated │
│ 📸 Visual evidence (screenshots) │
│ 📝 Code changes summary │
│ 🚀 Production-ready │
└──────────────────────────────────────┘
Closed-Loop Coordinator (NEW! Master Orchestrator)
UX Design Specialist (Expert)
Frontend Tester (Critical for Closed-Loop)
Frontend Validator (Quality Gate)
SEO Specialist (Expert)
Dev Server Manager (Infrastructure)
Project Config Manager ⭐ NEW (Configuration)
.frontend-dev/ directoryAuth Tester ⭐ NEW (Authentication)
You write:
<button style={{marginLeft: 100}}>Click Me</button>
AI workflow:
<button style={{margin: '0 auto', display: 'block'}}>Click Me</button>
Requirement: "Show green success message after form submit"
AI workflow:
You ask: "Optimize my landing page for SEO"
AI workflow:
🔍 Runs comprehensive SEO audit
📊 Generates SEO score: 85/100
🎯 Identifies issues:
🔧 Provides specific fixes:
<!-- Add Article Schema for Rich Snippets -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Your Article Title",
"image": ["https://example.com/image.jpg"],
"author": {"@type": "Person", "name": "Author"},
"publisher": {"@type": "Organization", "name": "Company"},
"datePublished": "2025-11-11"
}
</script>
<!-- Optimize Meta Description -->
<meta name="description" content="Extended description with keywords and CTA that is 150-160 characters long for optimal SERP display">
<!-- Convert hero image to WebP for LCP -->
<picture>
<source type="image/webp" srcset="hero.webp">
<img src="hero.jpg" alt="Descriptive keyword-rich alt text" loading="lazy">
</picture>
📈 Expected results:
✅ Reports: SEO optimizations complete, ready for search engines
You accidentally change:
.heading { color: blue; } → .heading { color: white; }
On purple background:
color: #FFFFFF with darker background, or switch to high-contrast colorTesting constitutions are JSON configuration files that define what and how to test for each page in your project.
When you run /frontend-dev, it creates a .frontend-dev/ directory in your project:
your-project/
├── .frontend-dev/ # Created automatically
│ ├── config.json # Project settings
│ ├── auth/
│ │ └── login-constitution.json # Login page testing config
│ ├── testing/
│ │ ├── homepage.json # Homepage testing constitution
│ │ ├── dashboard.json # Dashboard testing constitution
│ │ └── settings.json # Settings page constitution
│ ├── memory/ # MemVid visual memory
│ │ ├── sessions/
│ │ ├── screenshots/
│ │ └── timeline.json
│ └── reports/ # Historical test reports
{
"pageName": "Dashboard",
"pageUrl": "/dashboard",
"features": {
"primary": [
{
"name": "Revenue Chart",
"selector": "#revenue-chart",
"testType": "visual",
"acceptanceCriteria": [
"Chart renders with data",
"Tooltips show on hover",
"Legend is visible"
]
}
]
},
"interactiveElements": {
"buttons": [
{
"name": "Export Data",
"selector": "[data-testid='export-btn']",
"expectedBehavior": "Opens export modal"
}
],
"forms": [
{
"name": "Date Range Filter",
"selector": "#date-filter-form",
"fields": [...]
}
]
},
"visualElements": {
"graphs": [
{
"name": "Revenue Chart",
"selector": "#revenue-chart",
"type": "line",
"testCases": ["renders_correctly", "handles_empty_data"]
}
]
},
"accessibility": {
"wcagLevel": "AA",
"requirements": [
"All charts have aria-labels",
"Keyboard navigation works"
]
}
}
{
"loginPage": {
"url": "/login"
},
"authMethod": {
"type": "form"
},
"credentials": {
"storage": "environment",
"envVars": {
"username": "TEST_USER",
"password": "TEST_PASS"
}
},
"loginForm": {
"selectors": {
"usernameField": "#email",
"passwordField": "#password",
"submitButton": "#login-btn"
}
},
"successIndicators": {
"redirectUrl": "/dashboard",
"elements": [".user-menu", ".logout-btn"]
},
"testScenarios": {
"required": [
{"name": "valid_login", "priority": "critical"},
{"name": "invalid_password", "priority": "high"},
{"name": "empty_fields", "priority": "high"}
]
},
"security": {
"tests": ["csrf_protection", "rate_limiting", "xss_prevention"]
}
}
Visual memory allows the testing system to remember previous test runs and compare results over time.
Test Run 1 → Screenshots Stored → Timeline Updated
↓
Test Run 2 → Compare with Previous → Detect Regressions
↓
Test Run 3 → Learn from History → Smarter Testing
1. Screenshot Storage
2. Chronological Timeline
{
"events": [
{
"timestamp": "2025-01-18T10:30:00Z",
"type": "test_start",
"page": "dashboard",
"sessionId": "abc123"
},
{
"timestamp": "2025-01-18T10:30:15Z",
"type": "screenshot",
"page": "dashboard",
"viewport": "desktop",
"path": "screenshots/dashboard-desktop-001.png"
},
{
"timestamp": "2025-01-18T10:30:30Z",
"type": "test_pass",
"page": "dashboard",
"score": 98
}
]
}
3. Visual Regression Detection
4. Cross-Session Learning
The system uses memvid-mcp-server for visual memory:
{
"mcpServers": {
"memvid": {
"command": "npx",
"args": ["-y", "memvid-mcp-server@latest"],
"env": {
"MEMVID_LOCAL_STORAGE": "1"
}
}
}
}
Available Tools:
create_or_open_memory - Initialize/access project memory (.mv2 file)add_content - Store test results, screenshots metadata, timeline eventssearch_memory - Hybrid search (query="*" lists all items)ask_memory - Natural language queries (requires OpenAI API key)Tested on real-world projects:
| Task | Manual Testing | With This Plugin | Speedup |
|---|---|---|---|
| Form validation | 5 mins | 30 secs | 10x ⚡ |
| Visual regression | 15 mins | 1 min | 15x ⚡ |
| Responsive design | 20 mins | 2 mins | 10x ⚡ |
| Bug reproduction | 10 mins | 45 secs | 13x ⚡ |
Average productivity gain: 12x faster
Create .claude-plugin/visual-tests.json for custom test scenarios:
{
"tests": [
{
"name": "Dark Mode Toggle",
"steps": [
{"action": "click", "selector": "#theme-toggle"},
{"action": "screenshot", "name": "dark-mode"},
{"validate": "Background should be dark (#1F2937)"}
]
}
]
}
Auto-detection works great, but you can override:
{
"devServer": {
"command": "npm run dev",
"port": 3000,
"framework": "vite"
}
}
Contributions welcome! This is open source and community-driven.
Want to contribute? Check our Contributing Guide!
MIT License - Free for personal and commercial use.
See LICENSE for details.
Built with ❤️ by Hemang Joshi @ hjLabs.in
Powered by:
If this plugin saves you time, give us a star ⭐ on GitHub!
It helps others discover this tool and motivates us to keep improving it.
Made with 🤖 + 👁️ by AI that can actually SEE your code
トピック