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
- macOS (required for native Swift modules)
- Node.js 18+
- npm
- Xcode Command Line Tools (
swiftcavailable)
npm installnpm run devThis starts:
- TypeScript watch for main process
- Vite dev server for renderer
- Electron app in development mode
npm run buildnpm run packageOutput artifacts are generated under out/.
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
- Fork the repository and create a feature branch.
- Keep compatibility with existing Raycast extensions.
- Follow current code organization:
- API/runtime work in
src/renderer/src/raycast-api/ - System-level logic in
src/main/ - UI views/hooks in
src/renderer/src/
- API/runtime work in
- Run build checks before opening a PR:
npm run build- In your PR, include:
- What changed
- Why it changed
- Compatibility impact (if any)
- How you tested it
Current pending/roadmap items:
- Complete OAuth implementation in the Raycast API compatibility layer
- Expand
BrowserExtensionsupport beyond current stubs - Improve selected text/Finder item behavior with macOS permissions handling
- Harden asset loading/path resolution for extension assets
- Add a broader automated test suite (unit + integration + compatibility)
- Continue parity work for edge-case Raycast APIs and behaviors
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
