Use the iPhone's built-in voice input to capture thoughts quietly, then keep the text flowing into your Mac.
say vibe is a local-first iPhone + Mac workflow for low-friction dictation, silent vibe capture, and fast text handoff.
|
|
|
| Settings | Vibe |
- It reuses the system input method's voice typing instead of rebuilding ASR from scratch, which makes dialects and language switching much easier to inherit from the OS.
- It supports a quieter, lower-friction vibe workflow: speak first, land text fast, then refine on the Mac without breaking flow.
This repository is currently centered around two actively maintained directories:
ios/- SwiftUI iPhone client
- connection, syncing, pairing, meeting notes
pc_rust/Vue + Vite + Tauri + Rustdesktop relay- pairing QR, relay state, logs, auto output
Other folders are legacy experiments or transition artifacts and are not the main focus of this open-source release.
- Three main tabs:
Settings,Vibe,Meeting Notes - LAN scan, recent devices, QR pairing
- Debounced text sync to the desktop relay
- Remote control for desktop auto-output mode
- Dedicated
PC Entertrigger - Meeting notes stored as exportable documents
- Chinese / English UI
- Light / dark / system theme
- Home Screen widget shortcut
- Runs a local relay that stays compatible with the mobile protocol
- Shows pairing QR, LAN addresses, sync status, recent text, and logs
- Supports two auto-output action modes
Review: replace text and stay in the fieldSend: replace text and press Return
- Supports a dedicated
/api/control/pc-enterendpoint - Keeps the text mirror non-copyable by default to avoid accidental
Command+Ainteraction
- Start the desktop relay on your Mac.
- Pair the iPhone by scanning the QR code or entering the LAN address manually.
- Use the iPhone keyboard's voice input to capture text and push it to the focused desktop workflow.
ios/SayVibe.xcodeprojios/SayVibe/ios/SayVibeWidget/ios/scripts/pc_rust/src/pc_rust/src-tauri/docs/media/assets/logo/
cd pc_rust
npm install
npm run tauri:devDefault relay port: 18700
If the port is already in use:
cd pc_rust
PORT=18701 npm run tauri:devBuild the desktop app:
cd pc_rust
npm run tauri:build- Open
ios/SayVibe.xcodeprojwith full Xcode. - Select your own Apple Team in
Signing & Capabilities. - Run on an iPhone.
- Pair with the desktop app via QR or LAN address.
Package an IPA:
./ios/scripts/package-iphone.shRebuild the app icon from the shared logo:
./ios/scripts/generate-appicon.shGET /healthGET /api/stateGET /eventsGET /dashboardGET /androidPOST /api/push_textPOST /api/control/auto-imePOST /api/control/auto-ime-modePOST /api/control/pc-enter
- The current product shape is local-first and LAN-only.
- There is no cloud account system, TLS layer, or authentication yet.
- macOS auto output requires Accessibility permission.
- For release builds on macOS, the authorized app should be
say vibe.app. - IPA export depends on your own Apple signing environment, certificates, and Team.
If you use say vibe, want to follow future updates, or would like to support ongoing development, you can use the channels below:
- The WeChat group QR code is temporary. If it has expired, add the personal WeChat account first and I can invite you into the latest group later.
- Sponsorship is welcome and helps keep development moving consistently.
|
|
|
|
| WeChat Group | Personal WeChat | Sponsorship |
- Maintainer:
aqiangai - License:
MIT