Agent skill

Niblet

by PyModel in PyModel/niblet-skill-mcp

Keep interface work anchored to the product it belongs to instead of a generic template.

Apache-2.0Auto-check passedFrontend & Design

Install Niblet

skills CLI
$ npx skills add PyModel/niblet-skill-mcp --skill niblet -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install PyModel/niblet-skill-mcp niblet --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/PyModel/niblet-skill-mcp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skill/niblet .claude/skills/niblet && rm -rf skills-src

Use ~/.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/

Facts

Skill name
niblet
GitHub stars
84
Token cost
~3k tokens
SKILL.md length
1,412 words
Files
8 (incl. references)
Skills in repo
1
Repo updated
First seen
Licence
Apache-2.0

At a glance

Keep interface work anchored to the product it belongs to instead of a generic template.

  • Works in 5 steps: Identify the requested surface, action,… → Select the surface mode below and write… → Read the command playbook for the… → …
  • Assessing a web
  • SKILL.md covers Start here, Four modes, Design contract and Slop checks, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Niblet is an agent skill from PyModel/niblet-skill-mcp. Keep interface work anchored to the product it belongs to instead of a generic template. Sets a short design contract, builds from the components and tokens already in the codebase, covers the states a surface can actually reach, and closes by looking at the rendered result. Use when building, reworking, or assessing a web or native interface. Trigger with "niblet", "niblet skill", "niblet designer ui", or "niblet review". Skip backend, CLI, data, and infrastructure work, prose-only tasks, and questions the…

Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 9 other files, including reference files (for example `agents/openai.yaml`, `references/commands.md` and `references/connection.md`).

It sits in Frontend & Design, covering Design systems and MCP servers. It works with Model Context Protocol. The repository describes itself as: MCP server and design skill that grounds coding-agent UI work in real product screens. Two tools, npx-installable. The licence is Apache-2.0.

When your agent uses it

  • Assessing a web
  • Native interface
  • Niblet designer ui

Example prompts

  • “niblet”
  • “niblet skill”
  • “niblet designer ui”
  • “/niblet”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Identify the requested surface, action, and scope. Read the product brief, relevant current screens, components, tokens, content, and…
  2. Select the surface mode below and write a compact design contract in the conversation or the existing surface brief. Ask only for a…
  3. Read the command playbook for the requested command. The local MCP adapter registers each entry as niblet-; a standalone filesystem…
  4. Work within the contract. Use existing components and tokens before introducing new ones. If a concrete visual question remains…
  5. Cover the applicable states and run the bounded finish gate. Report the delivered scope, evidence actually inspected, and any specific…

What it can do on your machine

Read from SKILL.md and the folder at commit 3a711eb. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • niblet.pymodel.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Niblet loads about 3k tokens when it runs, and up to ~13k if it reads all its reference files. Until then it costs about 141 tokens; SKILL.md has 1,412 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~141
When it runs · the whole SKILL.md, loaded when a task matches
~3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~13k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from PyModel/niblet-skill-mcp at commit 3a711eb, republished under its Apache-2.0 licence (© PyModel). 1,412 words, ~2,950 tokens.

Download SKILL.mdSave it as .claude/skills/niblet/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.
name
niblet
description
Keep interface work anchored to the product it belongs to instead of a generic template. Sets a short design contract, builds from the components and tokens already in the codebase, covers the states a surface can actually reach, and closes by looking at the rendered result. Use when building, reworking, or assessing a web or native interface. Trigger with "niblet", "niblet skill", "niblet designer ui", or "niblet review". Skip backend, CLI, data, and infrastructure work, prose-only tasks, and questions the product's own design system already settles.
license
Apache-2.0
metadata.version
0.5.2
metadata.author
Mohamed Elkholy (elkaix)
metadata.organization
PyModel
metadata.source
https://github.com/PyModel/niblet-skill-mcp
metadata.compatibility
Claude Code, Codex, Cursor, and GitHub Copilot, or any agent that can open repository files and call an MCP tool.
metadata.tags
interface-design, product-ui, design-contract, state-coverage, accessibility, native

Niblet

