gpui-component

Build GPUI application interfaces using the gpui-component Rust UI library.

Updated Aug 1, 2026
One-click install
npx skills add https://github.com/thechibbis/mythicreviewer --skill gpui-component-thechibbis
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: gpui-component
Source: https://github.com/thechibbis/mythicreviewer/tree/main/.agents/skills/gpui-component
Command: npx skills add https://github.com/thechibbis/mythicreviewer --skill gpui-component-thechibbis

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Building user interfaces in Rust GPUI applications requires knowing the correct components, state patterns, imports, and theming APIs of the gpui-component library, which are easy to misuse without a reference. ## Core Features & Use Cases - Component Catalog: Maps UI needs to the right component (Button, Input, Select, Dialog, DataTable, Sidebar, Tabs, etc.) with correct import paths and stateful vs. stateless usage patterns. - Setup & Theming Guidance: Covers required initialization (gpui_component::init, Root wrapper), theme colors via cx.theme(), and overlay layers for dialogs, sheets, and notifications. - Contributor Style Guide: Provides code conventions for writing new components, including trait implementations, variants patterns, and callback signatures. - Use Case: When adding a settings panel to a GPUI desktop app, use this Skill to pick the right form, input, and sidebar components and wire up their state entities correctly. ## Quick Start Use the gpui-component skill to build a settings window with a sidebar, form inputs, and a save button in my GPUI app.

Frequently Asked Questions about gpui-component

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I use gpui-component components in a GPUI app?

Call gpui_component::init(cx) first in app.run(), then wrap your first-level view in Root::new(view, window, cx). Stateless components like Button are used directly in render, while stateful ones like Input require storing an Entity<InputState> in your view struct.

What is the difference between stateless and stateful components in gpui-component?

Stateless components like Button, Checkbox, and Badge are constructed directly in the render method. Stateful components like Input, Select, and DataTable require an Entity<State> created with cx.new() and stored in your view, then passed by reference in render.

How do I show dialogs and notifications in gpui-component?

Use window.open_modal(cx, ...) for dialogs and window.push_notification(...) for notifications. Your first-level view must render Root::render_dialog_layer, render_sheet_layer, and render_notification_layer for overlays to appear.

How do I theme a gpui-component application?

Access theme colors through cx.theme() with the ActiveTheme trait, using fields like primary, background, foreground, border, and muted. Toggle light and dark modes via Theme::global_mut(cx) or apply a named theme configuration.

Where can I find API documentation for a specific gpui-component widget?

Fetch per-component docs at https://longbridge.github.io/gpui-component/docs/components/{name}.md, such as button.md or data-table.md. The full reference is available at llms-full.txt on the same documentation site.