Voice control and the command palette

Genie gives you two ways to control your workspace without touching the mouse: voice commands (push-to-talk) and the Command Palette (⌘K). Both let you spawn agents, organize your canvas, and interact with nodes — pick whichever fits your flow.

Written By Deva

Last updated About 2 months ago

Voice Control

How It Works

  1. Hold ⌥ (Option) to start recording.

  2. Speak your command — "spawn codex," "organize," "open browser."

  3. Release ⌥ to stop recording. Genie processes your speech and executes the command.

A Voice HUD appears while recording, showing the recording state and a real-time transcript preview.

Speech-to-Text Backends

Genie supports three STT engines. Choose yours in Settings → Voice:

BackendHow It WorksBest For

Apple on-device (default)

Uses macOS built-in speech recognition. No API key needed, fully offline.

Privacy-first, low latency

OpenAI Realtime

Streams audio to OpenAI for transcription. Requires API access.

High accuracy, especially noisy environments

Deva

Enterprise transcription via Deva platform.

Team/enterprise deployments

Voice Commands Reference

Genie's voice router classifies your speech into intents. Here are the commands it recognizes:

Spawning Nodes

SayResult

"spawn claude"

New Claude Code agent terminal

"spawn codex"

New Codex agent terminal

"spawn cursor"

New Cursor agent terminal

"spawn shell"

New plain terminal

"open browser"

New browser node

"note [text]"

New note with the spoken text (e.g., "note fix the auth bug")

Canvas Control

SayResult

"organize"

Auto-layout all nodes in a tidy arrangement

"focus [node name]"

Bring a specific node to the front

"switch to [canvas name]"

Switch to a different canvas

"switch to outrun" / "switch to night"

Change the canvas background theme

Talking to Agents

SayResult

"tell [name] to [instruction]"

Send a text prompt to a named node (e.g., "tell Claude to commit")

Anything else

Free dictation — sent as a prompt to the currently focused agent node

Voice Log

All voice commands are recorded in the Voice Log panel — a chat-style history showing every command you've issued, what intent Genie recognized, and what action it took. Useful for reviewing your session or debugging if a command was misheard.


Command Palette (⌘K)

The Command Palette is the keyboard-driven alternative to voice. Press ⌘K to open it, then type or select an action.

Available Actions

Spawn Nodes

  • Claude Code, Codex, Cursor, Shell

  • Browser, Note, Studio, Music, Command Hub

Canvas Actions

  • Organize — Auto-layout all nodes

  • Fleet View — Grid all terminal nodes for quick scanning

  • Focus — Focus the currently selected node

  • Close — Close selected node(s)

Navigation

  • New Canvas — Create a new workspace (also ⌘⇧N)

Tips for the Palette

  • Start typing to filter actions — "cla" quickly narrows to "Claude Code."

  • Press Enter or Shift+Enter to select.

  • The new node appears at the center of your current viewport.


Command Bar

At the bottom of the canvas, there's a command bar for typed commands. This is an alternative to voice for users who prefer typing:

create_node note --x 100 --y 80 

The command bar accepts the same bridge verbs available to agents via rexctl. See the Running coding agents article for the full verb list.


Keyboard Shortcuts

ShortcutAction

⌘K

Open Command Palette

⌘+ / ⌘-

Zoom in / out

⌘0

Reset zoom to actual size

⇧⌘0

Fit all content in view

⌘N

New canvas

⌘⇧N

New canvas (alternate)

⌘V

Paste image from clipboard onto canvas

⌘,

Open Settings

Delete

Remove selected nodes or shapes

⌥ (hold)

Push-to-talk voice recording


Troubleshooting Voice

"Voice isn't responding"

  1. Check that Microphone permission is granted: System Settings → Privacy & Security → Microphone → Genie.

  2. Check Speech Recognition permission: System Settings → Privacy & Security → Speech Recognition → Genie.

  3. Try switching STT backends in Settings → Voice.

"Commands are misheard"

  • Speak clearly and pause briefly before the command word.

  • If you're in a noisy environment, try switching to OpenAI Realtime for better accuracy.

  • Check the Voice Log to see what Genie heard vs. what it did.

"I said something but nothing happened"

  • Make sure you're holding ⌥ while speaking and releasing after you finish.

  • If the command wasn't recognized as an intent, it was likely sent as free dictation to your focused agent. Check the focused node for the text.