VibeKeys Max Remote Control Mode
In remote control mode, VibeKeys Max connects to your computer over WiFi and lets you drive Claude Code or OpenAI Codex with voice input and physical controls.
If you want an alternative to Whisper for speech-to-text, see Speech-to-Text with Vosk.
What You'll Need
- VibeKeys Max with firmware pre-installed
- A computer running macOS, Linux, or Windows 10 (1809+) / Windows 11
- Claude Code 2.1.0 or newer, or OpenAI Codex
- A local WiFi network that both your computer and VibeKeys Max can access
- Either Rust and Cargo for building
vibettyfrom source, or a compiledvibettybinary
Step 1: Start the coding agent server with vibetty
vibetty is the local bridge between VibeKeys Max and your coding agent (Claude Code or OpenAI Codex). Start it on your computer before pairing the device.
Set up the voice recognition service
You can setup the following environment variables for a speech-to-text service. Here we are using Groq for speech recognition and dictation, which is very fast and cheap.
VIBECODE_ASR_API_KEY=your_api_key_here
VIBECODE_ASR_URL=https://api.groq.com/openai/v1/audio/transcriptions
VIBECODE_ASR_MODEL=whisper-large-v3
VIBECODE_ASR_LANG=en
VIBECODE_ASR_PROMPT=
VIBECODE_EXIT_COMMAND="Bye"
If you prefer a setup that does not require an API key, see Speech-to-Text with Vosk.
Use the following command to set all environment variables in a .env file for the current terminal / shell.
set -a
source .env
On Windows, vibetty loads a .env file in the working directory automatically, so no source step is needed. You can also set the variables in PowerShell:
$env:VIBECODE_ASR_API_KEY = "your_api_key_here"
$env:VIBECODE_ASR_URL = "https://api.groq.com/openai/v1/audio/transcriptions"
$env:VIBECODE_ASR_MODEL = "whisper-large-v3"
Download the vibetty binary
Grab the latest pre-built binary from the vibetty releases page. Pick the build for your platform, or use the commands below.
macOS with M chip
curl -LO https://github.com/second-state/vibetty/releases/latest/download/vibetty-macos-arm64
chmod +x vibetty-macos-arm64
sudo mv vibetty-macos-arm64 /usr/local/bin/vibetty
Windows
Invoke-WebRequest -Uri "https://github.com/second-state/vibetty/releases/latest/download/vibetty-windows-x64.exe" -OutFile "vibetty.exe"
# Add to PATH or move to a directory in PATH
Linux
wget https://github.com/second-state/vibetty/releases/latest/download/vibetty-linux-x64
chmod +x vibetty-linux-x64
sudo mv vibetty-linux-x64 /usr/local/bin/vibetty
Prefer to compile it yourself? See Build from source below.
Run a compiled binary
If you already have a compiled vibetty binary, pass your coding agent after -- — claude for Claude Code or codex for OpenAI Codex:
cd path/to/workspace/
path/to/vibetty -- claude # Claude Code
path/to/vibetty -- codex # OpenAI Codex
On Windows, use the .exe from PowerShell or Command Prompt:
cd path\to\workspace\
path\to\vibetty-windows-x64.exe -- claude
It runs the service at port 3000 by default. You can change it by pass the -b argument.
# Run the service at port 8888
path/to/vibetty -b 8888 -- claude
You could append any claude parameter that you like.
# YOLO
path/to/vibetty -- claude --dangerously-skip-permissions
# Resume from last session in this workspace
path/to/vibetty -- claude -c --dangerously-skip-permissions
You should see a new Claude Code window like this:

Build from source
If you want to build from scratch, check out the vibetty GitHub repo and follow its build instructions.
Step 2: Connect VibeKeys Max to vibetty
- Power on VibeKeys Max - it will start in keyboard mode
- Find your computer's local IP address -- you can simply ask the running Claude Code: "What is your LAN IP address"?
- Open the VibeKeys setup page on your computer
- Click Connect and select "VibeKeys Max" from the list
- Enter your WiFi name and password — the network must be 2.4GHz (VibeKeys Max does not connect to 5GHz)
- Enter the server URL:
ws://YOUR_COMPUTER_IP:3000/ws - Click Save Changes and wait for the device to connect

Your computer and VibeKeys Max must be on the same local network, and port 3000 must be reachable from the device. You can change the default vibetty port from 3000 to your favorite number using the -b option.
Step 3: Start vibe coding
When the VibeKeys Max screen shows VibeKeys Ready and Server Connected, the device is ready to control Claude Code.
- Press
Voiceand speak your prompt. - Review the transcription on the screen.
- Press
Acceptto send it to Claude Code. - Use
←to delete characters if you want to edit the pending input. - Press
ESCto cancel the pending input.
When Claude offers multiple choices, press Claude to cycle through them and Accept to choose one.
After Claude responds, use the knob to scroll through the output on the VibeKeys Max screen, then repeat the same flow for your next prompt.
Remote control mode is useful for distance coding, demos, and reviews where you do not want to stay at the keyboard.
Related docs
- Quick Start
- Keyboard Mode (recommended default)
- Buttons And Keys
- Speech-to-Text with Vosk
- Troubleshooting