Build an interface that belongs to this product, not a generic template. Niblet is an optional reference catalogue; this skill also works entirely from local product evidence without an MCP connection, account, script, or browser automation.

Start here

  1. Identify the requested surface, action, and scope. Read the product brief, relevant current screens, components, tokens, content, and platform constraints. Inspect the repository directly; this skill has no setup script.
  2. Select the surface mode below and write a compact design contract in the conversation or the existing surface brief. Ask only for a consequential decision that the available product evidence cannot answer. Mark other assumptions.
  3. Read the command playbook for the requested command. The local MCP adapter registers each entry as niblet-<command>; a standalone filesystem installation invokes the same work instructions in ordinary language. For native work, also read native guidance.
  4. Work within the contract. Use existing components and tokens before introducing new ones. If a concrete visual question remains unresolved, follow the evidence policy; reference retrieval is optional, never a prerequisite to useful work.
  5. Cover the applicable states and run the bounded finish gate. Report the delivered scope, evidence actually inspected, and any specific verification limitation.

Routing: with no target or command, present a short context-aware menu and wait for a choice rather than making changes. An explicit command loads its playbook entry. Otherwise treat the request as ordinary design work. For a new surface or replacement visual world without product context, run init first; narrow refinements can proceed from the incumbent implementation. craft aliases ordinary new work; teach aliases init.

Authority order: the user's current requirements and product brief; established product behavior, content, components, and design system; native platform and accessibility constraints; this skill; external references. Aesthetic preferences never overrule product truth, accessibility, or functional requirements.

Four modes

Choose by the job of each surface, not the repository's category. Different surfaces in one product may use different modes. Persist the choice only in that surface's brief when persistence is requested; do not impose a project-wide mode.

ModeUser's jobDesign priorityCommon surfaces
PersuadeDecide and actMake the proposition, evidence, trade-offs, and next action understandableMarketing, pricing, acquisition
OperateComplete a taskLegible state, efficient controls, predictable navigation, and recoveryApps, dashboards, settings, native utilities
ReadUnderstandComprehension, typography, reading rhythm, navigation, and useful examplesDocumentation, articles, guides
ExperienceEngage with the work itselfLet the artifact lead; keep navigation and chrome subordinate but usablePortfolios, galleries, interactive work

Mode is a prioritization tool, not a visual preset. A pricing page still needs usable controls; a gallery still needs accessible navigation; an application can have character without obscuring its tasks.

Design contract

Keep this short enough to guide implementation. Record:

  • Surface and mode: route, component, or native screen; intended user; task and primary action.
  • Scope: new work, refinement, or redesign; files/flows in scope and explicit exclusions.
  • Product authority: brief, local components/tokens, content, and platform rules being followed.
  • Identity: the hierarchy, density, typography, color roles, imagery, and interaction character appropriate to this product. Identify one or two concrete distinguishing decisions, not a list of fashionable adjectives.
  • Reading order: rank what the user must understand first, second, and next; identify which supporting details can wait. Name the existing components and semantic tokens that express this hierarchy.
  • Behavior and states: critical interaction, applicable state matrix, responsive/native adaptations, accessibility requirements, and real data constraints.
  • Evidence and acceptance: any unresolved reference question; what a rendered result must visibly demonstrate; available device/browser and remaining limitations.

For refinement, preserve identity, behavior, copy, and out-of-scope areas unless the request expressly changes them. For redesign, replace the visual direction coherently while retaining product facts, required functionality, and native constraints. Neither scope authorizes unrelated feature work.

Slop checks

Make the product's task recognizable from the rendered screen, not just its logo. Apply these checks within the target product's established language:

  • Use real objects, labels, and content density. Metrics need a real source; empty states explain what is missing and what to do next. Do not fill a dashboard with invented activity.
  • Give the primary action a clear consequence and dominant position; subordinate secondary actions without hiding essential navigation.
  • Group content by the user's decision or workflow. A grid is appropriate for comparing screens or products, not a default container for unrelated facts.
  • Reuse semantic surface, text, border, action, and status tokens. Add a primitive only when existing components cannot express the task; record why in the contract. When a React product needs one it does not have, take the leanest library component that fits (components) and restyle it with the product's tokens rather than writing a generic one from memory.
  • Let useful content carry visual interest. New gradients, glow, glass, nested cards, oversized headings, and motion need a product or interaction purpose. Preserve established brand assets and effects during refinement rather than enforcing a universal ban.
  • Check the substitution test: if another product's name could replace this one without changing the content or structure, identify the missing product-specific decision and correct it.

