Hook Development for Claude Code Plugins
anthropics/claude-plugins-official
Explains how to write Claude Code plugin hooks, both prompt-based checks and bash commands, for events such as PreToolUse, Stop and SessionStart.
Install the LibreUIUX-Claude-Code plugin pack the way a user does, into a clean Claude Code config and a clean Grok Build home, prove every plugin validates, installs and loads its components, and…
$ npx skills add HermeticOrmus/LibreUIUX-Claude-Code --skill verify-libreuiux -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install HermeticOrmus/LibreUIUX-Claude-Code verify-libreuiux --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/HermeticOrmus/LibreUIUX-Claude-Code.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.grok/skills/verify-libreuiux .claude/skills/verify-libreuiux && 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 "verify-libreuiux" agent skill from https://github.com/HermeticOrmus/LibreUIUX-Claude-Code/tree/main/.grok/skills/verify-libreuiux into .claude/skills/verify-libreuiux/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verify-libreuiux", 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/HermeticOrmus/LibreUIUX-Claude-Code/tree/main/.grok/skills/verify-libreuiuxType 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 HermeticOrmus/LibreUIUX-Claude-Code --skill verify-libreuiux -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install HermeticOrmus/LibreUIUX-Claude-Code verify-libreuiux --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HermeticOrmus/LibreUIUX-Claude-Code.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.grok/skills/verify-libreuiux .agents/skills/verify-libreuiux && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "verify-libreuiux" agent skill from https://github.com/HermeticOrmus/LibreUIUX-Claude-Code/tree/main/.grok/skills/verify-libreuiux into .agents/skills/verify-libreuiux/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verify-libreuiux", 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 HermeticOrmus/LibreUIUX-Claude-Code --skill verify-libreuiux -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install HermeticOrmus/LibreUIUX-Claude-Code verify-libreuiux --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HermeticOrmus/LibreUIUX-Claude-Code.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.grok/skills/verify-libreuiux .cursor/skills/verify-libreuiux && 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 "verify-libreuiux" agent skill from https://github.com/HermeticOrmus/LibreUIUX-Claude-Code/tree/main/.grok/skills/verify-libreuiux into .cursor/skills/verify-libreuiux/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verify-libreuiux", 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/HermeticOrmus/LibreUIUX-Claude-Code.git --path .grok/skills/verify-libreuiux--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 HermeticOrmus/LibreUIUX-Claude-Code --skill verify-libreuiux -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install HermeticOrmus/LibreUIUX-Claude-Code verify-libreuiux --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HermeticOrmus/LibreUIUX-Claude-Code.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.grok/skills/verify-libreuiux .gemini/skills/verify-libreuiux && 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 "verify-libreuiux" agent skill from https://github.com/HermeticOrmus/LibreUIUX-Claude-Code/tree/main/.grok/skills/verify-libreuiux into .gemini/skills/verify-libreuiux/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verify-libreuiux", 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 HermeticOrmus/LibreUIUX-Claude-Code verify-libreuiuxInstalls 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 HermeticOrmus/LibreUIUX-Claude-Code --skill verify-libreuiux -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/HermeticOrmus/LibreUIUX-Claude-Code.git skills-src && mkdir -p .github/skills && cp -r skills-src/.grok/skills/verify-libreuiux .github/skills/verify-libreuiux && 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 "verify-libreuiux" agent skill from https://github.com/HermeticOrmus/LibreUIUX-Claude-Code/tree/main/.grok/skills/verify-libreuiux into .github/skills/verify-libreuiux/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verify-libreuiux", 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 HermeticOrmus/LibreUIUX-Claude-Code --skill verify-libreuiux -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install HermeticOrmus/LibreUIUX-Claude-Code verify-libreuiux --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HermeticOrmus/LibreUIUX-Claude-Code.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.grok/skills/verify-libreuiux .opencode/skills/verify-libreuiux && 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 "verify-libreuiux" agent skill from https://github.com/HermeticOrmus/LibreUIUX-Claude-Code/tree/main/.grok/skills/verify-libreuiux into .opencode/skills/verify-libreuiux/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verify-libreuiux", 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.
verify-libreuiuxInstall the LibreUIUX-Claude-Code plugin pack the way a user does, into a clean Claude Code config and a clean Grok Build home, prove every plugin validates, installs and loads its components, and…
Verify Libreuiux is an agent skill from HermeticOrmus/LibreUIUX-Claude-Code. Install the LibreUIUX-Claude-Code plugin pack the way a user does, into a clean Claude Code config and a clean Grok Build home, prove every plugin validates, installs and loads its components, and keep the transcripts. Use when proving a LibreUIUX-Claude-Code PR's Done-when, checking that a plugin change still installs in both CLIs, or reproducing an install bug.
Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files (for example `features/README.md`, `features/install-claude-code.md` and `features/install-grok-build.md`).
The repository describes itself as: UI/UX system for Claude Code: 71 plugins, 93 agents, 74 skills. Design mastery, archetypal design, accessibility, and frontend workflows in one validated plugin marketplace. The licence is MIT.
Read from SKILL.md and the folder at commit 41a968c. 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:
claudepython3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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.
Verify Libreuiux loads about 1.5k tokens when it runs. Until then it costs about 96 tokens; SKILL.md has 652 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 HermeticOrmus/LibreUIUX-Claude-Code at commit 41a968c, republished under its MIT licence (© HermeticOrmus). 652 words, ~1,482 tokens.
.claude/skills/verify-libreuiux/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.LibreUIUX-Claude-Code is a plugin library, not a running app: 71 plugins under plugins/, published as the libreuiux marketplace. Its user surface is the install. A user adds this repo as a plugin marketplace in Claude Code or Grok Build, installs plugins from it (or runs ./setup.sh from a clone), and then uses the skills, commands, agents and hooks those plugins bring. This skill drives that path in throwaway configs, so a proof never touches your own Claude Code config or Grok home.
Helper (executable, bash; needs claude, grok, jq and git): .grok/skills/verify-libreuiux/bin/control-libreuiux
B=.grok/skills/verify-libreuiux/bin/control-libreuiux
$B --help
$B doctor # worth driving? CLIs, head, manifests in sync
$B run # every plugins, both CLIs, prove each loaded; one JSON result
$B run --only design-mastery # the same for the plugins a change touched
$B run --pr 12 --expect <sha> # the same on a PR head, fetched into a scratch clone
$B install --claude --only design-mastery # a fresh run that keeps its clean config for the next steps
$B details design-mastery # component inventory in the latest run (both CLIs)
$B setup --list # ./setup.sh inside the latest run's clean configs
$B check # scripts/check.sh, the repo's one check command
$B cleanup # drop every run's scratch; the evidence staysJSON on stdout, progress on stderr, exit 1 on any failed proof. Everything the helper writes lives under VERIFY_LIBREUIUX_HOME (default ~/.local/share/verify-libreuiux): runs/<stamp>-<head8>/ (or <stamp>-pr<N>-<head8>) holds scratch/ and evidence/, and runs/latest points at the newest run.
CLAUDE_CONFIG_DIR) and an empty Grok home (GROK_HOME), both under scratch/.--pr N it is a scratch clone of refs/pull/N/head fetched from origin, and --expect <sha> refuses any other head.libreuiux marketplace and installs <plugin>@libreuiux. Grok adds the checkout as a marketplace named after its folder, then installs <plugin>@<folder>.evidence/claude-marketplace-add.log and evidence/grok-marketplace-add.log (or grok-install.log) end in exit 0.run removes its own scratch when it finishes. After install, run cleanup when you are done with details and setup.$B doctorclaude, grok: the CLI versions on PATH. Empty means that CLI is missing.marketplace, claude_plugins, grok_plugins: what the manifests in this checkout declare (grok_plugins is null when the repo root is the plugin).grok_manifest_in_sync: python3 scripts/sync-grok-manifest.py --check passes.head, dirty: the commit under test, and whether the checkout has uncommitted changes. A dirty tree is reported, not refused; say so in the proof.worth_driving: false means stop and fix the reported field first.Match the change to a feature in features/README.md and drive every entry point that feature file lists. run is the whole install path at once: it adds the marketplace in both CLIs, installs the selected plugins, reads back claude plugin list --json and grok plugin list --json, and writes each plugin's component inventory from claude plugin details and grok plugin details. result.json reports per CLI what was wanted, what is enabled or installed, what is missing, and any Claude Code load errors. ok is true only when nothing is missing and nothing failed to load.
For a change to one plugin, run --only <plugin> is the proof; for a change to the manifests, setup.sh or anything shared, run with no --only.
evidence/<step>.log for every command: the command line, its output and exit N.evidence/claude-list.json and evidence/grok-list.json: what the clean configs hold after the install.evidence/details-claude-<plugin>.txt and evidence/details-grok-<plugin>.txt: the skills, commands, agents and hooks each plugin brings.evidence/result.json: the verdict fields above, with the head and PR it ran on.Proof standards: drive the real user path (add the marketplace, then install), never copy files into a plugins folder. Capture the action and the resulting state: the install log and the list and details read back from the clean config. A green scripts/check.sh is the repo's check, not the proof of a Done-when that names a user path: drive that path too. When a Done-when names a command a plugin brings, show that the command is in the plugin's details.
$B cleanupRemoves scratch/ (the clean configs and any PR clone) from every run, and nothing else. It never touches your own Claude Code config or Grok home, because no command here ran with them. The evidence stays under runs/ until you delete it.
bin/control-libreuiux: the commands above. --help prints them.scripts/check.sh (repo root): the one check command CI runs on every pull request and on push to main.scripts/check.sh validates every plugin with --strict.© HermeticOrmus, 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 6 other files in .grok/skills/verify-libreuiux of HermeticOrmus/LibreUIUX-Claude-Code.
Open the folder on GitHubat commit 41a968c
Verify Libreuiux 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 |
|---|---|---|---|---|---|---|
| Verify Libreuiux this skillHermeticOrmus/LibreUIUX-Claude-Code | 112 | — | ~1.5k | Automated safety check: Pass | MIT | |
| Hook Development for Claude Code Pluginsanthropics/claude-plugins-official | 38k | 10 repos | ~4.1k | Automated safety check: Notes | Apache-2.0 | |
| Claude Code Agent Developmentanthropics/claude-plugins-official | 38k | 7 repos | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| Claude Code Skill Developer Guidediet103/claude-code-infrastructure-showcase | 10k | 11 repos | ~3.5k | Automated safety check: Pass | MIT | |
| Plugin Settings Patternanthropics/claude-plugins-official | 38k | 7 repos | ~3k | Automated safety check: Pass | Apache-2.0 | |
| MCP Integration for Pluginsanthropics/claude-plugins-official | 38k | 11 repos | ~3.1k | Automated safety check: Pass | Apache-2.0 |
anthropics/claude-plugins-official
Explains how to write Claude Code plugin hooks, both prompt-based checks and bash commands, for events such as PreToolUse, Stop and SessionStart.
anthropics/claude-plugins-official
Explains how to write agents for Claude Code plugins: the markdown file with YAML frontmatter, trigger descriptions, model and color settings, and system prompt design.
diet103/claude-code-infrastructure-showcase
A guide to creating and managing Claude Code skills with auto-activation: skill-rules.json triggers, hooks, enforcement levels, YAML frontmatter and progressive disclosure.
anthropics/claude-plugins-official
Shows how Claude Code plugins keep per-project settings and state in .claude/plugin-name.local.md files with YAML frontmatter and a markdown body.
anthropics/claude-plugins-official
Explains how to bundle Model Context Protocol servers in a Claude Code plugin, covering config files, stdio, SSE, HTTP and WebSocket server types, and authentication.
fossasia/eventyay-interpretation
Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute.
HermeticOrmus/LibreUIUX-Claude-Code
Design multi-stage CI/CD pipelines with approval gates, security checks, and deployment orchestration.
HermeticOrmus/LibreUIUX-Claude-Code
Design multi-cloud architectures using a decision framework to select and integrate services across AWS, Azure, and GCP.
HermeticOrmus/LibreUIUX-Claude-Code
Rules and worked examples for combining an archetype (structure and behavior) with a Major Arcana card (color and mood) into one coherent design system.
HermeticOrmus/LibreUIUX-Claude-Code
Design LLM applications using the LangChain framework with agents, memory, and tool integration patterns.
HermeticOrmus/LibreUIUX-Claude-Code
Brand identity building blocks: positioning, personality, archetypes, logo systems, color palettes, type pairing, voice, and guidelines documentation.
HermeticOrmus/LibreUIUX-Claude-Code
Core visual design principles (visual hierarchy, Gestalt grouping, composition, balance, contrast, white space, color, typography) with UI fixes, a checklist, and deep-dive references.
Install the LibreUIUX-Claude-Code plugin pack the way a user does, into a clean Claude Code config and a clean Grok Build home, prove every plugin validates, installs and loads its components, and…. Verify Libreuiux is an agent skill from HermeticOrmus/LibreUIUX-Claude-Code. Install the LibreUIUX-Claude-Code plugin pack the way a user does, into a clean Claude Code config and a clean Grok Build home, prove every plugin validates, installs and loads its components, and keep the transcripts.
Verify Libreuiux fits situations like: proving a LibreUIUX-Claude-Code PRs Done-when; checking that a plugin change still installs in both CLIs; reproducing an install bug.
Run `npx skills add HermeticOrmus/LibreUIUX-Claude-Code --skill verify-libreuiux -a claude-code`. Or copy the skill folder (.grok/skills/verify-libreuiux in HermeticOrmus/LibreUIUX-Claude-Code) into .claude/skills/verify-libreuiux in your project. Claude Code loads it when a task matches its description.
Run `npx skills add HermeticOrmus/LibreUIUX-Claude-Code --skill verify-libreuiux -a codex`. Or copy the skill folder (.grok/skills/verify-libreuiux in HermeticOrmus/LibreUIUX-Claude-Code) into .agents/skills/verify-libreuiux 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 HermeticOrmus/LibreUIUX-Claude-Code --skill verify-libreuiux -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/verify-libreuiux, .gemini/skills/verify-libreuiux, .github/skills/verify-libreuiux and .opencode/skills/verify-libreuiux in your project.
Going by SKILL.md and its folder, Verify Libreuiux needs the command-line tools its instructions call (claude and python3). Our summary lists: Python 3.
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.
Verify Libreuiux 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.5k tokens (SKILL.md is roughly 5.9k 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 Verify Libreuiux: Hook Development for Claude Code Plugins (anthropics/claude-plugins-official, 38k stars), Claude Code Agent Development (anthropics/claude-plugins-official, 38k stars), Claude Code Skill Developer Guide (diet103/claude-code-infrastructure-showcase, 10k stars) and Plugin Settings Pattern (anthropics/claude-plugins-official, 38k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
HermeticOrmus (a GitHub user) maintains it in HermeticOrmus/LibreUIUX-Claude-Code, which has 112 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 4, 2026.
Source: HermeticOrmus/LibreUIUX-Claude-Code on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.