Agent skill

Imperative Modal API

by lobehub in lobehub/lobehub

Shows how to build modals, dialogs and confirmations in LobeHub with the base-ui imperative API (createModal, confirmModal, ModalHost) instead of declarative Modal components.

Custom licenceAuto-check passedFrontend & Design

Install Imperative Modal API

skills CLI
$ npx skills add lobehub/lobehub --skill modal -a claude-code

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

GitHub CLI
$ gh skill install lobehub/lobehub modal --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/lobehub/lobehub.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/modal .claude/skills/modal && 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
modal
GitHub stars
83k
Token cost
~1.3k tokens
SKILL.md length
382 words
Files
1
Skills in repo
50
Repo updated
First seen
Licence
Custom licence

At a glance

Shows how to build modals, dialogs and confirmations in LobeHub with the base-ui imperative API (createModal, confirmModal, ModalHost) instead of declarative Modal components.

  • Works in 3 steps: Content (MyFeatureContent.tsx) → createModal (index.tsx) → Usage
  • Opening a dialog or confirmation from an event handler
  • SKILL.md covers Recommended: @lobehub/ui/base-ui, Legacy: @lobehub/ui (root) and Examples
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

The skill recommends the base-ui modal stack from @lobehub/ui/base-ui for new code, with createModal, confirmModal and ModalHost, plus useModalContext inside modal content. Because base-ui renders through its own host, the app must mount ModalHost from that package once near the root, otherwise createModal calls will not appear. The imperative style is preferred over open-state Modal components because it needs no local state.

A file structure puts the content component and a createXxxModal function together in a feature folder, and the body is passed as content or children. For i18n, content uses useTranslation and createModal options use the i18next t function. A section on closing explains that close() from the context or the returned instance only sets the stack entry to closed and skips base-ui's dismissal path, so callbacks differ from a user dismissal by Escape, backdrop click or the header close button.

When your agent uses it

  • Opening a dialog or confirmation from an event handler
  • Migrating a declarative Modal with open state to createModal
  • Working out which close callback fires in a given dismissal path

Example prompts

  • “Add a confirmation dialog before deleting a topic using confirmModal.”
  • “Convert this Modal that uses open state into an imperative createModal.”
  • “My createModal call shows nothing. Check that ModalHost is mounted.”

Requirements

  • A project that uses @lobehub/ui with the base-ui entry point

Workflow steps

3 steps, taken from the step headings in SKILL.md.

  1. Content (MyFeatureContent.tsx)
  2. createModal (index.tsx)
  3. Usage

What it can do on your machine

Read from SKILL.md and the folder at commit 6aaeeee. 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 (its code samples are typescript).

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

  • Network

    No URLs in SKILL.md.

    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

Imperative Modal API loads about 1.3k tokens when it runs. Until then it costs about 28 tokens; SKILL.md has 382 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~28
When it runs · the whole SKILL.md, loaded when a task matches
~1.3k

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

Its licence (Custom licence) doesn't allow us to republish the file, so here is its outline and opening line. It has 382 words (~1,343 tokens).

“New code should use the base-ui modal stack (headless primitives, not antd Modal):”

— opening of SKILL.md by lobehub, Custom licence
name
modal
user-invocable
false

Read the full SKILL.md on GitHub

Files

Just SKILL.md in .agents/skills/modal of lobehub/lobehub.

Open the folder on GitHubat commit 6aaeeee

Compare with similar skills

Imperative Modal API 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.

Imperative Modal API compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Imperative Modal API this skilllobehub/lobehub83k—~1.3kAutomated safety check: PassCustom licence
React Router Developmentremix-run/react-router57k1 repos~1.5kAutomated safety check: PassMIT
React UI State PatternsChrisWiles/claude-code-showcase6.1k8 repos~1.6kAutomated safety check: PassNone
React Frontend Development Guidelinesdiet103/claude-code-infrastructure-showcase10k2 repos~2.9kAutomated safety check: PassMIT
AI Elements Chat Componentsmweinbach/agent-coworker1565 repos~1.8kAutomated safety check: PassCustom licence
Pierre Trees File Treepierrecomputer/pierre6.2k—~473Automated safety check: PassApache-2.0

