Eva Launch Video
vvedantb/eva
Produce polished, mobile-friendly product demo videos of the eva app with Remotion — 1280×720, snappy beat-synced hard cuts, lo-fi music that swells on every cut, and footage captured from the REAL…
Drive and visually QA the dev-3.0 UI in a real browser (headless Chromium via agent-browser).
$ npx skills add h0x91b/dev-3.0 --skill debug-ui -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install h0x91b/dev-3.0 debug-ui --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/h0x91b/dev-3.0.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/debug-ui .claude/skills/debug-ui && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "debug-ui" agent skill from https://github.com/h0x91b/dev-3.0/tree/main/.claude/skills/debug-ui into .claude/skills/debug-ui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "debug-ui", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/h0x91b/dev-3.0/tree/main/.claude/skills/debug-uiType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add h0x91b/dev-3.0 --skill debug-ui -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install h0x91b/dev-3.0 debug-ui --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/h0x91b/dev-3.0.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/debug-ui .agents/skills/debug-ui && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "debug-ui" agent skill from https://github.com/h0x91b/dev-3.0/tree/main/.claude/skills/debug-ui into .agents/skills/debug-ui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "debug-ui", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add h0x91b/dev-3.0 --skill debug-ui -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install h0x91b/dev-3.0 debug-ui --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/h0x91b/dev-3.0.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/debug-ui .cursor/skills/debug-ui && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "debug-ui" agent skill from https://github.com/h0x91b/dev-3.0/tree/main/.claude/skills/debug-ui into .cursor/skills/debug-ui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "debug-ui", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/h0x91b/dev-3.0.git --path .claude/skills/debug-ui--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add h0x91b/dev-3.0 --skill debug-ui -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install h0x91b/dev-3.0 debug-ui --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/h0x91b/dev-3.0.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/debug-ui .gemini/skills/debug-ui && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "debug-ui" agent skill from https://github.com/h0x91b/dev-3.0/tree/main/.claude/skills/debug-ui into .gemini/skills/debug-ui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "debug-ui", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install h0x91b/dev-3.0 debug-uiInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add h0x91b/dev-3.0 --skill debug-ui -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/h0x91b/dev-3.0.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/debug-ui .github/skills/debug-ui && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "debug-ui" agent skill from https://github.com/h0x91b/dev-3.0/tree/main/.claude/skills/debug-ui into .github/skills/debug-ui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "debug-ui", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add h0x91b/dev-3.0 --skill debug-ui -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install h0x91b/dev-3.0 debug-ui --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/h0x91b/dev-3.0.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/debug-ui .opencode/skills/debug-ui && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "debug-ui" agent skill from https://github.com/h0x91b/dev-3.0/tree/main/.claude/skills/debug-ui into .opencode/skills/debug-ui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "debug-ui", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
debug-uiDrive and visually QA the dev-3.0 UI in a real browser (headless Chromium via agent-browser).
Debug UI is an agent skill from h0x91b/dev-3.0. Drive and visually QA the dev-3.0 UI in a real browser (headless Chromium via agent-browser). Use when verifying a UI/UX change, reproducing a visual bug, taking screenshots of the running app, or self-QA before review. Triggers — "check the UI", "screenshot the app", "does this render", "QA this screen", "verify the UI change in a browser", "drive the app".
Its SKILL.md is about 3.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Productivity & Automation, covering Browser automation and UI design. The repository describes itself as: Mission control for the One Person Studio — run a fleet of AI coding agents in parallel without losing your mind. Kanban + git worktrees + tmux for Claude Code, Codex, Gemini… The licence is Apache-2.0.
Read from SKILL.md and the folder at commit 8c5aaad. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
bungitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Debug UI loads about 3.6k tokens when it runs. Until then it costs about 92 tokens; SKILL.md has 1,623 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from h0x91b/dev-3.0 at commit 8c5aaad, republished under its Apache-2.0 licence (© h0x91b). 1,623 words, ~3,567 tokens.
.claude/skills/debug-ui/SKILL.md (or your agent's skills folder).See and drive the running dev-3.0 UI in headless Chromium — click, type, screenshot, read console errors — instead of guessing whether a UI change works. No desktop/native dependency; it works the same in a plain terminal session.
This is dev-internal tooling for the dev-3.0 repo — NOT one of the skills dev3 ships to
its users (those live in src/bun/agent-skills.ts).
agent-browser on PATHCheck with agent-browser --version. If it is missing, install it once per machine, not in the
project setupScript (that runs for every new worktree):
bun add -g agent-browser # or: npm i -g agent-browser
agent-browser install # downloads Chromium; on Linux add --with-deps for system libraries (needs sudo)dev3 dev-server, nothing elseEvery QA run in this skill boots the app with dev3 dev-server start and takes it down with
dev3 dev-server stop. Never start the app any other way — not a bare bun run dev, not
bun run dev --qa, and not dev3 pane run "bun run dev …". A pane run looks like a shortcut
and costs you everything the dev-server owns: the port wait (--wait), status with its port
conflicts, a verified stop that frees DEV3_PORT0, the Dev Server button in the task UI that
shows the user what is running, and the show-image / attention routing rules below. If you
need the app to behave differently (a throwaway board, an env flag), change what the dev-server
runs — see "Scoped QA" — do not route around it.
This task's dev-server is the web UI: bun run dev serves the full app in local remote
mode at a stable per-machine token and a CLI-derivable port — no separate dev3 remote. The
loop is always the same four beats: values → server → browser → clean up.
# 1. Values. AGENT_BROWSER_SESSION isolates THIS task's browser from every other agent's —
# without it all agents share one global "default" session and stomp each other (see
# Gotchas). Derived from the always-present $DEV3_TASK_ID, so this exact line is
# copy-paste-safe at the top of ANY block that calls agent-browser.
export AGENT_BROWSER_SESSION="dev3-${DEV3_TASK_ID%%-*}"
CODE=$(cat "$HOME/.dev3.0/dev-web-access-code" 2>/dev/null || bun scripts/dev-web-code.ts)
PORT=${DEV3_PORT0:-$(dev3 dev-server status | grep -oE 'DEV3_PORT0=[0-9]+' | cut -d= -f2)}
# 2. Start a FRESH dev-server and wait for it to come up. (Skip the start only if one is
# already running for THIS task — but see the build-snapshot gotcha: stale code needs a
# restart, so when in doubt restart.)
dev3 dev-server start
until curl -sf "http://localhost:$PORT/?token=$CODE" >/dev/null; do sleep 2; done
# 3. Drive it. Every agent-browser call inherits AGENT_BROWSER_SESSION, so it all runs in
# this task's own session. (Load /agent-browser for the full command set.) The screenshot
# path is task-scoped too, so parallel agents never overwrite each other's PNG.
# `&streamer=on` is MANDATORY: it enables streamer mode (privacy masking), so screenshots
# can't leak the developer's real emails/accounts/paths/tunnel URLs (see Gotchas).
# Keep `set viewport` BEFORE `open`, and keep the width ≥ 1024 for desktop QA — the app's
# mobile gate reads `screen.width` (see Gotchas).
agent-browser set viewport 1440 900
agent-browser open "http://localhost:$PORT/?token=$CODE&streamer=on"
agent-browser wait --load networkidle
sleep 2 # networkidle can still land mid-render — let it settle
agent-browser snapshot -i -d 6 # prove it's DRIVABLE, not just screenshot-able
agent-browser screenshot "/tmp/dev3-ui-${DEV3_TASK_ID%%-*}.png" # then Read it back to look
agent-browser errors # confirm no console errors
# 4. Always clean up what you started. `close` closes only THIS session's browser.
agent-browser close
dev3 dev-server stop # the port frees a second or two later (graceful shutdown)That's it. DEV3_REMOTE_PORT=${DEV3_PORT0:-0} is wired into the repo's dev script and
portCount: 1 is committed in .dev3/config.json, so the dev app binds the exact port shown
above (see decision 093).
On Linux with no DISPLAY/WAYLAND_DISPLAY, or without libwebkit2gtk-4.1 (WSL without WSLg,
SSH, containers), the desktop window cannot open. bun run dev detects that and serves the same
UI through dev3 remote, run from source, on the same port and access code. The flow above does
not change: agent-browser only ever talked to the web server. The pane prints
[dev] headless (<reason>) when this happens.
seeded board, because the real ~/.dev3.0 usually
belongs to an installed dev3 remote on the same machine. --env DEV3_QA_SCOPE=0 opts back
into the real board.dev3 dev-server start --wait --env DEV3_DEV_HEADLESS=1.dev3 dev-server start boots a full dev3 instance on your real board — another task's
"Branch Merged — mark completed?" dialog is live and clickable in your browser, and another task's
terminal is reachable by navigation. It stays the default anyway, because it is the build the user
runs; reach for the scoped board when the QA would touch real tasks, real accounts, or a live dialog
— creating or launching a task from the New Task dialog counts.
The switch is an env var the dev script reads (DEV3_QA_SCOPE, see scripts/dev.ts and
scripts/qa-scope.ts), and the dev-server passes caller-supplied variables straight through. So
the scoped board is the same dev-server, one flag longer:
dev3 dev-server start --wait --env DEV3_QA_SCOPE=seeded # or virginseeded = one fixture project, zero tasks; virgin = completely empty home, the first-run state.
Steps 1, 3 and 4 of the flow above are unchanged — same port, same access code, same stop. The
dev-server pane prints the scoped DEV3_HOME and an rm -rf reset line; the scoped root is stable
per worktree, so the board survives a restart.
Three things worth knowing about the flag:
dev3 dev-server restart stays on the scoped board — a restart with no --env
reuses the last start's env, which is also what the Dev Server button in the task UI does.dev3 dev-server start goes back to the real board. A start defines its
configuration whole, and a stop clears the remembered env — so there is nothing to delete
and nothing left to forget about.dev3 dev-server status names the extra keys (names only, never values), so you can see at
a glance which board the running server is on.Do not put DEV3_QA_SCOPE in .dev3/config.local.json. That was the old recipe and its trap
is exactly what the flag removes: the file also reaches the agent sessions of this worktree, and a
forgotten one silently boots the next QA run on the throwaway board.
What it does NOT isolate — name these rather than assuming a clean room: the tmux socket
directory (only TMUX_TMPDIR moves it, and dev3 sets it nowhere), the PowerShell history file on
Windows, the user's own ~/.codex / ~/.claude agent configs, and dev3 CLI commands run from
inside a REAL worktree (cwd-based task detection outranks $DEV3_HOME by design).
The browser is a machine-global singleton — isolate per task or agents stomp each other.
Every agent-browser call with no session lands in one shared "default" session: one
browser process, one global viewport. When two task agents QA at the same time they collide
— agent B's open silently replaces agent A's page, so A's next screenshot captures B's
UI. The fix is step 1: export AGENT_BROWSER_SESSION="dev3-${DEV3_TASK_ID%%-*}" gives each
task its own isolated session/profile (verify with agent-browser session / session list), and agent-browser close then closes only your session. The Bash tool
reinitializes the shell per call, so an export does not carry across separate
invocations — the line derives from the always-present $DEV3_TASK_ID, so just repeat it
at the top of each block, or pass --session "dev3-${DEV3_TASK_ID%%-*}" on every command.
(If you ever must share one browser machine-wide instead, serialize QA across agents so only
one drives at a time.)
The dev-server is a build snapshot — no watch/HMR. Your code only appears after a
(re)start. After changing code, dev3 dev-server restart, re-wait for the port, then
agent-browser reload — a bare reload re-serves the old bundle. Don't keep a stale server
around; never hand-run vite build.
Is the running build actually yours? An already-running app/remote is often production or
another worktree — it won't have your changes. (Re)start THIS task's dev-server and confirm
with dev3 --version (commit hash should match git log -1) + that your change actually
renders. Don't assume.
Tell the user before you start the app any way at all (visible side effect), and stop it after (step 4) unless they want it kept.
dev3 says app not running? Stop and tell the user. Every route in this skill needs the
CLI, so there is nothing to fall back to. Never launch the app yourself — a bare bun run dev
(with or without --qa, in your shell or in a dev3 pane run) opens a native window on the
user's screen that no dev-server owns, so nothing can status or stop it for you.
No DEV3_PORT0? (portCount 0, or an older worktree where it was never allocated) — run
your own fixed-port server instead:
dev3 remote --no-detach --no-tunnel --static-code $CODE --port 47823 → :47823/?token=$CODE.
Every screenshot in streamer mode — no exceptions by default. The app shows the
developer's REAL identity (account emails, orgs, home-dir paths, tunnel URLs, QR codes), and
a QA screenshot easily ends up in a PR/issue/recording. &streamer=on in the URL forces the
privacy masking on for the whole session (it persists in this session's localStorage;
&streamer=off forces it back off). The masking is CSS blur on .streamer-private elements
— see src/mainview/streamer-mode.tsx and decision 161. Only capture unmasked when the task
is explicitly about those values (e.g. testing the accounts UI itself), and say so when
presenting the image.
App renders but nothing clicks? That's the mobile gate, not the tooling. The app decides
mobile from the physical screen.width (< 1024 → mobile; src/mainview/hooks/useMobile.tsx,
deliberately not innerWidth), and a mobile device held in landscape gets
MobilePortraitGate: a "rotate your device" overlay plus inert on the whole app — screenshots
still work, clicks do nothing. agent-browser 0.6.0 emulated screen.* together with the
viewport, so set viewport 1440 900 before open was enough. 0.34.0 does not — screen
stays at the headless display's 800×600 no matter the viewport (--window-size in --args
does not move it either), so every desktop QA run lands in the gate. Override it with an init
script instead, registered before the first navigation:
printf 'for (const k of ["width","availWidth"]) Object.defineProperty(screen, k, { get: () => 1600, configurable: true });\nfor (const k of ["height","availHeight"]) Object.defineProperty(screen, k, { get: () => 1000, configurable: true });\n' > /tmp/screen-desktop.js
agent-browser close # a running session keeps its old init scripts
agent-browser set viewport 1600 1000
agent-browser open "http://localhost:$PORT/?token=$CODE&streamer=on" --init-script /tmp/screen-desktop.jsWith that, screen.width reports 1600 and the gate stays off. You otherwise only hit the gate
by asking for a phone-sized landscape viewport — that is the app working as designed.
Measured across the common sizes: 2560×1440, 1920×1080, 1600×900, 1440×900, 1366×768,
1280×720, 1024×768, 768×1024 and phone portrait 390×844 all render and click fine
(screen.width always equals the requested width); only landscape 844×390 shows the gate, goes
inert, and reports zero interactive elements in snapshot -i — that count is the fastest
tell. Diagnose in one call:
agent-browser eval "JSON.stringify({sw:screen.width,gate:!!document.querySelector('[data-testid=\"mobile-portrait-gate\"]'),inert:!!document.querySelector('[inert]')})".
If a future browser tool pins screen.* to the real headless display and desktop QA goes inert,
that's the moment to add an escape hatch to the app — not before (see
the headless-QA decision).
No native dialogs in browser mode. If a confirm/file-picker flow silently no-ops, that's an app bug, not a tooling problem — report it.
Show images to the user AFTER you stop this dev-server, not while it runs.
dev3 show-image (and dev3 attention / dev3 notify) route to the app instance that owns
the task — and this QA dev-server is itself a full dev3 instance. While it's up, those
UI-attention calls can land in it (the browser only you see) instead of the user's main
app, so the user never sees the image. Screenshots persist on disk, so the correct order is
capture → dev3 dev-server stop (confirm State: stopped) → dev3 show-image.
© h0x91b, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/debug-ui of h0x91b/dev-3.0.
Open the folder on GitHubat commit 8c5aaad
Debug UI next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Debug UI this skillh0x91b/dev-3.0 | 307 | — | ~3.6k | Automated safety check: Pass | Apache-2.0 | |
| Eva Launch Videovvedantb/eva | 101 | — | ~2.7k | Automated safety check: Pass | MIT | |
| Agent Browserquran/quran.com-frontend-next | 1.9k | 42 repos | ~3.3k | Automated safety check: Pass | None | |
| Dev-Browser CLI AutomationSawyerHood/dev-browser | 6.7k | 1 repos | ~455 | Automated safety check: Pass | MIT | |
| Agent Browsersuperagent-ai/grok-cli | 3.5k | 1 repos | ~633 | Automated safety check: Pass | MIT | |
| Browser Automationopenclaw/openclaw | 392k | — | ~2.9k | Automated safety check: Pass | MIT |
vvedantb/eva
Produce polished, mobile-friendly product demo videos of the eva app with Remotion — 1280×720, snappy beat-synced hard cuts, lo-fi music that swells on every cut, and footage captured from the REAL…
quran/quran.com-frontend-next
Automates browser interactions for web testing, form filling, screenshots, and data extraction.
SawyerHood/dev-browser
Browser automation with persistent named pages via the dev-browser CLI. Use when users ask to navigate websites, fill forms, take screenshots, extract web…
superagent-ai/grok-cli
Use the host-side agent-browser CLI for local browser smoke tests, screenshots, snapshots, and simple UI validation against forwarded localhost URLs.
openclaw/openclaw
A skill your agent uses when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.
Bin-Huang/camoufox-cli
Anti-detect browser automation CLI & Skills for AI agents. An agent skill from Bin-Huang/camoufox-cli.
h0x91b/dev-3.0
Create the initial Product UX Bible for an existing web or full-screen web app by deeply auditing the repository, using sub-agents when available, and generating docs/ux manifests, schemas, budgets…
h0x91b/dev-3.0
Principal UX architect skill for deciding WHERE a UI feature belongs, before it is implemented.
h0x91b/dev-3.0
How to test and verify work in the dev-3.0 repo — which vitest config covers what, how to write a test that fits the house style, mocking Electrobun RPC and i18n providers, what coverage is actually…
Categories
Drive and visually QA the dev-3.0 UI in a real browser (headless Chromium via agent-browser). 0.0 UI in a real browser (headless Chromium via agent-browser).
Debug UI fits situations like: verifying a UI/UX change; reproducing a visual bug; taking screenshots of the running app; self-QA before review.
Run `npx skills add h0x91b/dev-3.0 --skill debug-ui -a claude-code`. Or copy the skill folder (.claude/skills/debug-ui in h0x91b/dev-3.0) into .claude/skills/debug-ui in your project. Claude Code loads it when a task matches its description.
Run `npx skills add h0x91b/dev-3.0 --skill debug-ui -a codex`. Or copy the skill folder (.claude/skills/debug-ui in h0x91b/dev-3.0) into .agents/skills/debug-ui in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add h0x91b/dev-3.0 --skill debug-ui -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/debug-ui, .gemini/skills/debug-ui, .github/skills/debug-ui and .opencode/skills/debug-ui in your project.
Going by SKILL.md and its folder, Debug UI needs the command-line tools its instructions call (bun and git). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Debug UI is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.6k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Debug UI: Eva Launch Video (vvedantb/eva, 101 stars), Agent Browser (quran/quran.com-frontend-next, 1.9k stars), Dev-Browser CLI Automation (SawyerHood/dev-browser, 6.7k stars) and Agent Browser (superagent-ai/grok-cli, 3.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
h0x91b (a GitHub user) maintains it in h0x91b/dev-3.0, which has 307 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 7, 2026.
Source: h0x91b/dev-3.0 on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.