中文 | English
A reusable GPUI starter template with a native app shell, reusable UI helpers, i18n, persisted settings, and cross-platform packaging.
Modified from zedis
- App shell with title bar, sidebar, routed content area, and About screen
- Reusable internal UI crate for cards, dialogs, forms, dividers, loading placeholders, and about pages
- Theme, locale, font-size, and window-bounds persistence
- Starter docs and packaging metadata for macOS, Windows, Linux, AppImage, Flatpak, and GitHub Actions
- A TypeScript initialization script (Node 23+) to rename the template into your own project
cargo runtsx ./scripts/init-template.ts --slug my-app --org acme --vendor "Acme" --github-owner acmeThe script supports multiple parameters and will:
- rename the Cargo package and binary
- rename the internal UI crate
- update display names, bundle IDs, repository links, vendor, and author metadata
- rename packaging assets and manifest files
- optionally rename the project folder when the current folder is still
gpui-starter
Common options:
--slug <name>– target project slug--org <name>– default bundle ID org segment, used forcom.<org>.<slug>--vendor <name>– vendor/manufacturer placeholder replacement--author <name>– Cargo author string--github-owner <owner>/--repo-url <url>– repository metadata replacement--bundle-id <id>– explicit bundle ID override
./src– starter app shell./crates/gpui-starter-ui– reusable UI components./scripts/init-template.ts– one-shot project rename script
cargo metadata --format-version 1
cargo check
cargo clippy --all-targets --all -- --deny=warningsLicensed under the Apache License, Version 2.0.
