A fast MCP server for opening, focusing, and quitting macOS apps — and opening links in your browser — by voice or from any MCP client.
Much faster than macos-mcp — uses open -a and osascript directly with no heavy runtime overhead.
voiceos-open-app-demo.mov
| Tool | What it does |
|---|---|
open_app |
Open an app by name or alias |
focus_app |
Bring a running app to the foreground |
quit_app |
Quit a running app gracefully |
list_running_apps |
List all currently open apps |
set_volume |
Set system volume 0–100 |
open_url |
Open a URL in the default browser (adds https:// automatically) |
Say something like "open google.com" or "go to notion.so" and it opens in your default browser. It automatically adds https:// if you don't include it.
Say natural names — the server resolves them automatically:
| You say | Opens |
|---|---|
| browser / chrome | Google Chrome |
| code / cursor | Cursor |
| messages / beeper | Beeper Desktop |
| vpn / protonvpn | ProtonVPN |
| terminal | Terminal |
See APP_ALIASES in macos-app-launcher.ts for the full list.
- macOS
- Node.js 18+ — download from nodejs.org if needed
git clone https://github.com/gabeperez/macos-app-launcher.git
cd macos-app-launcher
npm install
chmod +x start.sh
⚠️ Thechmod +x start.shstep is required. You'll get anEACCESerror in VoiceOS if you skip it.
See the VoiceOS install guide for step-by-step setup, or add it manually:
Settings → Integrations → Custom Integrations → Add
| Field | Value |
|---|---|
| Name | 🚀 Launcher |
| Launch command | /absolute/path/to/macos-app-launcher/start.sh |
For example: /Users/yourname/macos-app-launcher/start.sh
Then speak:
- "Open Chrome"
- "Launch Spotify"
- "Focus Slack"
- "Quit Discord"
- "Set volume to 40"
- "Open github.com"
- "Go to notion.so"
- "What apps are open?"
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"macos-app-launcher": {
"command": "/absolute/path/to/macos-app-launcher/start.sh"
}
}
}macos-mcp runs via bun with a full JS runtime init on every invocation. This server uses open -a (~50ms, native macOS) and osascript directly — no heavy dependencies, no startup delay.
MIT