A radial action launcher for power users.
Hold the shortcut, pick an action, release. Done.
- Radial action ring — A beautiful circular launcher that appears at your cursor
- Multiple profiles — Create separate rings for different workflows (AI tools, navigation, dev tools, etc.)
- Independent shortcuts — Each profile has its own keyboard shortcut
- Release-to-activate — Hold the shortcut, hover over an action, release to launch
- Cross-platform — Works on Windows, macOS, and Linux
- Drag & drop reorder — Rearrange actions with drag and drop
- Heroicons built-in — 200+ beautiful icons to choose from
- Portable mode — Run without installing (Windows)
- Lightweight — Built with Electron + vanilla JS, no heavy frameworks
Head to the Releases page and grab:
| Platform | File | Type |
|---|---|---|
| Windows | RingDeck-x.x.x-portable.exe |
Portable (no install) |
| Windows | RingDeck-Setup-x.x.x.exe |
Installer |
| macOS | RingDeck-x.x.x.dmg |
Disk image |
| Linux | RingDeck-x.x.x.AppImage |
AppImage |
| Linux | ringdeck_x.x.x_amd64.deb |
Debian package |
# Install dependencies
npm install
# Run in development mode
npm run dev
# Build for your platform
npm run build
# Build portable only (no installer)
npm run pack- Press your shortcut (default:
Alt+Space) — the ring appears at your cursor - Hold the modifier key(s) and move your mouse to hover over an action
- Release the modifier — the hovered action is launched
- Or just click any action directly
Create different rings for different contexts:
- AI Tools (
Ctrl+Shift+Space) → ChatGPT, Copilot, Perplexity - Dev Tools (
Ctrl+Alt+Space) → Terminal, VS Code, Browser - Media (
Ctrl+Shift+M) → Spotify, VLC, OBS
Each profile has its own shortcut and set of actions.
Click the system tray icon or launch the app to open the config window:
- Left panel — Ring preview + shortcut recorder
- Right panel — Profile tabs + action list
- Add Profile — Click the
+tab to create a new profile - Record Shortcut — Click "Record" and press your desired key combo
- Add Action — Choose between Script (shell command) or Program (executable)
| Type | Description | Example |
|---|---|---|
| Script | Run a shell command | code ., open -a Safari |
| Program | Launch an executable | chrome.exe, Terminal.app |
- Electron — Cross-platform desktop runtime
- Vite — Fast build tool
- Heroicons — Beautiful hand-crafted SVG icons
- Vanilla JS + CSS — No frameworks, fast and lightweight
ringdeck/
├── electron/
│ ├── main.js # Electron main process
│ └── preload.js # Context bridge API
├── src/
│ ├── main.js # Config UI logic
│ ├── ring.js # Radial ring logic
│ ├── icons.js # Heroicons SVG map
│ ├── style.css # Config UI styles
│ └── ring.css # Ring styles
├── index.html # Config window
├── ring.html # Ring overlay window
├── package.json
└── vite.config.js
Releases are fully automated via GitHub Actions:
feature-branch → PR → develop → PR → main → auto release
develop— Integration branch. All feature branches target here via PR.main— Production branch. Only receives PRs fromdevelop.- Automatic releases — When a PR is merged into
mainand the version inpackage.jsonhas changed, the workflow automatically:- Creates a git tag
vX.Y.Z - Builds for macOS, Windows, and Linux
- Publishes a GitHub Release with all artifacts
- Creates a git tag
Both main and develop are protected — no direct pushes allowed.
- Bump the version in
package.jsonon your feature branch - PR into
develop, then PR fromdevelopintomain - Merge the PR — the release happens automatically
- Fork the repository
- Create a feature branch from
develop(git checkout -b feat/amazing-feature develop) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feat/amazing-feature) - Open a Pull Request targeting
develop
MIT — do whatever you want with it.
