Workos Widgets
usenotra/notra
A skill your agent uses when the user is implementing, embedding, or debugging a WorkOS Widget — specifically the User Management, User Profile, Admin Portal SSO Connection, or Admin Portal Domain…
Writing, editing, and rendering Slab documents (.slab) — the declarative design language for app screens, posters, terminal UIs, and interactive components.
$ npx skills add stencil-hq/slab --skill slab -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install stencil-hq/slab slab --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/stencil-hq/slab.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skill .claude/skills/slab && 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 "slab" agent skill from https://github.com/stencil-hq/slab/tree/main/skill into .claude/skills/slab/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slab", 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/stencil-hq/slab/tree/main/skillType 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 stencil-hq/slab --skill slab -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install stencil-hq/slab slab --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/stencil-hq/slab.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skill .agents/skills/slab && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "slab" agent skill from https://github.com/stencil-hq/slab/tree/main/skill into .agents/skills/slab/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slab", 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 stencil-hq/slab --skill slab -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install stencil-hq/slab slab --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/stencil-hq/slab.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skill .cursor/skills/slab && 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 "slab" agent skill from https://github.com/stencil-hq/slab/tree/main/skill into .cursor/skills/slab/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slab", 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/stencil-hq/slab.git --path skill--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 stencil-hq/slab --skill slab -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install stencil-hq/slab slab --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/stencil-hq/slab.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skill .gemini/skills/slab && 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 "slab" agent skill from https://github.com/stencil-hq/slab/tree/main/skill into .gemini/skills/slab/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slab", 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 stencil-hq/slab slabInstalls 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 stencil-hq/slab --skill slab -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/stencil-hq/slab.git skills-src && mkdir -p .github/skills && cp -r skills-src/skill .github/skills/slab && 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 "slab" agent skill from https://github.com/stencil-hq/slab/tree/main/skill into .github/skills/slab/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slab", 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 stencil-hq/slab --skill slab -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install stencil-hq/slab slab --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/stencil-hq/slab.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skill .opencode/skills/slab && 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 "slab" agent skill from https://github.com/stencil-hq/slab/tree/main/skill into .opencode/skills/slab/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slab", 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.
slabWriting, editing, and rendering Slab documents (.slab) — the declarative design language for app screens, posters, terminal UIs, and interactive components.
Slab is an agent skill from stencil-hq/slab. Writing, editing, and rendering Slab documents (.slab) — the declarative design language for app screens, posters, terminal UIs, and interactive components. Use when authoring or modifying .slab files, rendering via the slab CLI (bunx @stencil-hq/slab or slab-cli: svg/png/apng/tui), bundling via Vite/Bun plugins (@stencil-hq/slab/vite, @stencil-hq/slab/bun), embedding via generated web components (slab gen wc), typed React components (slab gen react), typed Rust modules (slab gen rust), typed Go modules (slab gen…
Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/hosts.md`, `references/language.md` and `references/rendering.md`).
It sits in Frontend & Design, covering React components and Embeddings. It works with Rust, React, Vite and Go. The repository describes itself as: A design language for agents. The licence is MIT.
12 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 6574737. 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:
bunxcargobunFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
stencil-hq.github.ioFrom 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.
Slab loads about 3.1k tokens when it runs, and up to ~36k if it reads all its reference files. Until then it costs about 209 tokens; SKILL.md has 1,376 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 stencil-hq/slab at commit 6574737, republished under its MIT licence (© stencil-hq). 1,376 words, ~3,079 tokens.
.claude/skills/slab/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.A declarative language for designed surfaces that renders faithfully to web,
GPU, TUI, SVG, and PNG from one source. One pipeline: the Rust compiler
(slab-compile) lowers .slab text to SLIR (protobuf + Snappy binary IR);
one Rust kernel (slab-kernel) owns layout, motion, hit testing, focus,
editing, and dispatch on every platform (natively linked, or via WASM in
browsers). Thin drivers paint frames, forward events, and expose the retained
semantic scene through platform accessibility adapters. spec/SPEC.md is
normative; conformance/ is executable (native and WASM match goldens byte
for byte). Hosts never parse .slab and never do layout.
The whole layout model in one sentence:
Every node is a box. Every box receives constraints (min/max width and height), returns a size, and its parent places it. Containers differ only in how they place children.
No margins, no selectors/cascade, no z-index, no absolute positioning, no
display property. Paint order is tree order; overlap requires an explicit
opt-in container (stack, canvas, offset). Mistakes become diagnostics,
not silent overlap.
tokens {
color { bg #0e1116; ink #e6edf3; accent oklch(72% 0.16 250) }
text { title { size 18; weight 650 } }
}
def Chip(label, tone=color.accent) {
row pad=4,10 gap=6 radius=999 stroke=tone align=center w=hug {
rect w=6 h=6 radius=3 bg=tone
text label size=12 color=tone nowrap
}
}
col#card w=360 pad=24 gap=12 bg=color.bg radius=12 {
text "Pale Green Things" style=text.title color=color.ink
row gap=8 align=center {
Chip label="FLAC"
spacer
text "4:12" size=12 color=color.ink
}
}Render (no Rust toolchain needed; the compiler ships as WASM in the npm CLI):
bunx @stencil-hq/slab render doc.slab -o out.png --width 800
bunx @stencil-hq/slab check doc.slab # ALWAYS run after editingOutput kind infers from the extension (.svg .png .apng .txt); --client tui
with no -o prints cells to stdout. check validates the main document and
each export definition through its standalone path. Code generators produce
typed web components (slab gen wc), React wrappers (slab gen react),
Rust modules (slab gen rust), or Go modules (slab gen go). In this repo
the native CLI is
cargo run -p slab-cli -- (adds fmt, conformance, lsp, and
--font).
Fresh releases: bun's minimum-release-age gate blocks packages younger than
24h (… blocked by minimum-release-age). Fix: add [install] minimumReleaseAge = 0 to a project bunfig.toml. bunx ignores a cwd
bunfig — use bun add @stencil-hq/slab then ./node_modules/.bin/slab.
row col wrap grid stack canvas para group — stack
(layers) and canvas (at=x,y) are the ONLY overlap opt-ins.text, span (inside para), rect, img, path
(canvas only), icon, divider, spacer, and hole.w=240 (request) | hug | fill / fill:2 | 40%min-w max-w min-h max-h. Defaults: main = hug; cross = stretch
for containers and rect, hug for other leaves; inside stack/canvas
everything hugs.bg stroke stroke-w stroke-align stroke-sides stroke-dash radius smooth shadow blur backdrop backdrop-mask grain mask opacity color family size weight leading tracking strike italic underline code-color code-bg style= align-text rotate scale tilt fit pad gap animate transition scrollbar scrollbar-w scrollbar-fg scrollbar-bg — closed set, nothing
else. current is icon-declaration paint, not a general color token.clip bleed scroll nowrap ellipsis inert focusable multiline drag-ghost; use drag-ghost only with drag=, and use
scroll=cross|both, sticky, and each … virtual item-extent=N only in
their documented contexts.key=, signal binders (act=, pointer/drag lifecycle,
field/submit, resize), keys=, a11y metadata/state/relation/value attrs,
and overlay placement attach= gravity= collide=.when hover|dragging|drop|tui|dark|w<600|prop|theme(name) { … } patches its node with attrs/children. Binders on the patched node are
statically registered, active only while the condition holds, and stop
contributing focus/hit behavior when false.def Name(params) { body }, Capitalized calls,
children splice at slot, and export defs become standalone documents
and recursive list(Def) schemas. each param.rows consumes a root list;
nested templates use each child_prop. Macro expansion has no arithmetic.fill is a SIZE keyword, never a color — backgrounds use bg=.align= positions a node's CHILDREN; to position the node in its parent
use self= (stack children: self=bottom-end offset=4,-4).% needs a determinate parent axis; against hug it degrades to hug with
pct-unbounded. Progress bars live inside fill/fixed tracks.\;
indentation alone does not continue it.color.accent, never accent).u (1u = 1px on web/svg). Durations are plain ms.shadow=0,2,6,#0004); layered shadows must be a list
of presets/token refs (shadow=shadow.crisp,shadow.lift).pad=16,8+ inside borders. Set the full
triplet when tui { family="mono" size=13.333 leading=1.2 }: the
600/1000em mono advance becomes exactly 8u (one column) and the line box
13.333 × 1.2 = 16u (one row). The default leading 1.4 yields 18.67u lines,
so any stacked text column drifts off the 16u row grid.rotate (±90/270) participates in layout; any other angle is
ink-only. TUI skips rotated subtrees.list(Def) + each, including recursive child
lists. Give items stable keys; path-address nested lists by index/field.
Use kernel virtualization only for a uniform-height top-level each.squeeze = fixed size clamped, clipped
= content truncated, and glyph-missing = static text is absent from its
resolved embedded family. Fix the named source; never silence by guessing
coordinates. cap-* names a declared client degradation.spec/SPEC.md as normative and spec/FRAME.md as the exact host
ABI. Skill references are procedural guidance, not replacement specs.list(Def) plus nested each child_prop for trees and
grouped rows. Add virtual item-extent=N only to a direct root-list each
under a main-axis scrolling row/col; use revealItem for navigation.para { each param.runs } for host-supplied rich text; make the run
schema body exactly one span.field= text nodes for editing: the kernel owns caret, selection,
wrapping, IME, and bounded undo. Rich text keeps five inline span sets
(bold/italic/underline/strike/code) beside the string via the field-runs
API; toggle styles over the selection; code-color/code-bg paint code
runs. For a block editor keep one field per block: Shift-click forms a
cross-field range, edits arrive as one pre-mutation range_edit request,
and structural undo uses the snapshot/commit/restore field transaction.path d=param.route (inside canvas) for runtime geometry. Declare
reusable static icon assets at top level and tint them through current.img src=param.name plus host image registration for runtime pixels;
do not encode changing image data into document params.press/context/dblclick for gesture starts, pointer-move/pointer-up
for routed raw motion/releases, and drag/drag-update/drag-end/drop for a
complete drag lifecycle. Consume every signal's typed SignalMeta; add
drag-ghost when the kernel should paint the moving source duplicate.
Use act= for ordinary keyboard-and-pointer activation.scroll=cross|both for two-axis overflow, sticky only on direct
main-scroll children, and keyed reveal instead of host-computed offsets.divider between two panes; let it own pointer/keyboard resizing.
Supply initial/restored extents through the keyed API, not bespoke dragging.attach=param.anchor on a stack/canvas child for popovers. Feed a
signal's full meta.key back as the anchor; keep dismissal/focus policy in
the host.current paint,
layered/inset shadows, glass, blur, stroke geometry, transforms,
interaction states/drag ghosts, and motion. Read when styling effects,
icons, interactions, or animation.SignalMeta, generated web/Rust/Go bindings, the
exact clean-cutover Instance APIs, scroll/reveal/divider state, popovers,
rich-field runs and caret/range editing, host structural transactions, and
framework accessibility adapters. Read when building an interactive or
data-driven app.When the repo is available, spec/SPEC.md is normative (spec/SLIR.md and
spec/FRAME.md for the machine interfaces) and examples/*.slab are quality
references — examples/10-settings.slab is the canonical interactive app
(params, signal buttons, kernel-edited field, hole);
examples/12-tracklist.slab shows list/each, themes, and scrollbars;
examples/01-settings.slab and 06-jcard.slab are the visual-quality bar
for static documents; bench/slate/doc/editor.slab is the block-editor
reference (one field per block, rich runs, cross-field ranges). Live
playground: https://stencil-hq.github.io/slab/
© stencil-hq, 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 4 other files (references) in skill of stencil-hq/slab.
Open the folder on GitHubat commit 6574737
Slab 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 |
|---|---|---|---|---|---|---|
| Slab this skillstencil-hq/slab | 112 | — | ~3.1k | Automated safety check: Pass | MIT | |
| Workos Widgetsusenotra/notra | 256 | — | ~2k | Automated safety check: Pass | AGPL-3.0 | |
| Web Artifacts Builderanthropics/skills | 180k | 41 repos | ~769 | Automated safety check: Pass | Apache-2.0 | |
| React Router Developmentremix-run/react-router | 57k | 1 repos | ~1.5k | Automated safety check: Pass | MIT | |
| Chakra UI v3 Builderchakra-ui/chakra-ui | 41k | — | ~3.1k | Automated safety check: Pass | MIT | |
| Creative Tim UI Blockscreativetimofficial/ui | 12k | — | ~2.1k | Automated safety check: Notes | MIT |
usenotra/notra
A skill your agent uses when the user is implementing, embedding, or debugging a WorkOS Widget — specifically the User Management, User Profile, Admin Portal SSO Connection, or Admin Portal Domain…
anthropics/skills
Builds multi-component claude.ai HTML artifacts as a small React, TypeScript and Tailwind project, then bundles it into one shareable HTML file.
remix-run/react-router
Guides work on React Router apps by first identifying whether the app uses Framework, Data or Declarative mode, then loading the matching reference and the installed package docs.
chakra-ui/chakra-ui
Builds responsive, accessible Chakra UI v3 components and layouts, sets up Chakra in new or existing projects, and designs themes with tokens, semantic tokens and recipes.
creativetimofficial/ui
Helps install, generate and review Creative Tim UI blocks: shadcn/ui-based React and Tailwind sections that follow a restrained, production-minded design philosophy.
southliu/south-admin-react
Generates a full CRUD page - page component, data model and API client - from the south-admin-react project's own VS Code snippet templates.
stencil-hq/slab
Run an exhaustive parallel dogfooding sweep for a library, language, SDK, or runtime: send three independent agents to build the same ambitious application on different supported platforms, drive…
Categories
Writing, editing, and rendering Slab documents (.slab) — the declarative design language for app screens, posters, terminal UIs, and interactive components. Slab is an agent skill from stencil-hq/slab.slab) — the declarative design language for app screens, posters, terminal UIs, and interactive components.
Slab fits situations like: modifying .slab files; rendering via the slab CLI (bunx @stencil-hq/slab; slab-cli: svg/png/apng/tui); bundling via Vite/Bun plugins (@stencil-hq/slab/vite.
Run `npx skills add stencil-hq/slab --skill slab -a claude-code`. Or copy the skill folder (skill in stencil-hq/slab) into .claude/skills/slab in your project. Claude Code loads it when a task matches its description.
Run `npx skills add stencil-hq/slab --skill slab -a codex`. Or copy the skill folder (skill in stencil-hq/slab) into .agents/skills/slab 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 stencil-hq/slab --skill slab -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/slab, .gemini/skills/slab, .github/skills/slab and .opencode/skills/slab in your project.
Going by SKILL.md and its folder, Slab needs the command-line tools its instructions call (bunx, cargo and bun).
SKILL.md names 1 domain. As links in the text: stencil-hq.github.io. 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.
Slab 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.1k tokens (SKILL.md is roughly 12k 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 33k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Slab: Workos Widgets (usenotra/notra, 256 stars), Web Artifacts Builder (anthropics/skills, 180k stars), React Router Development (remix-run/react-router, 57k stars) and Chakra UI v3 Builder (chakra-ui/chakra-ui, 41k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
stencil-hq (a GitHub organization) maintains it in stencil-hq/slab, which has 112 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on August 22, 2026.
Source: stencil-hq/slab on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.