Similar skills

  • React Router Development

    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.

    57k GitHub starsUsed in 1 repo~1.5k tokens
    Frontend & DesignAuto-check passed
  • React UI State Patterns

    ChrisWiles/claude-code-showcase

    Sets patterns for React interfaces: when to show loading spinners or skeletons, how to surface errors, how to disable buttons during async work and how to handle empty lists.

    6.1k GitHub starsUsed in 8 repos~1.6k tokens
    Frontend & DesignAuto-check passed
  • React Frontend Development Guidelines

    diet103/claude-code-infrastructure-showcase

    Guidelines for React 18 and TypeScript apps covering Suspense data fetching, lazy loading, feature folders, MUI v7 styling, TanStack Router and performance.

    10k GitHub starsUsed in 2 repos~2.9k tokens
    Frontend & DesignAuto-check passed
  • AI Elements Chat Components

    mweinbach/agent-coworker

    Adds AI Elements components such as conversations, messages, tool displays and prompt inputs to a Next.js project that uses shadcn/ui.

    156 GitHub starsUsed in 5 repos~1.8k tokens
    Frontend & DesignAuto-check passed
  • Pierre Trees File Tree

    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…

    6.2k GitHub stars~473 tokensUpdated today
    Frontend & DesignAuto-check passed
  • Phoenix Frontend

    Arize-ai/phoenix

    Frontend development guidelines for the Phoenix AI observability platform.

    12k GitHub stars~709 tokensUpdated today
    Frontend & DesignAuto-check passed

More from lobehub/lobehub

All 50 skills in this repo
  • Builds single-file interactive HTML prototypes rendered with the real LobeHub UI components and written as production-style React, so they can later be split into files.

    83k GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Verifies a delivery end to end by driving the real product on a CLI, web, desktop or iOS Simulator surface, capturing evidence and publishing a round with the lh CLI.

    83k GitHub stars~9.7k tokensUpdated today
    Auto-check passed
  • Git Worktree Cleanup

    lobehub/lobehub

    Audits stale Git worktrees and branches with a bundled script, classifies each one, and deletes only after you approve the exact candidates.

    83k GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • Maintains LobeHub's model-backed alint rule set: writing rules, removing false positives against real code, deciding warn versus error and tracking token cost.

    83k GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • Guides building LobeHub builtin agent tools, from the manifest and execution runtime to executors, chat UI renders and registry wiring.

    83k GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Explains how LobeHub client code fetches data through services, SWR store hooks and cache keys, and when to avoid useEffect fetching or duplicated state.

    83k GitHub stars~1.7k tokensUpdated today
    Auto-check passed

Questions about Imperative Modal API

What does Imperative Modal API do?

Shows how to build modals, dialogs and confirmations in LobeHub with the base-ui imperative API (createModal, confirmModal, ModalHost) instead of declarative Modal components. The skill recommends the base-ui modal stack from @lobehub/ui/base-ui for new code, with createModal, confirmModal and ModalHost, plus useModalContext inside modal content. Because base-ui renders through its own host, the app must mount ModalHost from that package once near the root, otherwise createModal calls will not appear.

When should I use Imperative Modal API?

Imperative Modal API fits situations like: opening a dialog or confirmation from an event handler; migrating a declarative Modal with open state to createModal; working out which close callback fires in a given dismissal path.

How do I install Imperative Modal API in Claude Code?

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

How do I install Imperative Modal API in Codex?

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

Can I use Imperative Modal API 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 lobehub/lobehub --skill modal -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/modal, .gemini/skills/modal, .github/skills/modal and .opencode/skills/modal in your project.

What does Imperative Modal API need to run?

SKILL.md names no scripts, command-line tools or credentials: Imperative Modal API is instructions for the agent only. Our summary lists: A project that uses @lobehub/ui with the base-ui entry point.

Does Imperative Modal API access the network?

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.

Is Imperative Modal API 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 Imperative Modal API use?

Imperative Modal API has a licence file (the repository's licence) that doesn't match a standard licence. Read it on GitHub before reusing the skill.

How many tokens does Imperative Modal API use?

About 1.3k tokens (SKILL.md is roughly 5.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Imperative Modal API?

Skills that share tags, products or a category with Imperative Modal API: React Router Development (remix-run/react-router, 57k stars), React UI State Patterns (ChrisWiles/claude-code-showcase, 6.1k stars), React Frontend Development Guidelines (diet103/claude-code-infrastructure-showcase, 10k stars) and AI Elements Chat Components (mweinbach/agent-coworker, 156 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Imperative Modal API?

lobehub (a GitHub organization) maintains it in lobehub/lobehub, which has 83,044 GitHub stars. The repository holds 50 skills in this directory. The repository was last updated on October 8, 2026.

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