Skip to content

Repository files navigation

CmdDeck - Software Macro Pad

Release Downloads License

CmdDeck is an open-source, cross-platform Stream Deck-style command launcher for Windows and macOS. It features a software macro pad that runs commands, scripts, and terminal shortcuts. Choose which shell runs each command and optionally attach a console to monitor output.

Ideal for developers or power users who want a lightweight desktop command palette / macro pad without dedicated hardware.

{E6010562-1913-4EF6-B6CD-2D4FDB1022D9} {8D3BE42E-B0BB-443D-AD48-1227F83534E7}

Features

  • Profiles and pages - multiple decks with tabbed pages
  • Macro packs - import/export macro packs; import example packs in Settings
  • Global hotkeys - optional shortcut per macro (e.g. Ctrl+Shift+1)
  • Workflow variables - {{date}}, {{cwd}}, {{env:VAR}}, {{gitBranch}} in commands
  • Macro actions — run command, open URL, open path, or SSH, and more!

Installation

Windows

  1. Download the latest installer from Releases
  2. Run the installer and follow the prompts

macOS

  1. Download the .dmg from Releases and drag CmdDeck to Applications
  2. macOS may say the app is “damaged” - that is Gatekeeper blocking an unsigned download, not a bad file. Go to System Preferences -> Security & Privacy, then "Open anyway".

Development

bun install
bun run dev

Building

bun run build

Releasing

Bump the version in package.json and push to master. The GitHub Actions workflow builds Windows and macOS installers, uploads updater metadata, and creates a GitHub Release.

Usage

  1. Click + (or the empty tile) to add a command
  2. Enter a command and pick Run with (PowerShell, cmd, etc.)
  3. Optionally enable Show terminal window, set a display name, image, and working directory
  4. Click a button to run; click again while running to stop
  5. Right-click a button for Run / Edit / Duplicate / Delete

Example macros

These match the built-in starter packs in packs/. Import a pack from the app, or copy a command below into a new macro.

Laravel Dev

Boot project (set cwd to the app):

git pull
composer install
npm install
php artisan migrate
docker compose up -d

Artisan serve / Queue worker / Vite dev:

php artisan serve
php artisan queue:work
npm run dev

PR check:

git status
npm run lint
npm test

Node Fullstack

npm install
npm run dev
npm test
npm run lint

Docker Compose

docker compose up -d
docker compose logs -f --tail=200
docker compose down

Git Ship Check

git status
git diff
git push

Daily Routines

Start workday (PowerShell):

Start-Process https://mail.google.com
Start-Process https://calendar.google.com
Start-Process https://github.com/notifications

GitHub — action type Open URL: https://github.com

Open Projects — action type Open path: {{env:USERPROFILE}}\Projects

Tidy Downloads (confirm before run):

$downloads = [Environment]::GetFolderPath('UserProfile') + '\Downloads'
Get-ChildItem $downloads -File | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } | Remove-Item -Force

Streamer OBS Shell

Scene: Main / Scene: BRB (edit OBS host/port and scene names):

curl -s -X POST http://127.0.0.1:4455/api/requests -H "Content-Type: application/json" -d "{\"requestType\":\"SetCurrentProgramScene\",\"requestData\":{\"sceneName\":\"Main\"}}"
curl -s -X POST http://127.0.0.1:4455/api/requests -H "Content-Type: application/json" -d "{\"requestType\":\"SetCurrentProgramScene\",\"requestData\":{\"sceneName\":\"BRB\"}}"

Open OBS — action type Open URL: obs64://

Homelab SSH Starter

SSH macros (edit host/user/key per machine). Commands run on the remote:

df -h
docker ps
cd ~/stack && docker compose restart
sudo apt update && sudo apt upgrade -y

Keywords

Stream Deck alternative, command launcher, terminal shortcuts, macro pad, always-on-top command grid, Tauri desktop app, Windows Terminal launcher, shell command buttons

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT

About

Always-on-top Stream Deck-style command pad for terminal shortcuts

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages