// readme

gpuicn

gpuicn gives native GPUI apps 45 polished, shadcn-styled components, from Button and Dialog to Sidebar, Resizable and Virtual List. Like shadcn/ui, it copies the Rust source into your app, so you own every line and can change any of it. Behavior comes from GPUI Kit; gpuicn adds the Nova styling, a themeable token system and larger desktop components.

[!WARNING] gpuicn is experimental. APIs and styling can change between releases; gpuicn diff shows exactly what an update would change in your copy.

Quick start

cargo install gpuicn-cli --version 0.9.2 --locked
gpuicn new my-app --base-color zinc  # cargo new + pinned deps, Geist fonts, theme, Button and a starter window
cd my-app && cargo run
gpuicn add sidebar dialog
gpuicn theme set --radius 0.5rem --appearance dark

That’s the whole setup. No Node.js is involved. In an existing app, run gpuicn init from its root instead of gpuicn new; it keeps everything you already have. Installing the CLI also adds cargo gpuicn as an alias.

The starter main.rs is one call: ui::app::run opens the window with the Lucide icons, the Geist…