Skip to content

Wristotle

Companion release Companion build F-Droid

Watch release Watch build

License Buy Me a Coffee Liberapay

Voice assistant for the Pebble smartwatch — runs on your phone by default, no cloud required.

Press select on your Pebble. Speak. The command runs on your Android phone — call a contact, send an SMS, set a reminder, open an app, play music. Transcription happens on the device with Whisper (or any OpenAI-compatible cloud / self-hosted endpoint you opt into); intent classification happens on the device with a small sentence encoder. By default, nothing leaves your phone.


What you can say

Say on the watch What happens on the phone
"Call Mom" / "Ring Mom" Places the call
"Text Dad I'll be late" Sends the SMS
"Remind me to pick up milk at 5pm" Creates a watch-side reminder
"Cancel reminder" Cancels the most recent reminder
"Open Spotify" / "Launch Maps" Launches the app
"Play Audible" / "Pause" / "Next" Cross-app media control
"Rewind 10 seconds" / "Skip ahead 30 seconds" Seek within current track
"Ask agent what's the capital of France" Routes the question to your configured LLM (Anthropic / OpenAI / OpenRouter / Ollama / …)

Full list with paraphrases on the Voice commands page.


Why Wristotle

  • On-device by default. Whisper runs locally; intent classification runs locally. Dictation audio never leaves your phone unless you opt into a cloud or self-hosted speech endpoint (OpenAI / Groq / Cloudflare / Speaches / whisper.cpp HTTP server / …). No account, no subscription, no telemetry.
  • Works with any media app. Open and control Spotify, YouTube, Audible, Pocket Casts, or any app that registers a MediaSession — across apps, even with the screen off.
  • Conversation history on the phone. Every command (and what the phone did with it) is saved in a chat-style timeline, with retention you control (1 / 10 / 20 / 30 days, default 10).
  • Replayable dictation audio (microPebble only). Opt in to save the recording for each dictation so you can listen back. Last 5 are kept, off by default for privacy. Not available under Core Devices, which runs its own dictation — the audio never reaches Wristotle.
  • Backup & restore. Export your notes, tasks, conversations, learned phrases, app + contact aliases, reminders, and settings to a ZIP file (anywhere — Drive, OneDrive, local file). Optional AES-256 password protection. Restore later or on a new device with a merge-by-ID flow that won't overwrite existing data.
  • Confirm before send (optional). Turn it on and any action-taking command (call, SMS, reminder, calendar create, app launch, media play) pauses on the watch with a "What I'll do: …" summary first. SELECT to send, BACK to cancel. Configurable timeout + default action.
  • Ask Agent (optional, bring-your-own-key). Say "ask agent <question>" / "ask claude <question>" to route to any LLM you configure (Anthropic, OpenAI, OpenRouter, Ollama, llama.cpp, …). Optional routing modes send unrecognised speech — or, hands-free, every command with no wake word — to the agent, and conversation memory keeps recent turns so follow-ups ("and tomorrow?") work. Add HTTP MCP servers under Settings to let the LLM call tools (GitHub, custom MCP servers, …) and the watch shows a per-tool status line during the agent loop. Off by default — until you paste an API key, the intent answers "No agent key set" and nothing leaves the phone.
  • Open source. AGPLv3-licensed. Sideload, fork, audit.

Two pieces

Wristotle is two apps that work together:

  • Watch app.pbw for Pebble (basalt / chalk / diorite / emery / flint / gabbro). Owns the on-screen chat, dictation triggers, vibration feedback, quick-launch, and local commands (time, battery, steps, find phone).
  • Android companion — on F-Droid, or sideload the APK from Codeberg. Bridges the watch to phone capabilities (calls, SMS, reminders, app launch, media control), runs the speech recognizer (on-device Whisper by default, or any OpenAI-compatible cloud / self-hosted endpoint you configure) + the on-device intent classifier, persists the conversation history.

You also need one of microPebble or Core Devices (formerly rePebble) — those handle the BLE link to the watch. Wristotle plugs into them. Note that Wristotle's on-device Whisper only intercepts watch dictation under microPebble; Core Devices handles its own dictation pipeline. See Install for the tradeoffs.


Get started

  1. Install — companion from F-Droid (watch app from its store) + first-run setup
  2. Voice commands — what to say
  3. Troubleshooting — when something doesn't work
  4. Bug reports — the in-app diagnostics export