For Niblet's own site, follow its current design contract and source components: Plus Jakarta Sans, ground/tile/sheet surfaces, ink/muted text, the blue accent, real screen tiles, and existing mascot assets. Do not import a reference site's font, palette, or button treatment. For other products, their own system takes precedence over these Niblet-specific choices.

Show full SKILL.md (521 more words)Show less

Required state coverage

For each changed interactive surface, determine which states can actually occur. Implement those in scope; identify deliberate exclusions rather than inventing meaningless variants.

  • Initial and populated content; loading or pending feedback when work is asynchronous.
  • Empty data and empty search/filter results, with an appropriate next step.
  • Validation and service errors, with retained input and a feasible recovery path.
  • Success, selected/active, disabled, and submitting states when the control supports them.
  • Keyboard focus and hover where applicable; touch feedback; labels and status announcements that do not depend on color alone.
  • Long text, larger text, narrow/wide layouts, overflowing lists, and representative content density.
  • Offline, permission denied, destructive confirmation/undo, and interrupted work when the flow can encounter them.

A control must perform its advertised action. Clearly label prototype-only behavior when the user requested a prototype; do not disguise missing implementation as a successful state.

Bounded rendered finish gate

Agree on acceptance in the contract, then inspect the actual surface rather than scoring its source code.

  1. Inspect once, batched. For web work, render the relevant desktop and mobile layouts together and exercise the changed primary interaction plus its most consequential alternate state. For native work, use the relevant device class and platform-specific checks in the native guidance. Inspect representative states already identified in the contract rather than every theoretical combination.
  2. Fix observed blockers. In one focused pass, correct clipping and overlap, a hierarchy that misleads, stretched or cropped imagery, controls an assistive user cannot reach, focus and navigation that break, layout that shifts under load, and actions that do nothing. Include interchangeable filler or unsupported metrics when they violate the contract. Keep corrections within scope.
  3. Confirm the corrections. Revisit affected states after fixes and report the observed result. Pass only when the contract is met. A verification limit is not a pass: report blocked or unexercised checks explicitly. Avoid open-ended cosmetic iteration, but do not stop with an actionable in-scope blocker merely because one pass elapsed.

Also check semantic controls, meaningful names, usable contrast, focus visibility, touch targets, reduced-motion behavior, and the relevant zoom/text-size behavior. A screenshot supports visual claims, not interaction or assistive-technology claims that were not exercised.

If rendering is unavailable, inspect the reachable implementation and report exactly what could not be rendered or exercised. A manual inspection checklist can support the handoff but does not turn an unobserved result into a rendered pass. Source checks or a successful build alone are not visual proof.

Optional connection and helpers

Read the connection guide when installing or invoking MCP tools, diagnosing a connection, or using host-dependent helpers. The local package exposes the three catalogue tools, local helpers, and the niblet://skill resources; the remote endpoint exposes exactly the same three catalogue tools. Pass the metadata.version value at the top of this file as clientSkillVersion on every catalogue call. Neither service implements UI review, hooks, element pinning, selector discovery, or live browser control.

The command playbook includes manual alternatives for live, hooks, doctor, and pin. State which host capability was actually used. Do not claim that a prompt created automation or that an MCP connection exists without an observed host result.

© PyModel, 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

Files

SKILL.md and 7 other files (references) in skill/niblet of PyModel/niblet-skill-mcp.

  • SKILL.md
  • LICENSE
  • NOTICE
  • agents/openai.yaml
  • references/commands.md
  • references/connection.md
  • references/evidence.md
  • references/native.md

Open the folder on GitHubat commit 3a711eb

Compare with similar skills

Niblet 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.

