One chronological view of everything happening in the Raycast Store — new extensions, updates to the ones you already have, and the ones that quietly disappeared.
Features • Requirements • Quick Start • Usage • Development

To keep an eye on things passively, enable Store Updates Menu Bar — it refreshes hourly and badges the count of unseen items.
| Command | Mode | Description |
|---|---|---|
| View Store Updates | view | The full chronological list of new, updated, and removed extensions |
| Store Updates Menu Bar | menu-bar | A badge of unseen Store activity, refreshed every hour in the background |
| Action | Shortcut | Description |
|---|---|---|
| View Changelog | ⏎ | Read the extension's changelog inside Raycast |
| View Extension in Store | ⌥⇧⌘O | Deep-link straight to the Store page in Raycast |
| Open in Browser | Common.Open | Open the Store listing on the web |
| Copy Latest Changes | Common.Copy | Copy only the latest release's changelog entry |
| Copy Extension URL | Common.CopyName | Copy the Store URL |
| Open Changelog in Browser | ⌘⇧L | Open CHANGELOG.md on GitHub |
| Refresh | Common.Refresh | Re-fetch the list |
| Update Installed Extensions | ⌘⇧U | Run Raycast's own updater on your installed extensions |
| Show/Hide macOS-only | ⌘⇧M | Toggle platform-exclusive macOS extensions |
| Show/Hide Windows-only | ⌘⇧W | Toggle platform-exclusive Windows extensions |
| Filter by Category | ⌘⇧F | Pick a single category |
| Mark as Read | ⌘⇧R | Requires read tracking to be enabled |
| Mark All as Read | ⌘⇧A | Requires read tracking to be enabled |
| Undo | ⌘Z | Reverse the last read-status change |
Actions listed with a Common.* constant use Raycast's system-wide binding for that
semantic, which differs between macOS and Windows — that is the point of the constant, and
why this table names the semantic rather than a key combination.
Tip: Hold ⌥ and click an item in the menu bar to open its changelog instead of its Store page.

| Preference | Values | Default |
|---|---|---|
| Read Status | Checkbox — enable read/unread tracking | Off |
| GitHub Token | Password — a classic token with no scopes | Empty |
| GraphQL | Checkbox — fetch pull requests via GraphQL (experimental, requires a token) | Off |
| Menu Bar | All Updates / My Updates (installed only) | All Updates |
raycast-store-updates/
├── src/
│ ├── view-store-updates.tsx # The main list command
│ ├── store-updates-menu-bar.tsx # The menu-bar badge
│ ├── components/ # List items, detail panes, action panels
│ ├── hooks/ # Read state, filter toggles, changelog, rate limit
│ ├── types/ # The unified StoreItem shape
│ └── utils/ # Fetching, slug resolution, caching, GraphQL
├── assets/ # Extension and platform icons
├── metadata/ # Store screenshots
├── media/ # README images
├── package.json
└── tsconfig.json
| Script | Description |
|---|---|
npm run dev | Start in development mode with hot reload |
npm run build | Build for production |
npm run lint | Run Raycast ESLint config |
npm run fix-lint | Auto-fix lint issues |
npm run publish | Publish to the Raycast Store |
There is no test suite. Verification is npm run build, npm run lint, and exercising the
commands in npm run dev.
git clone https://github.com/chrismessina/raycast-store-updates.git
cd raycast-store-updates
npm install
npm run dev
| Package | Role |
|---|---|
@raycast/api | Raycast extension primitives |
@raycast/utils | Higher-level Raycast utilities (useFetch, useCachedPromise) |
@chrismessina/raycast-kit | House-style failure toasts and count-aware copy |
MIT © Chris Messina