ghost-qa
ภาพรวม
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Autonomous headless browser QA & self-healing verification loop for AI coding agents.
สามเสาของ PopNx MCP
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
- เสียงผู้ใช้iยังไม่มีรีวิวรีวิวเปิดพร้อมระบบบัญชีในขั้นถัดไป
- ผลตรวจเบื้องต้นของเราiผ่าน 3 จาก 3 ข้อตรวจจากข้อมูลที่เปิดอยู่ ยังไม่ได้สแกนโค้ด
- การใช้งานiเริ่มต้น↓ 924/สัปดาห์ · ★ 13
ใช้ทำอะไรได้
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
- การเชื่อมต่อ: รันบนเครื่อง
- ช่องทาง (transport): stdio
- หมวด: เครื่องมือนักพัฒนา
ติดตั้ง
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ก่อนติดตั้ง
- ผลตรวจเบื้องต้น: ผ่าน 3 จาก 3 ข้อ
- รันในเครื่องคุณด้วยสิทธิ์ของผู้ใช้คุณ (ไฟล์ อินเทอร์เน็ต แอปต่าง ๆ)
- ทะเบียนไม่ได้ระบุ key ที่ต้องใส่
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"ghost-qa": {
"command": "npx",
"args": [
"-y",
"ghost-qa",
"mcp"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add ghost-qa -- npx -y ghost-qa mcpหรือคัดลอกค่าตั้งเอง
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"ghost-qa": {
"command": "npx",
"args": [
"-y",
"ghost-qa",
"mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
หรือคัดลอกค่าตั้งเอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"ghost-qa": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"ghost-qa",
"mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
ใช้กับโปรแกรมไหนได้
ดูจากแบบการต่อของ server ตัวนี้ และเอกสารของผู้ทำโปรแกรมแต่ละตัว ตรวจเมื่อ 10 พ.ย. 2569
ติดตั้งบนเครื่องได้ใน
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
คู่มือที่เกี่ยวข้อง
ทำอะไรได้บ้าง
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
ผลตรวจเบื้องต้นi
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 11 พ.ย. 2569
- ✓ ผ่าน
ตัวตนผู้ทำตรงกับ repo
ชื่อใน registry ยืนยันด้วยบัญชี GitHub avivgerz-hue ซึ่งเป็นเจ้าของ repo
- ✓ ผ่าน
ยังมีคนดูแล
มีการแก้โค้ดล่าสุด วันนี้
- ✓ ผ่าน
มีสัญญาอนุญาต (license)
ใช้ MIT
- – ไม่เกี่ยว
endpoint ตอบ
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
- – ไม่เกี่ยว
ล็อกอินแบบ OAuth
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
- … ยังไม่ตรวจ
คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับตัวอื่นในหมวด เครื่องมือนักพัฒนาi
- ดาวมากกว่า 90% ของอีก 5739 ตัวในหมวดนี้
- ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 99% ของอีก 5739 ตัวในหมวดนี้
- ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 5739 ตัวในหมวดนี้
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
คำถามที่พบบ่อย
ghost-qa ปลอดภัยไหม?
จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใช้กุญแจหรือรหัสอะไรบ้าง?
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
ตัวนี้รันบนเครื่องหรือบนคลาวด์?
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
ยังมีคนดูแลอยู่ไหม?
repo บน GitHub มีการแก้โค้ดล่าสุด วันนี้ และส่งรุ่นล่าสุด (2.1.1) เข้า registry วันนี้
ใช้กับโปรแกรมไหนได้บ้าง?
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
มีตัวไหนใช้แทนได้บ้าง?
ในหมวดเดียวกันมี REA, Netdata, Front-End Checklist
ตัวที่ใช้แทนได้
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Netdata
Real-time infrastructure monitoring with metrics, logs, alerts, and ML-based anomaly detection.
Front-End Checklist
Review frontend code and live pages against 386 quality-gated web development rules.
README จากผู้ทำ
เปิดอ่าน README
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
👻 ghost-qa
Autonomous headless browser QA & self-healing verification loop for coding agents. v2.1.1 — the 8-Trap Deep Browser Inspection Engine: 3 viewports × light/dark, QA Health Score (A+…F), interactive HTML dashboard, and regression diffing.
⭐ If this tool helps your AI coding workflow, please give this repository a Star! It helps more developers discover the project.
🧰 The VibeFoundry Agent Suite
*One command each — star all three and keep the whole suite free & maintained:*
- 🎨 [unslop](https://github.com/avivgerz-hue/unslop) — UI Design DNA & Anti-Slop Engine (
npx -y unslop-mcp@latest init) - 🛡️ [vibe-shield](https://github.com/avivgerz-hue/vibe-shield) — Security Scanner for AI Code (
npx -y @vibefoundry/vibe-shield@latest scan .) - 👻 [ghost-qa](https://github.com/avivgerz-hue/ghost-qa) — Autonomous Headless Browser QA (
npx -y ghost-qa@latest test http://localhost:3000)
npx -y ghost-qa@latest test http://localhost:3000
Coding agents (Claude Code, Codex, Cursor, Windsurf) write code blind — then declare victory while the actual browser has React hydration errors, broken buttons, 500ing APIs, or mobile layout overflow.
ghost-qa fixes that. One command launches a headless browser against your running app, crawls the live DOM, safely pokes every button, traps runtime/network/layout failures, and hands the agent a structured Self-Healing Bug Report so it fixes its own bugs *before* telling you it's done.
npx -y ghost-qa test http://localhost:3000
No test scripts. No config. No mercy for "it works on my machine".
Prefer running straight from GitHub instead of npm?
npx -y github:avivgerz-hue/ghost-qa test http://localhost:3000works identically — every command in this README accepts either package source (ghost-qa mcp,ghost-qa init, …).
⚡ Quickstart
# 1. Start your app as usual
npm run dev # → http://localhost:3000
2. Verify it in a real browser (one-time: downloads Chromium)
npx playwright install chromium npx -y ghost-qa test http://localhost:3000
3. Teach your coding agent to do this automatically, forever
npx -y ghost-qa init
ghost-qa init installs .claude/skills/ghost-qa/SKILL.md and appends the strict "Verify in Browser Before Done" protocol to CLAUDE.md, AGENTS.md, and .cursorrules. From then on, your agent runs ghost-qa itself, fixes what it finds, and only reports completion on a PASS.
🔁 The Autonomous Self-Healing QA Loop
┌──────────────────────────────────────────┐
│ CODING AGENT │ │ Claude Code · Codex · Cursor · Windsurf │ └───┬──────────────────────────────▲───────┘ writes code │ │ Self-Healing ▼ │ Bug Report ┌───────────────┐ ┌─────────┴──────────┐ │ DEV SERVER │ │ AGENT DIAGNOSTIC │ │ localhost:3000 │ │ verdict · #ids · │ └───────┬───────┘ │ fix playbook │ │ serves live DOM └─────────▲──────────┘ ▼ │ Markdown / JSON ┌────────────────────────────────────────┴──────────┐ │ 👻 ghost-qa │ │ │ │ Route Crawler ──► Interaction Runner │ │ │ │ │ │ ▼ ▼ │ │ ┌─────────┐ ┌──────────┐ ┌─────────┐ │ │ │ CONSOLE │ │ NETWORK │ │ LAYOUT │ │ │ │ A11Y │ │ PERF │ │ 8 TRAPS │ │ │ │ TRAP │ │ TRAP │ │ TRAP │ │ │ └─────────┘ └──────────┘ └─────────┘ │ │ Desktop 1440×900 · Tablet 768×1024 · Mobile 375×812 │ └────────────────────────────────────────────────────┘ │ fix bugs ───────┘ re-run until ✔ PASS
- The agent writes code and starts the dev server.
ghost-qa testcrawls every internal route on Desktop 1440×900, Tablet 768×1024 and Mobile 375×812, in light + dark colour schemes, exercising interactive controls.- Eight traps capture everything the browser actually experienced, scored into a deterministic QA Health Score (0–100, Grade A+…F).
- Failures return as a token-efficient diagnostic (
GHOST-QA-REPORT.md+PATCH-PROMPT.mdwith exact selectors); the agent fixes root causes and re-runs. ghost-qa compare before.json after.jsonproves the fix: the loop ends only at score 95–100 (A+), zero critical/major remaining, and zero new regressions.
🪤 The 8-Trap Deep Browser Inspection Engine *(v2.0.0)*
1. Console & Framework Runtime Trap — src/traps/console-trap.ts
- Uncaught
pageerrorexceptions with stack traces - Unhandled promise rejections
- React hydration mismatches ("Text content did not match", "A tree hydrated but…")
- Duplicate-key warnings and Content-Security-Policy violations *(new in v2)*
console.error(major) andconsole.warning(minor) — with dev-server noise ([vite], HMR, React DevTools banners) filtered out
2. Network & Asset Integrity Trap — src/traps/network-trap.ts
- HTTP
5xxAPI crashes (critical) and4xxresponses (major) - Failed
fetch/XHRrequests, timed-out requests, and connection failures - CORS-blocked requests and failed CORS preflights with remediation guidance
- Broken static assets, broken images (
naturalWidth === 0), broken inline SVGs (0×0), >500KB unoptimized payloads, and missing favicons (minor)
3. Layout, Responsive Geometry & Collision Trap — src/traps/layout-trap.ts
- Horizontal overflow:
scrollWidth > innerWidth, with the offending elements named (critical on mobile) - Overlapping interactive elements via bounding-box collision math, with exact selectors + boxes *(new in v2)*
- Touch targets < 44×44px on touch viewports (WCAG 2.5.5 / Apple HIG), clipped text, and off-screen interactives *(new in v2)*
- Zero-dimension interactive elements — buttons rendered at 0×0 that no human could tap
- Missing
on mobile
4. Accessibility (WCAG 2.1 AA) & Keyboard Focus Trap — src/traps/a11y-trap.ts
- Buttons and links with no accessible name (icon-only controls screen readers can't identify)
- Images missing `alt` attributes (descriptive alt, or
alt=""for decorative) - Form inputs with no associated label — a placeholder is not a label
- Real computed contrast ratios (
getComputedStyleforeground vs effective background, WCAG formula) *(new in v2)* - Heading hierarchy (missing
, h1→h3 skips) and automated Tab-order verification — simulated Tab presses catch invisible or dead focus states *(new in v2)* - Missing document
and missing
5. Performance & Core Web Vitals Trap — src/traps/perf-trap.ts
- Core Web Vitals: TTFB, FCP, LCP estimation, and CLS (Cumulative Layout Shift) *(new in v2)*
- Slow page loads via Navigation Timing (DOMContentLoaded / load budgets, 2× = critical)
- Oversized resources (> 1MB single asset), unoptimized >500KB images/scripts, and excessive total payload (> 3MB)
- Main-thread jank / layout-thrashing indicators from the Long Tasks API
- Render-blocking
resources, excessive DOM size (>1500 nodes) and DOM depth > 32
6. Safe Interactive & Link Integrity Trap — src/traps/links-trap.ts *(new in v2)*
- Placeholder links (
href="",href="#",javascript:void(0)) and dead anchors/routes found during crawling - Buttons inside
with no `type` (they silently become submit buttons) - Disabled/stuck interactive controls — all observational, this trap never clicks anything
7. SEO, Metadata & Social Graph Trap — src/traps/seo-trap.ts *(new in v2)*
(missing, <10 or >60 chars), meta description,, viewport meta, canonical tag- OpenGraph set (
og:title,og:description,og:image) for link unfurls - Duplicate `id` attributes in the live, post-hydration DOM
8. Dark / Light Theme Emulation Trap — src/traps/theme-trap.ts *(new in v2)*
- Every page also renders under
colorScheme: 'dark'and'light'emulation - Computed contrast is re-evaluated per scheme — invisible dark-mode text (dark-on-dark) is caught automatically and tagged with the failing scheme
Plus a safety-first Interaction Runner: it fills forms with inert data (ghost-qa@example.com), opens tabs/modals/menus, and clicks ordinary buttons — but *never* destructive ones (delete, checkout, pay, logout, publish… are blocked by a tested safety gate).
📊 QA Health Score, Artifacts & Interactive Dashboard *(new in v2)*
Every run computes a deterministic QA Health Score (0–100) and Letter Grade (A+ … F): each trap starts at 100 and loses 25 per critical, 10 per major, 3 per minor finding; the overall score is the mean of the eight trap sub-scores (Console, Network, Layout, A11y, Performance, Links/UX, SEO/DOM, Theme Parity).
npx -y ghost-qa test http://localhost:3000 --out-dir ghost-qa-out --screenshots
| Artifact | Contents |
|---|---|
report.json | Complete machine-readable telemetry: per-trap scores, viewport matrices, exact DOM selectors (#id, data-testid, CSS path) and bounding boxes |
GHOST-QA-REPORT.md | Human + agent Self-Healing Bug Report with root-cause analysis and the fix playbook |
PATCH-PROMPT.md | Copy-paste remediation prompt: every finding with selector, bounding box, parent-component hints and the compare loop |
report.html | Self-contained, zero-dependency, dark-mode interactive QA Dashboard: Grade hero (A+…F), 8-Trap Scorecard, Route & Viewport Matrix, filterable findings (severity/trap/viewport), embedded screenshots when captured |
🔀 Regression Diffing — ghost-qa compare / ghost_qa_compare *(new in v2)*
npx -y ghost-qa test http://localhost:3000 --json > before.json # baseline
…agent fixes the bugs…
npx -y ghost-qa test http://localhost:3000 --json > after.json # re-audit npx -y ghost-qa compare before.json after.json # Regression & Verification Delta Report
The delta matches findings by stable fingerprint id and reports `scoreDelta`, `fixedFindings`, `newRegressions`, `remainingFindings` — so a coding agent can *prove* its fix resolved the bug without introducing regressions. verified requires score ≥ 95, zero regressions and no blocking findings left. Also available as the ghost_qa_compare MCP tool.
🔌 Native MCP Server
ghost-qa ships a zero