meituan-longcat/wbench/genie3
Claude Code and agent skill by meituan-longcat/wbench
- community
Checking that the SKILL.md file is still in the repository.
Automate Project Genie (labs.google) benchmark runs. Use when the user asks to run a case on Genie3 (e.g. "run case_XXX on genie3", "用genie3跑case_XXX"). Uses OS file-dialog upload because Genie3 enforces Private Network Access.
Install
npx vskill@latest install meituan-longcat/wbench/genie3SKILL.md
Project Genie Benchmark Automation
Automates one benchmark case on https://labs.google/fx/projectgenie/tools/projectgenie/creation. Input: case_<id>.json from the dataset's cases/ directory. Output: save_video/case_<id>.mp4 under the repo root.
Paths below assume the repo is checked out and cd-ed into. Replace <repo> with the absolute checkout path when calling scripts from a non-repo cwd.
Key insight
Project Genie enforces Private Network Access, so fetch('http://127.0.0.1:...') from the page is blocked by Chrome. Images must therefore be uploaded through the OS file dialog — genie3/upload_image_full.py finds the Chrome window, clicks the "+" button, and pastes the image path into the dialog. Everything else (prompt injection, "Create world" click, video download) is JS-driven.
Prerequisite
The local HTTP server only needs to run if you also intend to drive Happy Oyster in the same session. For Genie3 alone the script reads the image directly from disk; no server is required.
Workflow
1. Navigate
Open Chrome to the creation page, give it ~3s to hydrate. Make sure the Chrome window title contains Project Genie — the upload script greps the window list for that.
2. Inject prompts
Two textareas: environment_prompt and character_prompt. Both are React-controlled, so set via the native setter + bubbling input event:
3. Upload initial frame
What the script does:
- Copies the path to the clipboard.
- Finds the Chrome window with title
Project Genie, brings it to foreground. - Clicks the "+" button (viewport ~485, 657, scaled to the actual window size).
- Watches for the Windows file dialog (
#32770). If the "I agree" Notice overlay appears first, clicks it and re-clicks "+". - When the file dialog appears,
Ctrl+ACtrl+VEnter to submit the path.
The Chrome viewport is assumed ~1568x726 — if your zoom level or window size differs significantly you may need to retune the vp_w/vp_h constants in the script.
4. Set perspective (if needed)
The perspective control is a single button that cycles labels (Third → First → ...). Click until getAttribute('aria-pressed') or the button text matches settings.perspective.
5. Click "Create world"
Find the primary CTA by text match (Create world) and click. URL changes; world generation starts.
6. Start auto_interact in background
Start immediately after clicking — the script internally waits for t.png (WASD cluster) to appear before sending keys.
genie3/t.png— WASD button cluster template (33x77 px at 1920x1080).5— seconds per turn. Genie3 has no hard recording cap so 5s/turn is the standard.
7. Wait for "Thanks for exploring!"
The page transitions to a thank-you screen once interactions complete. The download button appears at approximately screen coordinate (684, 534) on 1920x1080 — click via JS (preferred) or pyautogui as fallback:
8. Move file
File downloads to ~/Downloads/Genie<hash>.mp4. Find the newest Genie*.mp4 and move:
9. Update progress
Optional — if you maintain a progress.json:
Gotchas
- The first time a fresh browser profile opens Project Genie, a "Notice" overlay covers the page until you click "I agree".
upload_image_full.pyhandles this after 2s of waiting for the file dialog, but if the layout changes the heuristic ((944, 444) viewport coord) may need to be retuned. - Two Chrome windows with
Project Geniein the title (e.g. main window + DevTools-undocked instance) will confuse the upload script — close the extra one or modify the lookup to pick by largest area. - If
auto_interact.pyis started before "Create world" is clicked, it will sit atWAITING...until the WASD cluster appears. That's fine; the polling is cheap. - Some Genie3 cases trigger a content-policy refusal at world generation. The download step will time out — fail the case rather than retrying indefinitely.
Files referenced
auto_interact.py— shared keyboard driver (template + duration as args)genie3/t.png— WASD button-cluster template (33x77, ~1580 bytes)genie3/upload_image_full.py— Chrome "+" click + Windows file-dialog handlersave_video/— output directory (create if missing)
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingsrc/models/action/web/.claude/skills/genie3/SKILL.md
Popularity
- Repository stars
- 157
- Repository forks
- 7
- 7-day trend score
- 25
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/meituan-longcat/wbench/genie3)