[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-83246":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":15,"stars30d":15,"stars90d":14,"forks30d":14,"starsTrendScore":14,"compositeScore":16,"rankGlobal":9,"rankLanguage":9,"license":17,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":20,"hasPages":18,"topics":21,"createdAt":9,"pushedAt":9,"updatedAt":22,"readmeContent":23,"aiSummary":9,"trendingCount":14,"starSnapshotCount":14,"syncStatus":13,"lastSyncTime":24,"discoverSource":25},83246,"virtual-crowd","CoheeYang\u002Fvirtual-crowd","CoheeYang","An Agentic based User-testing pluging for claude code and other AI tools, which helps developer get feedbacks from virtual user to quickly improve their products",null,"TypeScript",102,5,2,0,40,2.33,"MIT License",false,"main",true,[],"2026-06-12 02:04:32","# Virtual Crowd\n\n> **AI-powered virtual user testing for Claude Code.**\n> Generate diverse personas, have them explore your app with a real headless browser, and get structured user feedback — ratings, blockers, confusions, screenshots, and actionable suggestions, just like real users. \n\n**No external test platforms. No recruiter fees. No scheduling.**\n\n**Comprehensive customer feedback, Any testing objective, Instant user insights**\n\n\n[中文文档](README.zh-CN.md)\n\n---\n\n## ⚡ Powered by Claude Code Workflows\n\nVirtual Crowd is built on **Claude Code's Workflow engine** — a brand-new orchestration feature introduced in **Claude Code 2.1.154** (May 28, 2026) that can coordinate tens to hundreds of AI agents in parallel. This project is one of the **first real-world applications** of this cutting-edge capability.\n\n### What makes Workflows special\n\n| Capability | Description |\n|-----------|-------------|\n| **Multi-agent orchestration** | Spawn N independent AI agents, each with its own persona, goals, and browser context — all running in parallel |\n| **Structured output** | Define JSON schemas (`FEEDBACK_SCHEMA`) that agents must return — no parsing, no guessing |\n| **Phase management** | `phase('Setup')` → `phase('Generate Personas')` → `phase('Browser Exploration')` → `phase('Report')` — clean, observable pipeline |\n| **Pipeline + Parallel** | `pipeline()` for sequential stages, `parallel()` for fan-out — agents explore independently, report synchronizes |\n| **Progress tracking** | Live agent counts and phase progress in Claude Code's status bar via `\u002Fworkflows` |\n\nThis is not a script wrapper or a prompt template. Workflows are a **first-class Claude Code primitive** — Virtual Crowd leverages `agent()`, `parallel()`, `pipeline()`, `phase()`, and `schema` to deliver structured, reproducible user testing at scale.\n\n### Requirements\n\n| Requirement | Version | Why |\n|-------------|---------|-----|\n| **Claude Code** | ≥ 2.1.154 (May 28, 2026) | Workflow engine with `agent()`, `parallel()`, `phase()`, `schema` |\n| **Bun** | ≥ 1.0 | Compiles `vcrowd-browse` headless browser binary |\n\nCheck your version: `claude --version`\n\n---\n\n## 🆚 Virtual Crowd vs Traditional User Testing Platforms\n\n| | **Virtual Crowd** | Traditional Platforms |\n|---|---|---|\n| | | (UserTesting, Maze, Hotjar, etc.) |\n| **Cost** | Free (uses your Claude Code session) | $20–$200+ per test |\n| **Time to results** | Minutes | Hours to days |\n| **Setup** | One command install | Create project, write screener, recruit |\n| **Test participants** | Unlimited AI personas | 5–50 paid humans |\n| **Persona diversity** | Instantly generated | Limited by recruitment pool |\n| **Browser interaction** | Real headless Chromium + Playwright | Real browsers (manual) |\n| **Screenshots** | Auto-captured per persona | Manual or paid add-on |\n| **Custom scenarios** | Free-text task description | Scripted flows only |\n| **Iteration speed** | Run → read → fix → re-run in one session | Days per iteration |\n| **CI\u002FCD integration** | CLI-based, scriptable | Limited API access |\n| **Page-level tracking** | Automatic (pages visited, navigation paths) | Requires analytics setup |\n| **Output format** | Structured JSON, immediately actionable | Video recordings + manual tagging |\n\n### Why Developers Choose Virtual Crowd\n\n**🚀 Ship Faster**\n> \"I ran 3 rounds of testing and fixed UX issues in the same afternoon — traditional platforms would still be recruiting.\"\n\n**💰 Zero Marginal Cost**\n> No per-test fees. Run 4 agents or 40 — the cost is your Claude Code session.\n\n**🔄 Tight Feedback Loop**\n> Change code → re-run test → see updated feedback. All in your terminal.\n\n**🎯 Persona Precision**\n> Need a \"non-technical small business owner\" persona? Just ask. No screener surveys needed.\n\n---\n\n## ⚡ Quick Start\n\n> **Requires Claude Code ≥ 2.1.154** (May 28, 2026) for Workflow support. Check with `claude --version`.\n\n```bash\ngit clone --single-branch --depth 1 https:\u002F\u002Fgithub.com\u002FCoheeYang\u002Fvirtual-crowd.git ~\u002F.claude\u002Fskills\u002Fvirtual-crowd\ncd ~\u002F.claude\u002Fskills\u002Fvirtual-crowd && .\u002Fsetup\n```\n\nThen in Claude Code:\n\n```\n\u002Fcrowd-test-browser url=https:\u002F\u002Fyour-app.com\n```\n\nThat's it. You'll get a structured report from 4 AI personas in minutes.\n\n### Prerequisites\n\n- **Claude Code ≥ 2.1.154** — [install or update](https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code\u002Foverview) (Workflow engine required)\n- **[Bun](https:\u002F\u002Fbun.sh)** ≥ 1.0 (required — compiles the `vcrowd-browse` headless browser binary)\n\n---\n\n## 🧪 How It Works\n\n```\n┌─ Claude Code ──────────────────────────────────────┐\n│  \u002Fcrowd-test-browser url=https:\u002F\u002Fmyapp.com          │\n│         │                                            │\n│         ▼                                            │\n│  ┌─ Workflow Orchestrator ──────────────────────┐    │\n│  │  Phase 1: Generate 4 diverse personas        │    │\n│  │  Phase 2: Launch browser daemon              │    │\n│  │  Phase 3: Parallel exploration               │    │\n│  │  ┌──────────┐ ┌──────────┐ ┌──────────┐     │    │\n│  │  │ Persona 1│ │ Persona 2│ │ Persona 3│ ... │    │\n│  │  │ \"Sarah\"  │ │ \"Marcus\" │ │ \"Yuki\"   │     │    │\n│  │  │ PM       │ │ Engineer │ │ Designer │     │    │\n│  │  └────┬─────┘ └────┬─────┘ └────┬─────┘     │    │\n│  │       │            │            │             │    │\n│  │       ▼            ▼            ▼             │    │\n│  │  ┌──────────────────────────────────────┐     │    │\n│  │  │  vcrowd-browse (headless Chromium)   │     │    │\n│  │  │  ┌────────┐ ┌────────┐ ┌────────┐   │     │    │\n│  │  │  │Context 1│ │Context 2│ │Context 3│   │     │    │\n│  │  │  │(cookies)│ │(cookies)│ │(cookies)│   │     │    │\n│  │  │  │ Page A  │ │ Page B  │ │ Page C  │   │     │    │\n│  │  │  └────────┘ └────────┘ └────────┘   │     │    │\n│  │  └──────────────────────────────────────┘     │    │\n│  │  Phase 4: Compile structured report          │    │\n│  └───────────────────────────────────────────────┘    │\n└──────────────────────────────────────────────────────┘\n```\n\n1. **Generate Personas** — Creates unique user profiles with distinct goals, pain points, and tech comfort levels\n2. **Explore** — Each persona independently navigates the target site using a real headless browser\n3. **Interact** — Click links, fill forms, scroll, navigate between pages\n4. **Capture** — Screenshots, page tracking, navigation paths per persona\n5. **Report** — Aggregated insights with ratings, blockers, confusions, and suggestions\n\nEach persona gets an **isolated browser context** — independent cookies, localStorage, and session — simulating real multi-user testing.\n\n---\n\n## 📋 Parameters\n\n| Parameter | Type | Default | Description |\n|-----------|------|---------|-------------|\n| `url` | string | `http:\u002F\u002Flocalhost:3000` | Target URL to test |\n| `agentCount` | number | `4` | Number of virtual testers |\n| `personas` | string[] | auto-generated | Custom persona roles |\n| `task` | string | (default) | Task description for testers |\n| `enableScreenshots` | boolean | `true` | Capture screenshots |\n\n### Examples\n\n**Basic test:**\n```\n\u002Fcrowd-test-browser url=https:\u002F\u002Fmyapp.com\n```\n\n**Custom personas:**\n```\n\u002Fcrowd-test-browser url=https:\u002F\u002Fmyapp.com personas='[\"Doctor\", \"Nurse\", \"Patient\"]'\n```\n\n**Focused task:**\n```\n\u002Fcrowd-test-browser url=https:\u002F\u002Fmyapp.com task='Test the signup flow. Can you create an account in under 2 minutes?'\n```\n\n**Pre-launch check with more agents:**\n```\n\u002Fcrowd-test-browser url=https:\u002F\u002Fstaging.myapp.com agentCount=6 task='Evaluate the new dashboard feature'\n```\n\n---\n\n## 📊 Output\n\nThe workflow returns a structured JSON report:\n\n```json\n{\n  \"url\": \"https:\u002F\u002Fmyapp.com\",\n  \"agentCount\": 4,\n  \"insights\": [\n    {\n      \"agentName\": \"Sarah Chen\",\n      \"persona\": \"Product Manager\",\n      \"rating\": 7,\n      \"completedTasks\": [\"Navigated to homepage\", \"Found pricing page\"],\n      \"blockers\": [\"Signup form requires phone number\"],\n      \"confusions\": [\"Pricing shows credits but no dollar amount\"],\n      \"suggestions\": [\"Add pricing calculator\", \"Show example reports\"],\n      \"wouldRecommend\": true,\n      \"keyLearnings\": [\"Solid concept\", \"Needs clearer onboarding\"],\n      \"pagesVisited\": [\"homepage\", \"pricing\", \"docs\"],\n      \"screenshotPaths\": [\"\u002Ftmp\u002Fvcrowd-persona-0.png\"]\n    }\n  ],\n  \"summary\": {\n    \"avgRating\": 7.2,\n    \"wouldRecommendCount\": 3,\n    \"totalAgents\": 4,\n    \"commonBlockers\": [\"signup friction\"],\n    \"commonConfusions\": [\"pricing unclear\"],\n    \"topSuggestions\": [\"fix broken links\", \"add pricing calculator\"],\n    \"mostVisitedPages\": [\n      { \"page\": \"homepage\", \"count\": 4 },\n      { \"page\": \"pricing\", \"count\": 3 }\n    ]\n  }\n}\n```\n\n---\n\n## 🌐 Built-in Browser CLI\n\nVirtual Crowd includes `vcrowd-browse`, a headless browser daemon built on Bun + Playwright. Each persona gets an isolated `BrowserContext` — independent cookies, storage, and session.\n\n### Architecture\n\n```\nSubagent (persona-3)\n  │  Bash: vcrowd-browse --context persona-3 goto https:\u002F\u002Fexample.com\n  ▼\nCLI (thin client)\n  ├─ Read state file → port + token\n  ├─ Daemon not running → auto-start\n  ├─ HTTP POST {command, args, context}\n  ▼\nDaemon (Bun HTTP server)\n  ├─ Bearer token auth\n  ├─ 1 Chromium process (Playwright)\n  ├─ Map\u003Cstring, PersonaContext> persona isolation\n  ├─ 30-min idle auto-shutdown\n  ▼\nChromium (headless)\n  └─ BrowserContext per persona\n       ├─ Independent cookies \u002F storage\n       ├─ 1 Page per context (no multi-tab)\n       └─ Independent @ref map\n```\n\n### Commands\n\n| Command | Description |\n|---------|-------------|\n| `goto \u003Curl>` | Navigate to URL |\n| `snapshot` | Page structure with @ref labels |\n| `click @e3` | Click element by ref |\n| `fill @e4 \"text\"` | Fill form field |\n| `press Enter` | Press a key |\n| `scroll down 500` | Scroll the page |\n| `text` | Page text content |\n| `links` | List all links |\n| `screenshot \u003Cpath>` | Save screenshot |\n| `back` | Go back |\n| `status` | Daemon status |\n| `stop` | Stop daemon |\n\n---\n\n## 🔧 Use Cases\n\n### Pre-launch UX Audit\nRun 6+ personas through your entire flow before going live. Catch navigation dead-ends, unclear CTAs, and confusing copy.\n\n### Feature Validation\nJust shipped a new feature? Get immediate feedback from diverse user perspectives without waiting for real users.\n\n### Competitive Analysis\nTest your competitor's site with the same personas and compare ratings side-by-side.\n\n### Landing Page Optimization\nIterate on copy, layout, and CTAs with rapid test cycles. Each run takes minutes, not days.\n\n### Accessibility Heuristics\nCreate personas with different ability levels to surface UX barriers.\n\n---\n\n## 🏗️ Project Structure\n\n```\nvirtual-crowd\u002F\n├── setup                              # Installation script\n├── install.sh                         # curl|bash one-liner\n├── skills\u002F\n│   └── crowd-test-browser\u002FSKILL.md    # Slash command definition\n├── workflows\u002F\n│   └── virtual-crowd-test-browser.js  # Multi-agent workflow\n├── browse\u002F\n│   ├── src\u002F\n│   │   ├── cli.ts                     # CLI entry point\n│   │   ├── server.ts                  # HTTP daemon\n│   │   ├── browser.ts                 # Playwright wrapper\n│   │   ├── commands.ts                # 16 command handlers\n│   │   ├── snapshot.ts                # ARIA tree + @ref system\n│   │   ├── config.ts                  # State file management\n│   │   └── utils.ts                   # Shared utilities\n│   └── package.json                   # Bun build config\n└── examples\u002F                          # Usage examples\n```\n\n---\n\n## 🗑️ Uninstall\n\n```bash\n# Global\nrm -rf ~\u002F.claude\u002Fskills\u002Fcrowd-test-browser ~\u002F.claude\u002Fskills\u002Fvirtual-crowd\nrm ~\u002F.claude\u002Fworkflows\u002Fvirtual-crowd-test-browser.js\n\n# Project-level\nrm -rf .claude\u002Fskills\u002Fcrowd-test-browser\nrm .claude\u002Fworkflows\u002Fvirtual-crowd-test-browser.js\n```\n\n---\n\n## 📄 License\n\nMIT\n","2026-06-11 04:10:31","CREATED_QUERY"]