Ask Sonner
leepokai/Codync
Guide to Sonner, the React toast library — install and wire up the Toaster, pick the right toast() call, promise and loading toasts, updating, dismissing and persisting toasts, styling, theming and…
How to build desktop applications with GPUI Kit, the Rust framework published as the gpui-kit crate (GPUI plus gpuikit::component, gpuikit::base, gpuikit::assets).
$ npx skills add StudentWeis/ropy --skill gpui-kit -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install StudentWeis/ropy gpui-kit --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/StudentWeis/ropy.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/gpui-kit .claude/skills/gpui-kit && 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 "gpui-kit" agent skill from https://github.com/StudentWeis/ropy/tree/main/.agents/skills/gpui-kit into .claude/skills/gpui-kit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gpui-kit", 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/StudentWeis/ropy/tree/main/.agents/skills/gpui-kitType 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 StudentWeis/ropy --skill gpui-kit -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install StudentWeis/ropy gpui-kit --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/StudentWeis/ropy.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/gpui-kit .agents/skills/gpui-kit && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "gpui-kit" agent skill from https://github.com/StudentWeis/ropy/tree/main/.agents/skills/gpui-kit into .agents/skills/gpui-kit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gpui-kit", 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 StudentWeis/ropy --skill gpui-kit -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install StudentWeis/ropy gpui-kit --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/StudentWeis/ropy.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/gpui-kit .cursor/skills/gpui-kit && 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 "gpui-kit" agent skill from https://github.com/StudentWeis/ropy/tree/main/.agents/skills/gpui-kit into .cursor/skills/gpui-kit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gpui-kit", 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/StudentWeis/ropy.git --path .agents/skills/gpui-kit--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 StudentWeis/ropy --skill gpui-kit -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install StudentWeis/ropy gpui-kit --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/StudentWeis/ropy.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/gpui-kit .gemini/skills/gpui-kit && 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 "gpui-kit" agent skill from https://github.com/StudentWeis/ropy/tree/main/.agents/skills/gpui-kit into .gemini/skills/gpui-kit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gpui-kit", 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 StudentWeis/ropy gpui-kitInstalls 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 StudentWeis/ropy --skill gpui-kit -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/StudentWeis/ropy.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/gpui-kit .github/skills/gpui-kit && 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 "gpui-kit" agent skill from https://github.com/StudentWeis/ropy/tree/main/.agents/skills/gpui-kit into .github/skills/gpui-kit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gpui-kit", 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 StudentWeis/ropy --skill gpui-kit -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install StudentWeis/ropy gpui-kit --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/StudentWeis/ropy.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/gpui-kit .opencode/skills/gpui-kit && 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 "gpui-kit" agent skill from https://github.com/StudentWeis/ropy/tree/main/.agents/skills/gpui-kit into .opencode/skills/gpui-kit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gpui-kit", 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.
gpui-kitHow to build desktop applications with GPUI Kit, the Rust framework published as the gpui-kit crate (GPUI plus gpuikit::component, gpuikit::base, gpuikit::assets).
Gpui Kit is an agent skill from StudentWeis/ropy. How to build desktop applications with GPUI Kit, the Rust framework published as the gpui-kit crate (GPUI plus gpuikit::component, gpuikit::base, gpuikit::assets). Use when setting up a gpui-kit app, choosing or using a component (Button, Input, Select, Dialog, Sheet, Tabs, Sidebar, List, DataTable, Tree, Chart, etc.), handling component state, theming, or window overlays, and for GPUI mechanics: actions and keybindings, async tasks, contexts, custom elements, entities, events, focus, global state, layout and…
Its SKILL.md is about 5.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 28 other files, including reference files (for example `references/coding-guides.md`, `references/conventions.md` and `references/gpui/action.md`).
It sits in Frontend & Design, covering Theming and dark mode, State management and Integration testing. It works with Rust. The repository describes itself as: Cross-platform, lightweight clipboard manager written in Rust and GPUI. The licence is MIT.
Read from SKILL.md and the folder at commit 8ab193e. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are rust).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
gpui-kit.comFrom 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.
Gpui Kit loads about 5.6k tokens when it runs, and up to ~78k if it reads all its reference files. Until then it costs about 196 tokens; SKILL.md has 1,436 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 StudentWeis/ropy at commit 8ab193e, republished under its MIT licence (© StudentWeis). 1,436 words, ~5,622 tokens.
.claude/skills/gpui-kit/SKILL.md (or your agent's skills folder). This skill also uses 26 other files; get the full folder from GitHub.Applications depend on one crate, gpui-kit. GPUI is use gpui_kit::*;, and
each layer is reachable by name: gpui_kit::component (styled components),
gpui_kit::base (unstyled behavior), gpui_kit::assets (default icons),
gpui_kit::platform.
Start with component-family conventions to choose the constructor, state owner, event, and layout contract for the task. Learn the family once, then verify the specific component supports the capability.
For a complete compiled view with retained state, subscriptions, and overlay layers, read the tested application recipe.
Two guides hold the rules this skill assumes. They are requirements, not inspiration. Read the guide file itself; do not answer from this page, from a similar file in the codebase, or from training data.
| Guide | Read before |
|---|---|
Design Guides, skill gpui-kit-design-guides | Choosing components, layout, spacing, hierarchy, color, density, interaction states, overlays, motion, interface copy |
| Coding Guides | Crate layering, RenderOnce vs Entity<T>, state ownership, ElementId, events, focus, async, public API, naming, testing |
Read the Design Guides first when the change has a visible surface: code
structure preserves product intent, it does not replace it. If the design
skill is not installed, fetch https://gpui-kit.com/docs/design-guides.md.
The coding guide is a verbatim copy of https://gpui-kit.com/docs/coding-guides.md,
so its links to ./design-guides.md and ./getting-started.md mean the design
skill and https://gpui-kit.com/docs/getting-started.md.
Read the whole guide for a new crate, module, or feature. For a narrow change,
read "Architecture at a glance" and "Rules for coding agents" first, then the
section for the change (grep -n '^## ' references/coding-guides.md).
| Section | Read when |
|---|---|
| Architecture at a glance | Always; crate layering, ownership boundary |
| Bootstrap and root ownership | main, init, Root, window creation, app-level state |
| Understand GPUI's phases and contexts | Anything touching App, Window, Context<T>, render vs update |
| Choose the right unit | Deciding RenderOnce vs Entity<T> vs custom Element |
| State ownership | Where a piece of state lives, who mutates it, Entity<State> handles |
| Stable identity | ElementId, lists, repeated elements, keyed state |
| Rendering and composition | render, builder chains, when/map, child composition |
| Behavior and presentation boundary | gpui-base vs gpui-component vs application code |
| Theme and styling | cx.theme(), tokens, Styled, sizes, variants |
| Events, actions, and focus | cx.emit, subscribe, actions!, keybindings, FocusHandle |
| Async work and side effects | cx.spawn, background_spawn, Task, I/O, timers |
| Layout, measurement, and scrolling | Flex layout, sizing, overflow, scroll handles, measuring |
| Lists, tables, and large data | VirtualList, List, DataTable, delegates, large collections |
| Public API design | Anything pub: builders, private fields, setter and reader naming |
| Platform and capability boundaries | macOS/Windows/Linux/wasm differences, feature gates |
| File and naming conventions | New files, modules, type and method names, Kind suffix, Context |
| Testing strategy | What to test, #[gpui_kit::test], TestAppContext |
| Performance rules | Render cost, allocation, re-render triggers |
| Common failure modes | Before finishing; invented APIs, state in render, index ids |
| Rules for coding agents | Always when an agent writes code |
| Implementation checklist | Before finishing; run every item against the work |
A floor, not a substitute for the guides.
gpui-kit alone. GPUI is
use gpui_kit::*;; the layers are gpui_kit::component, gpui_kit::base,
gpui_kit::assets, gpui_kit::platform.gpui-base; do not put interaction behavior in
application styling code.ElementIds, not
list indexes.pub fields across the seam. Public data types use builders and
reader methods.Context out. cx is GPUI's; name anything else after what it
holds.https://gpui-kit.com/llms.txt, then load its Markdown page.https://gpui-kit.com/llms-full.txt is available when broad reference is actually neededhttps://gpui-kit.com/component/{name}.md,
e.g. button.md, input.md, select.md, dialog.md, data-table.md.md to the URLSetup and examples: references/usage.md.
use gpui_kit::*;
gpui_kit::application()
.with_assets(gpui_kit::assets::Assets)
.run(|cx| {
gpui_kit::init(cx); // first, before anything else
gpui_kit::open_window(options, cx, |window, cx| {
cx.new(|cx| AppView::new(window, cx))
})
.expect("failed to open window");
});RenderOnce): build in render:
Button::new("save").primary().label("Save").on_click(|_, _, _| {})Entity<State> in the view, pass a reference in render:
let input = cx.new(|cx| InputState::new(window, cx)); then Input::new(&self.input).xsmall() .small() .medium() (default) .large()cx.theme().primary · .background · .foreground · .border · .mutedwindow.open_dialog(...), open_sheet(...), push_notification(...)
via gpui_kit::component::WindowExtImport paths are relative to gpui_kit::component::, so input::{Input, InputState}
means use gpui_kit::component::input::{Input, InputState};. For the full API
fetch the component's .md doc.
| Component | Import | Notes |
|---|---|---|
Input | input::{Input, InputState} | Stateful. Text, password, mask, validation |
Textarea | input::{Textarea, TextareaState} | Stateful. Multi-line text |
Editor | input::{Editor, EditorState} | Stateful. Code editor, tree-sitter feature |
NumberInput | input::{NumberInput, NumberInputEvent} | Stateful. Numeric with step |
OtpInput | input::OtpInput | Stateful. One-time password |
SpeechButton | speech::{SpeechButton, SpeechState} | Stateful. Dictation, speech feature |
Select | select::{Select, SelectState} | Stateful. Dropdown picker |
Combobox | combobox::{Combobox, ComboboxState} | Stateful. Searchable select |
Checkbox | checkbox::Checkbox | Stateless. on_click receives &bool |
Switch | switch::Switch | Stateless. Toggle |
Radio | radio::{Radio, RadioGroup} | Stateless. |
Slider | slider::{Slider, SliderState} | Stateful. |
Toggle | button::Toggle | Stateless. |
Rating | rating::Rating | Stateless. |
Stepper | stepper::Stepper | Stateless. Multi-step progress |
ColorPicker | color_picker::{ColorPicker, ColorPickerState} | Stateful. |
DatePicker | date_picker::{DatePicker, DatePickerState} | Stateful. |
TimeField | time_field::{TimeField, TimeFieldState} | Stateful. Time of day, 24/12-hour |
Calendar | calendar::{Calendar, CalendarState} | Stateful. Inline month view |
Form | form::{v_form, h_form, field} | Layout container for form fields |
| Component | Import | Notes |
|---|---|---|
Button | button::{Button, ButtonGroup} | Stateless. Primary UI action |
Icon | {Icon, IconName} | Stateless. Lucide icons |
Badge | badge::Badge | Stateless. |
Tag | tag::Tag | Stateless. Closable tags |
Avatar | avatar::Avatar | Stateless. |
Label | label::Label | Stateless. Form label |
Kbd | kbd::Kbd | Stateless. Keyboard key display |
Alert | alert::Alert | Stateless. Info/success/warning/error |
Spinner | spinner::Spinner | Stateless. Loading indicator |
Skeleton | skeleton::Skeleton | Stateless. Loading placeholder |
Shimmer | shimmer::{ShimmerText, ShimmerStyle} | Stateless. Streaming-text shimmer |
Marker | marker::{Marker, MarkerVariant} | Stateless. Inline status marker |
Progress | progress::{Progress, ProgressCircle} | Stateless. |
Tooltip | tooltip::Tooltip | Via .tooltip() on elements |
HoverCard | hover_card::{HoverCard, HoverCardState} | Stateful. |
Clipboard | clipboard::Clipboard | Stateless. Copy button |
TextView | text::TextView | TextView::markdown(id, text), HTML too |
| Image | gpui_kit::{img, ImageSource, ObjectFit} | GPUI's img() element |
| Component | Import | Notes |
|---|---|---|
Dialog | dialog::Dialog + WindowExt | Via window.open_dialog(...) |
AlertDialog | WindowExt | Via window.open_alert_dialog(...) |
Sheet | sheet::Sheet + WindowExt | Side panel, via window.open_sheet(...) |
Notification | notification::Notification + WindowExt | Via window.push_notification(...) |
Popover | popover::Popover | Floating overlay |
Menu | menu::{PopupMenu, DropdownMenu} | Context menus |
DropdownButton | button::DropdownButton | Button with dropdown menu |
Command | command::{Command, CommandState, CommandGroup} | Stateful. Command palette |
| Focus trap | FocusTrapElement | .focus_trap(id, &handle) on a container; Dialog and Sheet have it built in |
| Component | Import | Notes |
|---|---|---|
Tabs / TabBar | tab::{Tab, TabBar} | Tabbed interface |
Sidebar | sidebar::{Sidebar, SidebarMenu, ...} | App navigation panel |
TitleBar | TitleBar | Window title bar |
StatusBar | status_bar::StatusBar | Window status bar |
Breadcrumb | breadcrumb::Breadcrumb | Navigation breadcrumb |
Pagination | pagination::Pagination | Page navigation |
Accordion | accordion::Accordion | Collapsible sections |
Collapsible | collapsible::Collapsible | Single collapsible |
GroupBox | group_box::GroupBox | Labeled container |
Resizable | resizable::{h_resizable, v_resizable, resizable_panel, ResizableState} | Draggable split panes |
ResizeHandle | resizable::{resize_handle, HandleEdge} | Standalone resize edge |
Scrollbar | scroll::Scrollbar | Custom scrollbar |
| Component | Import | Notes |
|---|---|---|
DataTable | table::{DataTable, TableState, TableDelegate} | Stateful. Full-featured table |
Diff | diff::{Diff, DiffState, DiffFile} | Retained state, RenderOnce element. Readonly unified/Git diff display of one or more files, merge conflicts and source files; application supplies the patch |
Table | table::{Table, ...} | Simpler table |
VirtualList | {v_virtual_list, h_virtual_list} | High-perf large lists |
List | list::{List, ListState, ListDelegate} | Stateful. Searchable list |
Tree | tree::{Tree, TreeState, TreeItem, TreeEntry} | Stateful. Hierarchy |
DescriptionList | description_list::DescriptionList | Key-value pairs |
Settings | setting::Settings | Settings panel |
| Component | Import | Notes |
|---|---|---|
Message | message::{Message, MessageContent, MessageAlignment} | Stateless. Chat message row |
Bubble | bubble::{Bubble, BubbleContent, BubbleVariant} | Stateless. Message bubble |
Attachment | attachment::{Attachment, AttachmentContent, ...} | Stateless. File/media attachment card |
MessageScroller | message_scroller::{MessageScroller, MessageScrollerState} | Stateful. Auto-scrolling message list |
| Component | Import | Notes |
|---|---|---|
Chart | chart::{AreaChart, BarChart, LineChart, PieChart, RadarChart} | Bar, line, area, pie charts |
Plot | plot::Plot | #[derive(IntoPlot)] for data |
UI integration testing means rendering real components in headless windows,
simulating input, and checking state, focus, layout and owner callbacks. Use
#[gpui_kit::test] to run tests and gpui_kit::test to operate and inspect the UI.
When asked to add component interaction coverage, describe it as UI integration testing.
For unit tests, GPUI context tests or UI integration tests, read Testing. It includes dependency setup, a complete runnable UI flow, scoped native interactions, frame/async handling and the limits of accessibility and geometry assertions. Use the production view and verify the action's outcome through normal Rust assertions.
Load the file for the mechanism the task touches. Each file starts with a contents line.
| Topic | File | Load when |
|---|---|---|
| Actions & keybindings | action.md | actions!, bind_keys, on_action, key_context |
| Async & background tasks | async.md | cx.spawn, background_spawn, Task, async I/O |
| Context management | context.md | App, Window, Context<T>, AsyncApp |
| Custom elements (low-level) | element.md | Element trait, request_layout, prepaint, paint |
| Entity state | entity.md | Entity<T>, WeakEntity, state management |
| Events & subscriptions | event.md | cx.emit, cx.subscribe, cx.observe |
| Focus & keyboard nav | focus-handle.md | FocusHandle, track_focus, Tab navigation |
| Global state | global.md | Global trait, cx.set_global, app-wide config |
| Layout & styling | layout-style.md | div(), h_flex(), v_flex(), flexbox, overflow, positioning |
| ElementId | element-id.md | ElementId, .id(), uniqueness rules, stateful elements |
| Testing | test.md | #[gpui_kit::test], TestAppContext, VisualTestContext |
Deep dives, for when the topic file is not enough:
© StudentWeis, 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 26 other files (references) in .agents/skills/gpui-kit of StudentWeis/ropy.
Open the folder on GitHubat commit 8ab193e
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in StudentWeis/ropy, which our catalogue first saw on October 9, 2026.
Gpui Kit 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 |
|---|---|---|---|---|---|---|
| Gpui Kit this skillStudentWeis/ropy | 195 | 1 repos | ~5.6k | Automated safety check: Pass | MIT | |
| Ask Sonnerleepokai/Codync | 182 | 4 repos | ~1.8k | Automated safety check: Warn | Apache-2.0 | |
| Worklog Designregisx001/Worklog | 261 | — | ~3.3k | Automated safety check: Pass | MIT | |
| Bezelcrabtalk/bezel | 171 | — | ~1.6k | Automated safety check: Pass | MIT | |
| UI UX Pro Maxfutureboard/futureboard-studio | 107 | — | ~5.6k | Automated safety check: Pass | MIT | |
| Pierre Theming Librarypierrecomputer/pierre | 6.3k | — | ~661 | Automated safety check: Pass | Apache-2.0 |
leepokai/Codync
Guide to Sonner, the React toast library — install and wire up the Toaster, pick the right toast() call, promise and loading toasts, updating, dismissing and persisting toasts, styling, theming and…
regisx001/Worklog
Design and UI skill for the Worklog desktop project manager.
crabtalk/bezel
Build native GUI apps in Rust with bezel, the gpui component library (bezel, bezel-gpui, bezel-ui, bezel-theme, bezel-motion, bezel-icons, bezel-markdown, bezel-editor, bezel-terminal).
futureboard/futureboard-studio
Comprehensive design guide for web, mobile, and desktop applications.
pierrecomputer/pierre
Explains how to use the @pierre/theming package to list, resolve, select, switch and persist themes, with controller, color and React references.
bkywksj/knowledge-base
Tauri 状态管理技能,覆盖 React 前端状态和 Rust 后端状态管理. An agent skill from bkywksj/knowledge-base.
StudentWeis/ropy
Review a code change, diff, pull request, module, or test suite for code quality, comment and documentation quality, and test quality.
StudentWeis/ropy
Repository contribution workflow. An agent skill from StudentWeis/ropy.
StudentWeis/ropy
The normative Design Guides for GPUI Kit desktop applications.
StudentWeis/ropy
Coordinate concurrent coding-agent sessions through task scopes, progress, and completion.
StudentWeis/ropy
Run packaged Ropy desktop GUI end-to-end, smoke, and compatibility tests across macOS, Windows, and Linux.
StudentWeis/ropy
Inspect repository maintainability, robustness, and simplicity without applying fixes.
Works with
Categories
How to build desktop applications with GPUI Kit, the Rust framework published as the gpui-kit crate (GPUI plus gpuikit::component, gpuikit::base, gpuikit::assets). Gpui Kit is an agent skill from StudentWeis/ropy. How to build desktop applications with GPUI Kit, the Rust framework published as the gpui-kit crate (GPUI plus gpuikit::component, gpuikit::base, gpuikit::assets).
Gpui Kit fits situations like: setting up a gpui-kit app; using a component (Button; handling component state; window overlays.
Run `npx skills add StudentWeis/ropy --skill gpui-kit -a claude-code`. Or copy the skill folder (.agents/skills/gpui-kit in StudentWeis/ropy) into .claude/skills/gpui-kit in your project. Claude Code loads it when a task matches its description.
Run `npx skills add StudentWeis/ropy --skill gpui-kit -a codex`. Or copy the skill folder (.agents/skills/gpui-kit in StudentWeis/ropy) into .agents/skills/gpui-kit 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 StudentWeis/ropy --skill gpui-kit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gpui-kit, .gemini/skills/gpui-kit, .github/skills/gpui-kit and .opencode/skills/gpui-kit in your project.
SKILL.md names no scripts, command-line tools or credentials: Gpui Kit is instructions for the agent only.
SKILL.md names 1 domain. In commands or code: gpui-kit.com; the agent is likely to contact it when it follows the instructions. 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.
Gpui Kit is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.6k tokens (SKILL.md is roughly 22k 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 73k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Gpui Kit: Ask Sonner (leepokai/Codync, 182 stars), Worklog Design (regisx001/Worklog, 261 stars), Bezel (crabtalk/bezel, 171 stars) and UI UX Pro Max (futureboard/futureboard-studio, 107 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
StudentWeis (a GitHub user) maintains it in StudentWeis/ropy, which has 195 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 9, 2026.
Source: StudentWeis/ropy on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.