# pingfusi > Copy any site or element, then verify the result. Your coding agent ships a > change, pingfusi tests it, and structured results — pinned comments, per-step > proof of work, screenshots — flow back into the agent's context. pingfusi is built for coding agents. After you build or change a UI you are blind to the result: you can't *see* the rendered page, *feel* whether an animation is smooth, *use* a real device, or *reach* real third-party side-effects (OAuth round-trips, payment emails, real-network latency). File those with `pingfusi_review_website` over MCP and wait for results. ## The loop 1. Call `pingfusi_review_website` with a `url`, structured `steps`, and optional `verdict_options`. Filing immediately waits for initial news. IMPORTANT: the `url` must be publicly reachable — localhost is opened from someone else's device and dead-ends. Static build output can be hosted here: `npx pingfusi publish ` (or POST https://pingfusi.com/api/draft) returns a https://pingfusi.com/d/ URL that stays up for 48 hours without your machine. Deploy a preview when the build needs a server, a login, or persisted state — hosted drafts are static and sandboxed. 2. pingfusi tests the build against your checklist and pins comments to the exact components it means (no script to add to your build). 3. Filing starts the automatic wait chain. Each leg returns before common MCP clients time out. If a result is pending, immediately call `pingfusi_wait(ping_id)` and repeat while pending—do not answer the user or retry the original send. The user never has to request a separate wait. `pingfusi_review_results(ping_id)` is only a passive snapshot. Results: verdicts, notes, component-level comments (element + CSS selector), screenshot URLs, and a per-step truth report. 4. Do not stop after one result unless the verification returns an approval verdict (e.g. Pass / Approved / Good to go) with no unresolved comments. If it returns issues, requested changes, unresolved comments, Fail/Blocked, or any non-approval verdict, fix the code, publish the fixed build again (a new `pingfusi publish` mints a new /d/ — file the next round with it — or redeploy your preview), file another `pingfusi_review_website`, and repeat until it approves or the user tells you to stop. ## Verifiable steps (proof the work happened) You wrote the code, so you know what "done" looks like. Attach a `check` rule to every step you can: - `{type:"url", pattern:"/pricing"}` — confirms it actually navigated there - `{type:"click", selector:".checkout button"}` — confirms it actually clicked it - `{type:"fill", selector:"input[type=email]"}` — confirms it actually typed - `{type:"comment"}` — confirms at least one comment was pinned pingfusi observes the page and auto-verifies them; `pingfusi_review_results` reports each step as ✓ auto (machine-verified), ✓ manual, or ✗ not done. For qualitative steps add `options` (2–4 labels, e.g. ["Smooth","Janky"]): the answer is returned inline in steps_result[].answer. ## Also: quick subjective gut-checks `pingfusi_quick_question` is the lighter sibling for taste questions answerable from words alone — "which tagline reads better: 'X' or 'Y'?", "rate this onboarding copy" (paste the copy into the question). TEXT-ONLY: the reviewer sees just the question string and choices — no URL opens, no image renders. If a website, build, design, or any URL exists, publish it (`npx pingfusi publish`) and file `pingfusi_review_website` instead, however small the question. Filing begins a client-safe wait leg and keeps its 120s idle lease live. If pending, immediately call `pingfusi_wait` and repeat until an answer arrives or the user cancels. `pingfusi_quick_question_results` is only a passive snapshot. The lease governs feed visibility for new claims; a reviewer already mid-review can still finish after it lapses. ## Key capabilities - **MCP server** at `https://pingfusi.com/api/mcp` (streamable HTTP, bearer auth). Tools are named after the job you want done: - `pingfusi_review_website` — review a page or build; verdict + pinned comments - `pingfusi_compare_clone` — a clone vs its original, side by side - `pingfusi_review_video` — a rendered video against its brief - `pingfusi_review_results` — results for any of the three above (free) - `pingfusi_check_source` — the original's authored source for flagged elements, after a compare round (free) - `pingfusi_quick_question` / `pingfusi_quick_question_results` — one text-only subjective question (the reviewer sees only your words; anything to look at goes through `pingfusi_review_website`) - `pingfusi_wait` — continue a pending ping (free) - **Legacy tool names**: the original `cpyany_*` names (`cpyany_test`, `cpyany_test_results`, `cpyany_poll`, `cpyany_poll_results`, `cpyany_wait`, `cpyany_check_source`) are still registered and behave identically, so older installs keep working. Use the job names above for anything new. - **Real-device verification**: pingfusi tests on a real device with real rendering. - **Credits**: 1 credit per completed result. Most tasks use about 5; quick checks can use 1 and complex/high-confidence reviews may use 15–20. New accounts get 20 free credits. - **Top-ups**: 100 credits for $15, or 1,000 for $100 (save $50). - **Idempotency**: pass `idempotency_key` to make retries safe. - **Setup in one command**: `npx pingfusi setup` (writes MCP config + agent rules for Claude Code, Claude Desktop, Cursor). ## Authentication `Authorization: Bearer ph_` Get a token at https://pingfusi.com/dashboard after signing up, or run `npx pingfusi setup`. ## Key pages - [Landing](https://pingfusi.com) - [Sign up](https://pingfusi.com/sign-up) - [Dashboard (token + balance + deposits)](https://pingfusi.com/dashboard) - [Answer feed](https://pingfusi.com/answer) - [AI plugin manifest](https://pingfusi.com/.well-known/ai-plugin.json) - [Detailed LLM reference](https://pingfusi.com/llms-full.txt) ## Contact - Website: https://pingfusi.com - Support: https://pingfusi.com/support