A pocket-sized voice messenger for the AI agents already running on your computer.
Anya pairs a small ESP32-S3 device with a local desktop app. Press the button, speak naturally, and Anya streams your voice to your Mac or Windows PC, routes it to the selected coding or assistant agent, then speaks the answer back through the device speaker while showing a short summary on screen.
The device stays simple. The desktop app does the heavy work: local speech recognition, agent routing, history, firmware management, self-updates, logs, and session recovery.
- Push-to-talk voice workflow — Hold the device button, speak, release, and get a spoken response.
- Local-first speech pipeline — Audio is transcribed on your computer, routed to the selected agent, synthesized, and streamed back to the device.
- Multi-agent support — Works with Claude Code, Codex, OpenCode, Kimi, Hermes, and Pi through ACP-compatible adapters.
- Agent session picker on device — Browse the 10 most recent agent sessions, see each title and working directory, resume one, or start a new session. When a session is selected, Anya follows that session's working directory.
- Menu bar desktop app — Switch agents, open the app, change the working directory, and update from the macOS/Windows tray menu.
- Conversation history — Local searchable history with selectable/copyable message text.
- Device firmware management — Flash bundled firmware over USB and update connected devices over the air, with version checks and progress.
- Desktop self-update — Automatic update checks run every 4 hours. Once a new version is found, the standard menu changes from Check for Updates to Update Now.
- Runtime logs in Settings — View the desktop log file location, size, modified time, and recent log tail from the app.
- Reconnect and status handling — Paired devices reconnect automatically and compute their status from the live desktop/device interaction.
Anya is not tied to one model provider. It talks to local agents through ACP-style adapters, so you can keep using the tools you already have installed:
- Claude Code
- Codex
- OpenCode
- Kimi
- Hermes
- Pi
Agents can be installed, selected, updated, and switched from the desktop app. Recent real agent sessions can also be resumed from the device UI.
- Press and hold the device button.
- The device streams audio to the desktop app over your local network.
- The desktop app transcribes the audio, sends the text to the selected agent, and collects the response.
- The response is stored in local history, summarized for the device screen, synthesized into speech, and streamed back for playback.
Anya currently targets the M5StickS3 ESP32-S3 Mini IoT Dev Kit, using its:
You also need a USB-C cable for firmware flashing and power, plus a Mac or Windows PC on the same local network.
Download the latest macOS or Windows release, or build from source:
./build.shOn first launch, Anya creates local state under ~/.elf/.
Plug the device in over USB-C and flash from PlatformIO:
cd firmware
pio run --target uploadYou can also use Settings → Device Firmware in the desktop app to flash the bundled firmware image.
If the device has no saved WiFi credentials, it enters WiFi setup automatically. You can also reopen setup later from the device menu with Choose WiFi.
- When the device screen says Connect to Anya, connect your phone or computer to the WiFi network named
Anya. - The setup page should open automatically. If it does not, open
http://192.168.4.1/. - The page scans nearby WiFi networks. Pick your network, enter the password if needed, and tap Connect.
- The device saves the credentials, leaves setup mode, and joins your network.
- Open the Anya desktop app.
- Go to Device and scan for nearby devices.
- Connect and authorize the device.
- The device remembers the desktop app and reconnects automatically.
Select an agent in the app or tray menu. Then hold the device button and talk. To resume existing work, open the device session picker and choose one of the recent agent sessions or start a new one.
- Agent management — Detect installed agents, install missing ones, check for updates, cancel installs, and switch active agents.
- Working directory control — Pick a default working directory from the desktop app; resumed agent sessions can override it with their own directory.
- History — Browse local conversations, search them, and copy message content.
- Logs — Inspect recent desktop logs directly from Settings when debugging device, audio, update, or agent issues.
- Self-update — Check manually from Settings or the native menu; background checks run every 4 hours.
- Tray/menu bar integration — Both left-click and right-click open the tray menu. The Agent submenu is localized as 智能体 in Chinese.
Anya supports two firmware paths:
- USB flashing from Settings → Device Firmware or
cd firmware && pio run --target upload. - Over-the-air updates for paired devices, including version detection, progress reporting, cancellation, and automatic restart after completion.
The desktop build can embed the latest firmware binary so users only need the desktop app and a connected device.
Anya is designed to stay local by default:
- Speech recognition runs on your computer.
- Conversation history is stored in a local SQLite database.
- Agent calls go through local agent CLIs/adapters that you control.
- Device traffic stays on your local network.
- Runtime logs are stored locally under the Anya data directory.
- Push-to-talk voice requests
- Multi-agent support: Claude Code, Codex, OpenCode, Kimi, Hermes, Pi
- Device-side recent agent session picker
- Local searchable/copyable history
- Runtime log viewer
- Desktop self-update and firmware OTA
- mDNS discovery and automatic reconnection
- Wake-word activation
- More ESP32-based device profiles

