Skip to content

Repository files navigation

V2Do

English | 简体中文

Say it once. The reminder appears automatically.

Hold a shortcut, speak, and release. V2Do transcribes your voice locally, asks Claude to split and structure the tasks, converts relative time expressions, and writes the result to Apple Reminders.

Hold trigger → record with a menu-bar and HUD indicator
Release      → transcribe locally with SpeechAnalyzer
             → structure tasks and dates with Claude
             → write reminders through EventKit
             → show a confirmation notification with Undo

For example, “Remind me to eat at noon tomorrow, and submit the expense report before Friday” becomes two reminders with the corresponding due dates.

Features

  • Local speech recognition — audio stays on the Mac; only transcribed text is sent to the configured LLM.
  • Relative date parsing — understands phrases such as “tomorrow at 3 PM,” “before Friday,” and “in half an hour.”
  • Multiple tasks from one recording — splits a single spoken note into separate reminders.
  • Offline fallback — if the model is unavailable, the original transcription is saved instead of discarded.
  • Undo from the notification — remove reminders created by the most recent recording.
  • Accidental-trigger protection — recordings shorter than 0.5 seconds are ignored.
  • Native Reminders integration — benefits from Apple notifications, Siri, and iCloud sync.
  • Menu-bar operation — optional launch at login, hidden Dock icon, and weekly creation/completion statistics.

Requirements

  • macOS 26 or newer; local transcription uses the SpeechAnalyzer API.
  • An Anthropic API key or an Anthropic-compatible gateway for task extraction.

Installation

Download a DMG

Download the latest V2Do-x.y.z.dmg from Releases, drag V2Do into Applications, and use right-click → Open the first time because the app is self-signed.

Build from source

git clone https://github.com/realruian/v2do.git
cd v2do
python3 make_icon.py   # requires Pillow only when regenerating the icon
./build_app.sh
./make_dmg.sh          # optional

The application bundle is written to dist/V2Do.app.

First-run setup

  1. Grant Microphone, Reminders, and Accessibility permissions.
  2. Add an Anthropic API key in Settings. For a compatible gateway, also set its base URL.
  3. Choose a trigger key and reminder list.
Setting Description
API key Official Anthropic key or a compatible gateway key
API URL Empty for api.anthropic.com, otherwise the compatible gateway base URL
Model Defaults to a fast Haiku model; other supported models can be selected
Trigger Right Option, Right Command, Right Control, or Left Control
Reminder list Empty uses the system default list

Technology

Layer Implementation
Desktop app Swift Package, AppKit, and SwiftUI
Global shortcut NSEvent global flagsChanged monitor
Speech recognition macOS SpeechAnalyzer and SpeechTranscriber
Task extraction Claude Messages API with tool-use JSON output
Reminders EventKit EKReminder
Notifications UserNotifications with an Undo action

Known limitations

  • The current build is self-signed and not notarized.
  • Gateways must support the Anthropic /v1/messages format; OpenAI-only gateways are not supported.
  • Speech recognition is currently fixed to Simplified Chinese.

License

MIT

About

说一句话,待办自动出现 — 长按快捷键语音速记,AI 解析后自动写入 macOS 系统提醒事项(本地转写 + Claude 结构化)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages