Shared patterns for desktop apps
App Patterns is a set of TypeScript packages for command discovery, settings, update notices and Markdown outline editing. Use the pieces your app needs. React supplies the settings and update interfaces; Electron adapters connect them to the desktop host.
Read the source and installation guide · Download a published release · Read the changelog
Choose a package
| Package | What it provides |
|---|---|
| commands | A command registry, key chords, dispatch and menu templates. |
| settings | A schema, history, undo, import/export, file storage and agent CLI. |
| settings-react | A Settings window driven by props, with its stylesheet. |
| settings-electron | Settings windows, menus, a preload bridge and encrypted key slots. |
| updates | Feed validation, version comparison, daily checking, skip and snooze state. |
| updates-react | Update status marks, a release popover and an About and updates card. |
| outline | Markdown outline ranges and CodeMirror section commands. |
Install from a release
Packages ship as versioned tarballs in GitHub releases. They are not published to npm. Vendor the required archives into your app and commit them with its manifest and lockfile. The repository’s vendor tool previews the changes before applying them and checks compatible sibling packages.
- Get the source checkout for the release you choose and use Bun 1.3.10.
- Download that release’s tarballs and manifest into
releases/in the checkout. - Declare the packages your app needs and commit its dependency declaration.
- Run
bun run release:vendor /path/to/your-appfrom the checkout to preview the changes. - Apply with
--write, then copy the matching release’s rootLICENSEto your app’svendor/app-patterns/LICENSEand commit it with the archives. Retain this MIT notice in the distributed app’s licence notices; the vendor tool does not copy it. - Install in your app and run its checks.
The full installation guide explains dependency declarations, lockfiles and migration from live folders. Each package README describes its API and integration requirements.
Integrate with your app
The app supplies its commands, settings schema and host behaviour. Update notices use the app’s feed URL, product name and storage. Check each package manifest for supported peer versions. Keyboard integrations must handle text-entry ownership and native menu accelerators; the keyboard safety guide describes those responsibilities.
Licence and origin
App Patterns is MIT licensed. It was extracted from Bridle in October 2026. Existing settings data formats and bridge names remain compatible with its consumers.