Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Examples in the repo

The best reference is the shipped code. Each extension below is the canonical example of one pattern — read it before inventing a new shape.

PatternReadWhat to learn
The standard extensiontemplates/extensionevery contract part at once: routing, page, sections, actions, prefs, cache, tests
Declarative rich pagecommands/countdownmanifest with typed arguments, a ticking Blocks page, storage, and zero UI code
Network + cache + debouncecommands/weatherTTL cache keyed by argument, debounced UI fetch, emoji-coded conditions
Dedicated page with statecommands/pomodoro + the pomodoro page in corvo-uia state machine behind a mutex, notifications from a watcher thread, a bespoke page
Platform abstractioncommands/media-controla thin crate over corvo-platform (AppleScript / SMTC / MPRIS) with one result model
Many commands, one cratecommands/browser-tabsa BrowserSpec table + a macro generating eight commands with install detection, real icons, and CDP/AppleScript backends
Actions menuscommands/brewmenu builders, destructive actions, subprocess timeouts
Sections in a listcommands/brew (upgrades mode)contiguous sections rendered as Formulae / Casks groups
Persistencecommands/notesfile-per-item storage, atomic saves, a full editor window
Search rankingcommands/app-launcherfrecency ranking via the shared search core

By module

  • corvo_ext::list — every crate; start with templates/extension.
  • corvo_ext::cache — weather, media-control, browser-tabs.
  • corvo_ext::prefs — templates/extension; global settings live in corvo-config.
  • corvo_ext::actions — brew, text-utilities, kill-process.
  • corvo_ext::routing — weather, browser-tabs, pomodoro.
  • corvo-platform subsystems — media-control (media), browser-tabs (browsers/CDP), kill-process (processes).

Not yet covered

  • Grid and Form as first-class modules (the emoji picker and the notes editor are hand-built precursors).
  • Markdown Detail panes per row.
  • A secret store for tokens.

If you need one of these, open an issue first — the module should land in the kit, not in one extension.