# Tiro AI Notetaker Research — 2026-07-01
AI Summary
Purpose:
- Preserve the external research used to plan a personal Tiro-like cross-platform AI notetaker.
Key points:
- Tiro is positioned as an AI notetaker for meetings, lectures, and calls: record/transcribe, summarize into notes, build wiki knowledge, and expose notes/wiki to agents via API/MCP/CLI.
- Its platform story is web, desktop Windows/Mac, mobile iOS/Android, and Apple Watch.
- The highest-signal product features are realtime transcription/translation, offline recording, file upload, context hints, word memory, speaker diarization, templates, workspace folders/sharing, Slack/API/MCP/CLI integration, and privacy claims around audio disposal and encrypted Seoul-region note storage.
- For Hyunwook's personal MVP, the best implementation direction is Flutter + Dart for the shared app, SQLite/Drift for local-first storage, local audio files as the durable source, whisper.cpp-based batch transcription first, and a small optional sync/API layer later.
Relevant when:
- Planning or implementing the personal AI notetaker project.
- Comparing Tiro product behavior with an MVP scope.
- Choosing mobile/desktop framework and transcription architecture.
Do not read full document unless:
- You need source URLs, feature constraints, or rationale behind the chosen implementation plan.
Linked documents:
ai/wiki/projects/personal-ai-notetaker.mdONBOARDING.md
Open Questions
- Exact target repository name and path are not created yet.
- Whether the user wants fully local transcription only, cloud STT fallback, or a hybrid path is not final.
- Whether Apple Watch is in scope is not final; it should be excluded from the first MVP unless explicitly requested.
- Speaker diarization quality target is not final; first MVP should treat this as a later phase.
Details
User intent
The user wants to build a Tiro-like app primarily for personal use first. Required platforms: macOS, iOS, and Android. If it becomes useful through daily use, the user may later release it for free. The first task is not to build the app yet, but to research the product and record a practical implementation plan in the LLM Wiki onboarding knowledge base.
Tiro product facts observed from public docs
Sources:
https://tiro.ooo/ko/https://docs.tiro.ooo/llms.txthttps://docs.tiro.ooo/ko/guide/start/overviewhttps://docs.tiro.ooo/ko/guide/start/downloadhttps://docs.tiro.ooo/ko/guide/recording/livehttps://docs.tiro.ooo/ko/guide/recording/offlinehttps://docs.tiro.ooo/ko/guide/recording/uploadhttps://docs.tiro.ooo/ko/guide/recording/diarizationhttps://docs.tiro.ooo/ko/guide/recording/contexthttps://docs.tiro.ooo/ko/guide/notes/templateshttps://docs.tiro.ooo/ko/guide/notes/api-mcp-cli
Observed features:
- Tiro is an AI notetaker that automatically transcribes and summarizes meetings, lectures, and calls.
- Product loop: record conversation → create structured note → accumulate wiki knowledge → let AI agents use that knowledge.
- Platforms:
- Web: realtime recording, audio upload, note management; no system audio/offline recording due to browser restrictions. - Desktop Windows/Mac: realtime recording, system audio capture, offline recording/local audio storage, file upload, meeting reminders, auto update. - Mobile iOS/Android: offline recording by default, realtime mode, background recording, language auto-detection, upload; Android supports call recording conversion where OS/device policy allows. - Apple Watch: starts recording and transfers to iPhone.
- Recording modes:
- Realtime transcription with optional live translation when conversation language and output language differ. - Offline recording: stores audio on-device first and uploads/converts later when network is available. - Audio/video file upload: supports common formats and converts audio into note/script/summary; public docs mention per-file limits of 1GB and 5 hours. - Conference mode exists but is not core for the personal MVP.
- Accuracy aids:
- Context hints before/during recording: situation, people, company/product names, desired summary tone; supports attachments up to documented limits. - Word memory/wordbook for recurring proper nouns. - Speaker diarization after recording; realtime mode does not split speakers during recording, but can re-analyze after finish.
- Outputs:
- One-page structured document by topic. - Time-ordered conversation record. - Full script/transcript with editable speaker tags. - Custom template generation: Q&A, action items, example document, and free-text instruction sections.
- Collaboration/automation:
- Workspaces, team folders, automatic sharing, Slack sharing. - API, MCP, and CLI for external systems and agents to query notes/wiki. Docs say API/MCP/CLI access itself has no additional charge for querying already-created notes, with rate limits.
- Privacy/security claims:
- Public docs claim audio is discarded after text conversion, notes are encrypted and stored in the Seoul region, and customer data is not used for AI training. For a personal clone, these claims should become explicit product requirements if the app is ever shared.
Implementation research facts
Flutter lane:
recordpackage supports microphone recording across Android, iOS, Linux, macOS, web, and Windows.desktop_audio_capturepackage claims Flutter desktop microphone and system-audio capture support for macOS/Linux/Windows, with macOS 13+ requirement for system audio.whisper_ggmlandwhisper_ggml_plusexpose whisper.cpp-based on-device transcription for Flutter, including Android/iOS/macOS support;whisper_ggml_plusdescribes file-based batch transcription and optional Metal/CoreML acceleration on iOS/macOS.- Supabase's Flutter offline-first guide with Brick and other Drift/SQLite patterns support local-first app design, but personal MVP should start local-only and add sync later.
Native macOS lane:
- Apple's ScreenCaptureKit provides high-performance screen/audio capture on macOS and supports system audio capture; native Swift is the most reliable path if Flutter system-audio capture is insufficient.
- Open-source macOS examples show ScreenCaptureKit + whisper.cpp or Apple Speech APIs can implement local meeting transcription.
Recommended interpretation
Do not try to clone all of Tiro. The personal MVP should focus on the part the user will repeatedly use:
- Fast recording on phone and Mac.
- Reliable offline-first capture.
- Convert finished audio into transcript.
- Generate a Korean summary/action-item note.
- Search older notes.
- Export Markdown.
Avoid first-phase complexity:
- Workspace/team collaboration.
- Billing/credits.
- Slack automation.
- Public API/MCP server.
- Apple Watch.
- Full web app.
- Production-grade diarization.
- Perfect realtime streaming transcription.
Chosen stack recommendation
Primary stack:
- App: Flutter + Dart.
- Local DB: Drift over SQLite.
- Audio capture:
- Mobile and basic desktop mic: record package. - macOS system audio: experiment with desktop_audio_capture; if unreliable, add a small native Swift helper using ScreenCaptureKit and bridge it to Flutter.
- Transcription:
- MVP: file-based local transcription with whisper_ggml_plus or direct whisper.cpp binding; use tiny/base for speed and small/large-v3-turbo only when hardware allows. - Convert audio to 16kHz mono WAV before inference where needed. - Keep cloud STT as optional fallback only if local quality/performance blocks daily use.
- Summarization:
- MVP can call a configured LLM endpoint or local model, but secrets must stay outside docs and config examples must use [REDACTED]. - Generate Markdown sections: summary, decisions, action items, keywords, raw transcript link.
- Storage:
- Store audio files locally first. - Store transcript/note metadata in SQLite. - Add export/import folder as plain Markdown + audio attachments.
- Sync later:
- Phase 2 can add Supabase or a tiny FastAPI backend for cross-device sync. - Keep local-first semantics: local write succeeds first; sync queue retries later.
Phased MVP
Phase 0 — Spike:
- Create a Flutter prototype that records microphone audio on Android/iOS/macOS and stores an audio file.
- Run file-based Whisper transcription on one real Android device, one iPhone, and macOS.
- Separately test macOS system-audio capture.
- Output transcript as Markdown.
Phase 1 — Personal MVP:
- Local note list.
- New recording flow: title/context/language → record/pause/resume/stop → transcribe → summarize → save.
- Upload existing audio/video file and convert to note.
- Markdown export.
- Search notes by title/transcript/summary.
- Manual speaker labels, not automatic diarization.
Phase 2 — Daily-use polish:
- Background recording robustness.
- Recording crash recovery.
- Model download/manage screen.
- Word memory for recurring names/products.
- Template-based summaries.
- macOS menu bar quick record.
- Optional sync.
Phase 3 — Share/free release:
- Privacy policy, data handling spec, signed builds, update channel.
- Optional public API/MCP/CLI after the note schema stabilizes.
- Full speaker diarization and workspace features only if actual user demand appears.
Risk register
- macOS system audio is the hardest platform-specific feature. Treat it as a separate native capability, not as proof that the whole stack is wrong.
- On-device Whisper model size/performance can be painful on older phones. Start with small models and make model choice configurable.
- Realtime transcription is harder than batch transcription. Build batch/offline first; add realtime chunks only after daily-use basics work.
- Speaker diarization is a separate ML problem. Do manual speaker correction first.
- Cross-device sync can create conflict and privacy complexity. Local-first export is enough for the first personal version.