Open-source launcher for macOS with Raycast-compatible extensions, voice workflows, and AI-native actions.
Open-source launcher for macOS: Raycast + Wispr Flow + Speechify + Memory + AI in one app.
SuperCmd gives you Raycast-style extension workflows, hold-to-speak dictation, natural text-to-speech, and AI actions backed by configurable providers and memory.
SuperCmd is an Electron + React launcher that focuses on Raycast extension compatibility while remaining community-driven and open source.
- Raycast extension compatibility runtime (
@raycast/apiand@raycast/utilsshims) - Extension discovery/install/update flow
- Script command support
- Wispr Flow-style voice input: hold to speak, release to type
- Speechify-style read-aloud flow for selected text
- Memory-aware AI support (Supermemory integration)
- AI integrations (Ollama / OpenAI / Anthropic / ElevenLabs for speech)
- Native macOS helpers (hotkeys, color picker, speech, snippet expansion)
- Electron (main process)
- React + Vite (renderer)
- TypeScript
- Swift binaries for macOS-native integrations
src/main/ Electron main process, IPC, extension execution, settings
src/renderer/ React UI + Raycast compatibility layer
src/native/ Swift native helpers
extensions/ Installed/managed extension data
dist/ Build output
Download the latest .dmg from the Releases page:
- Apple Silicon (M1/M2/M3/M4):
SuperCmd-x.x.x-arm64.dmg - Intel Mac:
SuperCmd-x.x.x.dmg
Open the .dmg, drag SuperCmd to your Applications folder, and launch it.
Note: On first launch, macOS may warn that the app is from an unidentified developer. Go to System Settings → Privacy & Security and click "Open Anyway".
SuperCmd needs the following permissions to work properly. The app will prompt you on first use, or you can enable them manually in System Settings → Privacy & Security:
| Permission | Why | Required for |
|---|---|---|
| Accessibility | Window management, keystroke injection | Window tiling, snippet expansion |
| Input Monitoring | Global hotkey detection (hold-to-speak, launcher shortcut) | Core launcher functionality |
| Microphone | Voice dictation (speech-to-text) | Optional — only if using voice features |
| Automation (AppleScript) | Selected text capture, system automation | Extension actions |
You may need to restart the app after granting permissions.
SuperCmd includes a built-in auto-updater. You can also check for updates manually from the launcher (search "Check for Updates").
Want to build from source or contribute? Follow these steps.
- macOS (required — native Swift modules won't compile on Linux/Windows)
- Node.js 22+ — check with
node -v - npm — comes with Node.js
- Xcode Command Line Tools — required for
swiftc(Swift compiler) - Homebrew — used at runtime to resolve
gitandnpmfor extension installation (seeextension-registry.ts)
If you don't have Xcode Command Line Tools:
xcode-select --installVerify Swift is available:
swiftc --versionIf you don't have Homebrew (required for extension management — SuperCmd uses brew-resolved git to clone extensions from GitHub):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"git clone https://github.com/SuperCmdLabs/SuperCmd.git
cd SuperCmd
npm installThe dev script does not compile the Swift native helpers — you need to build them once before your first run:
npm run build:nativeThis compiles the Swift binaries (color picker, hotkey monitor, speech recognizer, window manager, etc.) into dist/native/.
npm run devThis starts:
- TypeScript watch for main process
- Vite dev server for renderer
- Electron app in development mode
npm run buildThis runs build:main + build:renderer + build:native in sequence.
npm run packageOutput artifacts are generated under out/.
| Problem | Solution |
|---|---|
swiftc: command not found |
Run xcode-select --install and restart your terminal |
npm install fails on native modules |
Ensure Xcode CLT is installed and up to date: softwareupdate --install -a |
| App launches but hotkeys don't work | Grant Input Monitoring permission (not just Accessibility) and restart the app |
| Window management doesn't work | Grant Accessibility permission — window-adjust.swift checks AXIsProcessTrusted() |
| Extensions fail to install | Verify Homebrew is installed (brew --version) — SuperCmd needs brew-resolved git to clone extensions |
node-gyp build errors |
Check Node.js version (node -v) — requires 22+. Try deleting node_modules and re-running npm install |
| Apple Silicon (M1/M2/M3) issues | Ensure you're running the arm64 version of Node.js, not the x64 version via Rosetta |
Native features missing after npm run dev |
Run npm run build:native first — the dev script doesn't compile Swift binaries |
You can configure everything from the app UI:
- Launch SuperCmd.
- Open Settings.
- Go to AI tab.
- Turn AI on (
enabled = truein settings). - Pick your default provider (
OpenAI,Claude, orOllama). - Add the required key(s) and model settings.
- OpenAI: set
openaiApiKey - Anthropic (Claude): set
anthropicApiKey - Ollama: set
ollamaBaseUrl(defaulthttp://localhost:11434)
- ElevenLabs (for STT/TTS options): set
elevenlabsApiKey - Built-in Edge TTS option does not require an API key
Working preset voices in SuperCmd:
Rachel(21m00Tcm4TlvDq8ikWAM)Domi(AZnzlk1XvdvUeBnXmlld)Bella(EXAVITQu4vr4xnSDxMaL)Antoni(ErXwobaYiN019PkySvjV)Elli(MF3mGyEYCl7XYWbV9V6O)Josh(TxGEqnHWrfWFTfGW9XjX)Arnold(VR6AewLTigWG4xSOukaG)Adam(pNInz6obpgDQGcFmaJgB)Sam(yoZ06aMxZJJ28mfd3POQ)
Sample curl command:
curl -X POST "https://api.elevenlabs.io/v1/text-to-speech/21m00Tcm4TlvDq8ikWAM?output_format=mp3_44100_128" \
-H "xi-api-key: $ELEVENLABS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello from SuperCmd","model_id":"eleven_multilingual_v2"}' \
--output elevenlabs-sample.mp3- Supermemory API key:
supermemoryApiKey - Supermemory client id:
supermemoryClient - Supermemory base URL:
supermemoryBaseUrl(defaulthttps://api.supermemory.ai) - Optional local mode:
supermemoryLocalMode
All app settings (including AI keys) are persisted in:
~/Library/Application Support/SuperCmd/settings.json
Important fields inside settings.json:
{
"ai": {
"enabled": true,
"provider": "openai",
"openaiApiKey": "",
"anthropicApiKey": "",
"elevenlabsApiKey": "",
"supermemoryApiKey": "",
"supermemoryClient": "",
"supermemoryBaseUrl": "https://api.supermemory.ai",
"supermemoryLocalMode": false,
"ollamaBaseUrl": "http://localhost:11434",
"defaultModel": "openai-gpt-4o-mini",
"speechToTextModel": "native",
"textToSpeechModel": "edge-tts"
}
}ELEVENLABS_API_KEYSUPERMEMORY_API_KEYSUPERMEMORY_CLIENTSUPERMEMORY_BASE_URLSUPERMEMORY_LOCAL
We welcome contributions! See CONTRIBUTING.md for detailed guidelines on development setup, code architecture, PR conventions, and more.
Quick version:
- Fork the repo and create a feature branch.
- Make your changes, keeping Raycast extension compatibility in mind.
- Run
npm run buildto verify. - Open a PR with a clear description of what, why, and how you tested.
npm run dev # Start local development
npm run build # Build main, renderer, and native modules
npm run build:main # Build Electron main process TS
npm run build:renderer # Build renderer with Vite
npm run build:native # Compile Swift helpers
npm run package # Build and package app with electron-builder- Raycast API docs: https://developers.raycast.com/api-reference/
- Raycast extension store: https://www.raycast.com/store
