Databuddy
databuddy-analytics/Databuddy
Integrate Databuddy analytics using the SDK, REST API, or MCP.
Work with Domscribe — the pixel-to-code bridge. An agent skill from patchorbit/domscribe.
$ npx skills add patchorbit/domscribe --skill domscribe -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install patchorbit/domscribe domscribe --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/patchorbit/domscribe.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/domscribe .claude/skills/domscribe && 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 "domscribe" agent skill from https://github.com/patchorbit/domscribe/tree/main/skills/domscribe into .claude/skills/domscribe/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "domscribe", 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/patchorbit/domscribe/tree/main/skills/domscribeType 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 patchorbit/domscribe --skill domscribe -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install patchorbit/domscribe domscribe --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/patchorbit/domscribe.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/domscribe .agents/skills/domscribe && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "domscribe" agent skill from https://github.com/patchorbit/domscribe/tree/main/skills/domscribe into .agents/skills/domscribe/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "domscribe", 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 patchorbit/domscribe --skill domscribe -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install patchorbit/domscribe domscribe --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/patchorbit/domscribe.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/domscribe .cursor/skills/domscribe && 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 "domscribe" agent skill from https://github.com/patchorbit/domscribe/tree/main/skills/domscribe into .cursor/skills/domscribe/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "domscribe", 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/patchorbit/domscribe.git --path skills/domscribe--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 patchorbit/domscribe --skill domscribe -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install patchorbit/domscribe domscribe --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/patchorbit/domscribe.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/domscribe .gemini/skills/domscribe && 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 "domscribe" agent skill from https://github.com/patchorbit/domscribe/tree/main/skills/domscribe into .gemini/skills/domscribe/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "domscribe", 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 patchorbit/domscribe domscribeInstalls 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 patchorbit/domscribe --skill domscribe -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/patchorbit/domscribe.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/domscribe .github/skills/domscribe && 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 "domscribe" agent skill from https://github.com/patchorbit/domscribe/tree/main/skills/domscribe into .github/skills/domscribe/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "domscribe", 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 patchorbit/domscribe --skill domscribe -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install patchorbit/domscribe domscribe --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/patchorbit/domscribe.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/domscribe .opencode/skills/domscribe && 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 "domscribe" agent skill from https://github.com/patchorbit/domscribe/tree/main/skills/domscribe into .opencode/skills/domscribe/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "domscribe", 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.
domscribeWork with Domscribe — the pixel-to-code bridge. An agent skill from patchorbit/domscribe.
Domscribe is an agent skill from patchorbit/domscribe. Work with Domscribe — the pixel-to-code bridge. Use when setting up, initializing, or configuring Domscribe for a project, OR when editing or modifying UI components (React, Vue, Next.js, Nuxt), implementing features from captured UI annotations, querying runtime context for source locations, exploring component structure, or when user mentions annotations, queued tasks, UI changes, props, state, DOM, or asks about how elements render at runtime.
Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/config-patterns.md`).
It sits in Agent Workflows, covering MCP servers. It works with Nuxt, Model Context Protocol, React and Next.js. The repository describes itself as: Domscribe is a pixel-to-code development tool that bridges the gap between running web applications and their source code. The licence is MIT.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit accfd5c. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadEditWriteBashGlobmcp__domscribe__*domscribe.*mcp.domscribe.*process_nextcheck_status…and 2 more on the same allowed-tools line.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pnpmnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pnpm and npm, 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.
Domscribe loads about 3.3k tokens when it runs, and up to ~4.6k if it reads all its reference files. Until then it costs about 115 tokens; SKILL.md has 1,346 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 noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, Edit, Write, Bash, Glob, mcp__domscribe__*, domscribe.*, mcp.domscribe.*, process_next, check_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 patchorbit/domscribe at commit accfd5c, republished under its MIT licence (© patchorbit). 1,346 words, ~3,273 tokens.
.claude/skills/domscribe/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Domscribe bridges running UI and source code. It maps every rendered element to its exact source location and captures live runtime context (props, state, DOM). This works in two directions:
If domscribe.status returns active: false, Domscribe is not yet configured in this workspace. The .domscribe/ directory is created automatically when the dev server starts with the Domscribe bundler plugin configured. Follow this procedure to set it up:
domscribe.status. If active: false, proceed. Note the cwd in the response.package.json (at cwd, or at the appRoot from domscribe.config.json if it exists) and match dependencies against the table below.pnpm add -D @domscribe/next).references/config-patterns.md for the exact import, transformation, and example for each framework..gitignore — if .domscribe is not already listed, append a # Domscribe artifacts comment and .domscribe entry.Check dependencies and devDependencies in package.json. Match top-down (first match wins):
| Dependency | Framework |
|---|---|
next | next |
nuxt | nuxt |
react + vite | react-vite |
react (no vite) | react-webpack |
vue + vite | vue-vite |
vue (no vite) | vue-webpack |
vite only | other-vite |
webpack only | other-webpack |
| Framework | Package | Config file |
|---|---|---|
| next | @domscribe/next | next.config.ts |
| nuxt | @domscribe/nuxt | nuxt.config.ts |
| react-vite | @domscribe/react | vite.config.ts |
| react-webpack | @domscribe/react | webpack.config.js |
| vue-vite | @domscribe/vue | vite.config.ts |
| vue-webpack | @domscribe/vue | webpack.config.js |
| other-vite | @domscribe/transform | vite.config.ts |
| other-webpack | @domscribe/transform | webpack.config.js |
| Lockfile | Package manager |
|---|---|
pnpm-lock.yaml | pnpm |
yarn.lock | yarn |
bun.lock / bun.lockb | bun |
| (none) | npm |
Install command pattern: <pm> add -D <package> (pnpm/yarn/bun) or npm install -D <package>.
If domscribe.config.json exists at the project root with an appRoot field, the frontend app lives in that subdirectory. Install packages and find the bundler config relative to appRoot.
If the project appears to be a monorepo (e.g., apps/, packages/ directories, workspace config in package.json) but no domscribe.config.json exists, ask the user which directory contains the frontend app. Then write domscribe.config.json at the project root:
{ "appRoot": "apps/web" }The MCP server starts in dormant mode when no .domscribe/ directory exists. After the user starts their dev server, the bundler plugin creates .domscribe/ automatically. The MCP server will need to restart to detect the new workspace and transition to active mode with the full tool suite.
Why query runtime state? Source code alone doesn't tell you what props a component actually received, whether a conditional branch rendered, what CSS classes were applied, or what text the user sees. domscribe.query.bySource gives you the live truth from the browser.
When to query (these tasks benefit):
className, inline styles, and computed attributes so you can see what CSS is winning.rendered: false or shows the actual props/state that control the condition.componentProps with the actual values flowing through, revealing where the chain breaks.When NOT to query (save the round-trip):
Prerequisite: Runtime queries require the user's dev server to be running and the target component to be rendered in an open browser tab. Before calling domscribe.query.bySource, confirm with the user that they have the relevant page open. If you get browserConnected: false or runtime.rendered: false, ask the user to navigate to the page that renders the component and retry.
Workflow:
domscribe.query.bySource with the file path and line number. Inspect runtime.componentProps, runtime.componentState, and runtime.domSnapshot.domscribe.query.bySource again to verify your changes took effect in the live browser.| Command | Purpose |
|---|---|
process_next | Process next queued annotation |
check_status | System health and queue counts |
explore_component | List elements in a component |
find_annotations | Search annotation history |
Tool names below use their MCP registration names (e.g., domscribe.query.bySource). Your client may map these differently — use whatever tool name your environment exposes for the domscribe MCP server.
| Tool | Purpose |
|---|---|
domscribe.query.bySource | Get runtime context for a source location (file + line) |
domscribe.manifest.query | Find all manifest entries by file, component, or tag name |
domscribe.manifest.stats | Manifest coverage statistics (entry/file/component counts) |
| Tool | Purpose |
|---|---|
domscribe.resolve | Get source location for element ID |
domscribe.resolve.batch | Resolve multiple element IDs |
| Tool | Purpose |
|---|---|
domscribe.annotation.process | Claim next queued annotation (atomic) |
domscribe.annotation.respond | Store your implementation message |
domscribe.annotation.updateStatus | Mark as processed or failed |
domscribe.annotation.list | List annotations by status |
domscribe.annotation.get | Get full annotation details |
domscribe.annotation.search | Search by element, file, or text |
| Tool | Purpose |
|---|---|
domscribe.status | Relay health, manifest, queue counts |
domscribe.query.bySourceWhen you're working in a source file and want to understand what an element looks like at runtime, query by file path and line number:
Input:
file (required): Absolute file path as stored in the manifest. Use domscribe.manifest.query to discover exact paths.line (required): Line number (1-indexed).tolerance (optional): Match elements within N lines of the target (default: 0, exact match).column (optional): Narrow to a specific column (0-indexed).includeRuntime (optional): Skip the browser query if you only need manifest data (default: true).Output:
sourceLocation: Confirmed file, line range, tag name, component name.runtime: Live data from the browser (if connected) — componentProps, componentState, domSnapshot (tag, attributes, innerText).browserConnected: Whether a browser client is connected via WebSocket.Use domscribe.manifest.query first if you don't know the exact line — it returns all entries for a file, component, or tag, which you can then target with domscribe.query.bySource.
queued → processing → processed
↘ failed (with errorDetails)
any status → archivederrorDetails)Claim an annotation via domscribe.annotation.process
Understand the response:
userIntent: What the user wants (e.g., "Make this button red")sourceLocation.file: Source file pathsourceLocation.line: Line numbersourceLocation.componentName: React/Vue component nameelement.innerText: Visible text (verify correct element)runtimeContext.componentProps: Current prop valuesNavigate to sourceLocation.file:sourceLocation.line
Implement the change based on userIntent
Verify via domscribe.query.bySource — call with the same file and line to confirm your changes are reflected in the live browser (HMR will have updated the page)
Store your response via domscribe.annotation.respond with the annotation ID and a message describing what you did
Complete the annotation via domscribe.annotation.updateStatus with status processed (or failed with errorDetails)
| Situation | Action |
|---|---|
found: false | No match — queue empty or no manifest entry |
browserConnected: false | Runtime data unavailable; manifest data still returned |
| Source file missing | Mark failed with details |
| Ambiguous intent | Ask user for clarification before implementing |
| Partial success | Mark processed, note limitations in response |
| Cannot implement | Mark failed with errorDetails explaining why |
userIntent carefully — it's the user's actual wordsdomscribe.query.bySource to verify runtime state before and after changeselement.innerText to confirm you're changing the right elementruntimeContext to understand current component statedomscribe.annotation.responddomscribe.annotation.search to check for related prior work© patchorbit, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in skills/domscribe of patchorbit/domscribe.
Open the folder on GitHubat commit accfd5c
Domscribe 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 |
|---|---|---|---|---|---|---|
| Domscribe this skillpatchorbit/domscribe | 193 | — | ~3.3k | Automated safety check: Notes | MIT | |
| Databuddydatabuddy-analytics/Databuddy | 1.2k | — | ~2.1k | Automated safety check: Pass | AGPL-3.0 | |
| Create MCP Appsammcj/agentic-coding | 162 | — | ~3k | Automated safety check: Pass | Apache-2.0 | |
| Scaffold ProjectMarve10s/Better-Fullstack | 752 | — | ~716 | Automated safety check: Pass | MIT | |
| Chat Apps UI SDKpproenca/dot-skills | 214 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Frontend Build Timing Auditopenops-cloud/openops | 1.1k | — | ~2.3k | Automated safety check: Pass | Custom licence |
databuddy-analytics/Databuddy
Integrate Databuddy analytics using the SDK, REST API, or MCP.
sammcj/agentic-coding
This skill should be used when the user asks to "create an MCP App", "add a UI to an MCP tool", "build an interactive MCP View", or needs guidance on MCP Apps SDK patterns, UI-resource registration…
Marve10s/Better-Fullstack
Scaffold a new app, API, backend, fullstack project, mobile app, polyglot service, monorepo, or starter with Better Fullstack.
pproenca/dot-skills
Interactive UI rendered inside ChatGPT or Claude — OpenAI Apps SDK apps, MCP Apps (the @modelcontextprotocol/ext-apps standard), or MCP-UI components, with a Next.js/React server.
openops-cloud/openops
Detects and diagnoses chunk-evaluation timing bugs in the Vite/rolldown production build of react-ui (works-in-dev / broken-in-build i18n regressions, missing UI labels, module-scope t()…
alpic-ai/skybridge
Guide developers through creating and updating ChatGPT plugins.
Categories
Work with Domscribe — the pixel-to-code bridge. An agent skill from patchorbit/domscribe. Domscribe is an agent skill from patchorbit/domscribe. Work with Domscribe — the pixel-to-code bridge.
Domscribe fits situations like: configuring Domscribe for a project; modifying UI components (React; implementing features from captured UI annotations; querying runtime context for source locations.
Run `npx skills add patchorbit/domscribe --skill domscribe -a claude-code`. Or copy the skill folder (skills/domscribe in patchorbit/domscribe) into .claude/skills/domscribe in your project. Claude Code loads it when a task matches its description.
Run `npx skills add patchorbit/domscribe --skill domscribe -a codex`. Or copy the skill folder (skills/domscribe in patchorbit/domscribe) into .agents/skills/domscribe 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 patchorbit/domscribe --skill domscribe -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/domscribe, .gemini/skills/domscribe, .github/skills/domscribe and .opencode/skills/domscribe in your project.
Going by SKILL.md and its folder, Domscribe needs the command-line tools its instructions call (pnpm and npm). Our summary lists: Node.js. Its frontmatter pre-approves these tools: Read, Edit, Write, Bash, Glob, mcp__domscribe__*, domscribe.*, mcp.domscribe.*, process_next, check_status, explore_component, find_annotations.
SKILL.md contains no URLs. Its commands use npm, 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 notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Domscribe is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.4k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Domscribe: Databuddy (databuddy-analytics/Databuddy, 1.2k stars), Create MCP App (sammcj/agentic-coding, 162 stars), Scaffold Project (Marve10s/Better-Fullstack, 752 stars) and Chat Apps UI SDK (pproenca/dot-skills, 214 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
patchorbit (a GitHub organization) maintains it in patchorbit/domscribe, which has 193 GitHub stars. The repository was last updated on August 9, 2026.
Source: patchorbit/domscribe on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.