Niblet compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Niblet this skillPyModel/niblet-skill-mcp84—~3kAutomated safety check: PassApache-2.0
Fast Agent Designevalstate/fast-agent3.9k—~220Automated safety check: PassApache-2.0
Refero Designreferodesign/refero_skill295—~5.3kAutomated safety check: PassMIT
Better Designmarvkr/better-design254—~1.2kAutomated safety check: PassMIT
Igniteui Angular Generate From Image DesignIgniteUI/igniteui-angular599—~4.7kAutomated safety check: PassMIT
Extracting Design Systemnoemuch/bridge156—~1.8kAutomated safety check: PassMIT

Similar skills

  • Fast Agent Design

    evalstate/fast-agent

    A skill your agent uses to generate well-branded interfaces and assets for fast-agent, either for production or throwaway prototypes/mocks/etc.

    3.9k GitHub stars~220 tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Refero Design

    referodesign/refero_skill

    Primary/default skill for UI design, product design, web design, landing pages, dashboards, product screens, redesigns, visual polish, frontend/CSS styling, design systems, components, responsive…

    295 GitHub stars~5.3k tokensUpdated 1 mo ago
    Frontend & DesignAuto-check passed
  • Better Design

    marvkr/better-design

    Build, improve, and review production interfaces with the Better Design MCP.

    254 GitHub stars~1.2k tokensUpdated 16 days ago
    Frontend & DesignAuto-check passed
  • Implements Angular application views from design images using Ignite UI Angular components.

    599 GitHub stars~4.7k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • A skill your agent uses when the user says "setup", "setup bridge", "extract", "extract DS", "onboard", "build knowledge base", "initialize bridge", or is starting Bridge in a project for the first…

    156 GitHub stars~1.8k tokensUpdated 4 mo ago
    Frontend & DesignAuto-check passed
  • Design Data Agent

    adobe/spectrum-design-data

    Validate, query, resolve, diff, and author spec-conformant design tokens and components using the design-data MCP tools against a local dataset.

    155 GitHub stars~2k tokensUpdated 6 days ago
    Frontend & DesignAuto-check passed

Questions about Niblet

What does Niblet do?

Keep interface work anchored to the product it belongs to instead of a generic template. Niblet is an agent skill from PyModel/niblet-skill-mcp. Keep interface work anchored to the product it belongs to instead of a generic template.

When should I use Niblet?

Niblet fits situations like: assessing a web; native interface; niblet designer ui.

How do I install Niblet in Claude Code?

Run `npx skills add PyModel/niblet-skill-mcp --skill niblet -a claude-code`. Or copy the skill folder (skill/niblet in PyModel/niblet-skill-mcp) into .claude/skills/niblet in your project. Claude Code loads it when a task matches its description.

How do I install Niblet in Codex?

Run `npx skills add PyModel/niblet-skill-mcp --skill niblet -a codex`. Or copy the skill folder (skill/niblet in PyModel/niblet-skill-mcp) into .agents/skills/niblet in your project. Codex loads it when a task matches its description.

Can I use Niblet in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add PyModel/niblet-skill-mcp --skill niblet -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/niblet, .gemini/skills/niblet, .github/skills/niblet and .opencode/skills/niblet in your project.

What does Niblet need to run?

SKILL.md names no scripts, command-line tools or credentials: Niblet is instructions for the agent only.

Does Niblet access the network?

SKILL.md names 1 domain. As links in the text: niblet.pymodel.com. This is read from the text; nothing was executed.

Is Niblet safe to install?

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.

What licence does Niblet use?

Niblet is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Niblet use?

About 3k 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 9.7k tokens, read only when the agent opens those files.

What are the alternatives to Niblet?

Skills that share tags, products or a category with Niblet: Fast Agent Design (evalstate/fast-agent, 3.9k stars), Refero Design (referodesign/refero_skill, 295 stars), Better Design (marvkr/better-design, 254 stars) and Igniteui Angular Generate From Image Design (IgniteUI/igniteui-angular, 599 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Niblet?

PyModel (a GitHub organization) maintains it in PyModel/niblet-skill-mcp, which has 84 GitHub stars. The repository was last updated on October 7, 2026.

Source: PyModel/niblet-skill-mcp on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.