Skip to main content

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

Prerequisites
  • 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 vibetty from source, or a compiled vibetty binary

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:

alt text

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

  1. Power on VibeKeys Max - it will start in keyboard mode
  2. Find your computer's local IP address -- you can simply ask the running Claude Code: "What is your LAN IP address"?
  3. Open the VibeKeys setup page on your computer
  4. Click Connect and select "VibeKeys Max" from the list
  5. Enter your WiFi name and password — the network must be 2.4GHz (VibeKeys Max does not connect to 5GHz)
  6. Enter the server URL: ws://YOUR_COMPUTER_IP:3000/ws
  7. Click Save Changes and wait for the device to connect

Configuring WiFi and the VibeKeys Server WebSocket URL on the setup page

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.

  1. Press Voice and speak your prompt.
  2. Review the transcription on the screen.
  3. Press Accept to send it to Claude Code.
  4. Use to delete characters if you want to edit the pending input.
  5. Press ESC to 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.

Use case

Remote control mode is useful for distance coding, demos, and reviews where you do not want to stay at the keyboard.