@pierre/diffs Code Rendering
pierrecomputer/pierre
Guides an agent through using @pierre/diffs to render syntax-highlighted files and diffs, and to build editing and review surfaces in React or plain JavaScript.
Makes reproducible screenshots of Tabler components and screens for release notes, the website and social posts, using the repository's screenshots app.
$ npx skills add tabler/tabler --skill screenshots -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install tabler/tabler screenshots --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/tabler/tabler.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/screenshots .claude/skills/screenshots && 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 "screenshots" agent skill from https://github.com/tabler/tabler/tree/dev/.agents/skills/screenshots into .claude/skills/screenshots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "screenshots", 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/tabler/tabler/tree/dev/.agents/skills/screenshotsType 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 tabler/tabler --skill screenshots -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install tabler/tabler screenshots --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tabler/tabler.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/screenshots .agents/skills/screenshots && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "screenshots" agent skill from https://github.com/tabler/tabler/tree/dev/.agents/skills/screenshots into .agents/skills/screenshots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "screenshots", 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 tabler/tabler --skill screenshots -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install tabler/tabler screenshots --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tabler/tabler.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/screenshots .cursor/skills/screenshots && 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 "screenshots" agent skill from https://github.com/tabler/tabler/tree/dev/.agents/skills/screenshots into .cursor/skills/screenshots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "screenshots", 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/tabler/tabler.git --path .agents/skills/screenshots--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 tabler/tabler --skill screenshots -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install tabler/tabler screenshots --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tabler/tabler.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/screenshots .gemini/skills/screenshots && 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 "screenshots" agent skill from https://github.com/tabler/tabler/tree/dev/.agents/skills/screenshots into .gemini/skills/screenshots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "screenshots", 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 tabler/tabler screenshotsInstalls 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 tabler/tabler --skill screenshots -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/tabler/tabler.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/screenshots .github/skills/screenshots && 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 "screenshots" agent skill from https://github.com/tabler/tabler/tree/dev/.agents/skills/screenshots into .github/skills/screenshots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "screenshots", 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 tabler/tabler --skill screenshots -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install tabler/tabler screenshots --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tabler/tabler.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/screenshots .opencode/skills/screenshots && 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 "screenshots" agent skill from https://github.com/tabler/tabler/tree/dev/.agents/skills/screenshots into .opencode/skills/screenshots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "screenshots", 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.
screenshotsMakes reproducible screenshots of Tabler components and screens for release notes, the website and social posts, using the repository's screenshots app.
Each picture comes from an Astro page under screenshots/pages, so it can be retaken after any design change with the same framing, fonts and data. The agent picks one of two layouts: ScreenshotLayout, a 1024 by 768 card on a gradient with a logo, for a single component, or ScreenshotAppLayout, a 1708 by 1068 screen reduced to a 1280 pixel image, for whole app screens with sidebar and navbar.
Pages are built from the shared ui components with fixed data only, with no random values or moving dates. The capture only loads and shoots the page, never clicking, typing or hovering, so interactive states are written into the markup: filled inputs, hand-set active classes, and a fake cursor span placed with inline offsets. A still picture of a real state is acceptable, while faking a state the component cannot reach is not.
To preview a page, the skill runs pnpm run dev-screenshots on port 3020, which serves core assets emitted by an earlier dev run or build, and dark mode is checked with a theme query parameter. Finished PNGs land in screenshots/captures, which is not committed.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit dcacb65. 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:
pnpmturbonodeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pnpm, 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.
Tabler Screenshot Maker loads about 1.3k tokens when it runs. Until then it costs about 114 tokens; SKILL.md has 565 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 tabler/tabler at commit dcacb65, republished under its MIT licence (© tabler). 565 words, ~1,272 tokens.
.claude/skills/screenshots/SKILL.md (or your agent's skills folder).Every picture comes from a page in screenshots/pages/*.astro, so it can be made again after any
change, with the same framing, fonts and data. Finished PNGs land in screenshots/captures/,
which is not committed.
| Layout | Frame | For |
|---|---|---|
ScreenshotLayout | 1024×768 card on a gradient, logo at the bottom | one component or card |
ScreenshotAppLayout | 1708×1068 screen, reduced to a 1280 px picture | whole app screens: sidebar, navbar, theme panel |
ScreenshotLayout props: title, columns (caps the subject at columns * 310px), zoom,
pageLibs (third-party libs from libs.json, e.g. ['apexcharts']), cssPlugins, rtl,
showLogo, class.
Do not reach for zoom to fit more of a screen in — that is what ScreenshotAppLayout is for.
@ui components, exactly like a demo page. Fixed data only: no Math.random,
no dates that move. The picture has to be reproducible.CardTitle or CardSubtitle. They bring their own spacing.clipboard.astro gives clipboard.png.The capture loads the page and shoots it. It never types, clicks or hovers. A component that only looks interesting after an interaction has to be handed that state:
active and off by hand; the
clipboard page renders the copied row as a green check with no data-bs-toggle on it. A still
picture of a real state is honest; faking a state the component cannot reach is not.<span class="cursor" /> inside a position-relative parent. It
sits below and left by default, so on a small icon it covers the subject — nudge it with an
inline style="top: 90%; left: 70%".pnpm run dev-screenshots # port 3020; the root `pnpm run dev` leaves this app outIt serves the core assets a previous pnpm run dev or build emitted, so start those first if the
page renders unstyled. Check both colour modes with ?theme=dark.
pnpm --dir screenshots run capture # every page
pnpm --dir screenshots run capture clipboard # just these slugsFour files per page: <slug>.png, <slug>@2x.png, <slug>-dark.png, <slug>-dark@2x.png. Only
the @2x picture is rasterized; the 1x one is downscaled from it, which keeps hairlines and text
crisp.
The trap: capture runs turbo build first, and a build while a dev server is running breaks
the server's watchers. Stop the dev servers, or iterate with a throwaway Playwright script instead:
// screenshots/.build/_tmp.mjs — inside the repo, so `playwright` resolves; delete it after
import { chromium } from 'playwright'
const browser = await chromium.launch()
const page = await browser.newPage({ viewport: { width: 1708, height: 1068 }, deviceScaleFactor: 2 })
await page.goto('http://localhost:3020/<slug>?theme=light', { waitUntil: 'load' })
await page.waitForFunction(() => document.documentElement.dataset.screenshotReady === 'true')
await page.addStyleTag({ content: '[data-screenshot-chrome] { display: none !important; }' })
await page.locator('#screenshot').screenshot({ path: '/tmp/shot.png' })
await browser.close()Run it with node screenshots/.build/_tmp.mjs. A script outside the repo cannot resolve
playwright.
?theme=, not from localStorage.data-screenshot-chrome is hidden before the shot.data-screenshot-ready after two animation frames; the capture waits for it.pageLibs set when the scene needs a chart or a pluginpnpm --dir screenshots run type-check clean (astro check)© tabler, MIT. 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 .agents/skills/screenshots of tabler/tabler.
Open the folder on GitHubat commit dcacb65
Tabler Screenshot Maker 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 |
|---|---|---|---|---|---|---|
| Tabler Screenshot Maker this skilltabler/tabler | 42k | — | ~1.3k | Automated safety check: Pass | MIT | |
| @pierre/diffs Code Renderingpierrecomputer/pierre | 6.2k | 2 repos | ~803 | Automated safety check: Pass | Apache-2.0 | |
| Pierre Highlightspierrecomputer/pierre | 6.2k | — | ~409 | Automated safety check: Pass | Apache-2.0 | |
| Dsh Web UI Releaseningbainb/deepseek-harness-desktop | 776 | — | ~1.4k | Automated safety check: Warn | BSD-3-Clause | |
| Live UX PolishEveryInc/compound-engineering-plugin | 25k | — | ~777 | Automated safety check: Pass | MIT | |
| Vuetify Playgroundvuetifyjs/vuetify | 41k | — | ~730 | Automated safety check: Pass | Custom licence |
pierrecomputer/pierre
Guides an agent through using @pierre/diffs to render syntax-highlighted files and diffs, and to build editing and review surfaces in React or plain JavaScript.
pierrecomputer/pierre
Shows how to use @pierre/highlights for syntax-highlighted HTML or tokens, streaming and incremental tokenizing, and Zed-compatible themes with CSS variables.
ningbainb/deepseek-harness-desktop
Release and publish the dsh-web-ui monorepo (DSH Web GUI plugin family + skin collection) — bump all packages to one unified version, commit and tag, push the vX.Y.Z tag that triggers the GitHub…
EveryInc/compound-engineering-plugin
Collects your feedback on a running feature, typed or spoken and drawn in the browser, and turns it into focused UX fixes saved as local commits.
vuetifyjs/vuetify
Maintains the Vuetify repo's local Playground.vue so contributors get a realistic reproduction and a short demo they can paste into a pull request description.
pierrecomputer/pierre
Use when an app uses @pierre/trees to render or control a file tree, including React, vanilla JavaScript, SSR, web components, selection, search, rename, drag…
tabler/tabler
Starts the right Tabler dev server, keeps it from clashing with builds and verifies changes in the browser before a page or component is handed back.
tabler/tabler
Rules for adding or fixing client-side scripts in Tabler's Astro components so the copied preview HTML stays readable, self-contained and runs in the right order.
tabler/tabler
Sets the file structure, typing and Data API pattern for writing a new Bootstrap-style JavaScript component class in Tabler's vendored port of Bootstrap's JS.
tabler/tabler
Writes or updates the classnames front matter that renders the class table at the end of a Tabler component docs page.
tabler/tabler
Guidance for changing the Tabler framework's own JavaScript in core/js: the tabler.js and tabler-theme.js bundles, the Bootstrap port and their tests.
tabler/tabler
Rules for adding or changing styles in Tabler's core/scss framework: file placement, custom properties, dark mode, RTL, tests and build gates.
Categories
Makes reproducible screenshots of Tabler components and screens for release notes, the website and social posts, using the repository's screenshots app. Each picture comes from an Astro page under screenshots/pages, so it can be retaken after any design change with the same framing, fonts and data. The agent picks one of two layouts: ScreenshotLayout, a 1024 by 768 card on a gradient with a logo, for a single component, or ScreenshotAppLayout, a 1708 by 1068 screen reduced to a 1280 pixel image, for whole app screens with sidebar and navbar.
Tabler Screenshot Maker fits situations like: A new Tabler component needs a picture for release notes or the docs; an existing screenshot must be retaken after a design change; showing a hover or filled-in state that the capture cannot click; before editing anything under the screenshots folder.
Run `npx skills add tabler/tabler --skill screenshots -a claude-code`. Or copy the skill folder (.agents/skills/screenshots in tabler/tabler) into .claude/skills/screenshots in your project. Claude Code loads it when a task matches its description.
Run `npx skills add tabler/tabler --skill screenshots -a codex`. Or copy the skill folder (.agents/skills/screenshots in tabler/tabler) into .agents/skills/screenshots 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 tabler/tabler --skill screenshots -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/screenshots, .gemini/skills/screenshots, .github/skills/screenshots and .opencode/skills/screenshots in your project.
Going by SKILL.md and its folder, Tabler Screenshot Maker needs the command-line tools its instructions call (pnpm, turbo and node). Our summary lists: A Tabler checkout with pnpm installed; Core assets emitted by an earlier dev run or build.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Tabler Screenshot Maker is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.3k tokens (SKILL.md is roughly 5.1k 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 Tabler Screenshot Maker: @pierre/diffs Code Rendering (pierrecomputer/pierre, 6.2k stars), Pierre Highlights (pierrecomputer/pierre, 6.2k stars), Dsh Web UI Release (ningbainb/deepseek-harness-desktop, 776 stars) and Live UX Polish (EveryInc/compound-engineering-plugin, 25k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
tabler (a GitHub organization) maintains it in tabler/tabler, which has 41,821 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 6, 2026.
Source: tabler/tabler on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.