LLM WikiAccess-protected knowledge portal

WIKI

Personal AI Notetaker

AI Summary Purpose Working plan for Hyunwook's personal Tiro like AI notetaker across macOS, iOS, and Android. Key points Build for personal daily use first, not a public SaaS clone. Use Flutter + Dart as the main app stack because it cover

경로ai/wiki/projects/personal-ai-notetaker.md
카테고리Project
태그#ai-review #infra #monitoring #notetaker #personal #portfolio #project #projects #report #wiki

# Personal AI Notetaker

AI Summary

Purpose:

Key points:

Relevant when:

Do not read full document unless:

Linked documents:

Open Questions

Details

Goal

Create a personal AI notetaker inspired by Tiro. The target is not to copy the whole service. The target is a tool Hyunwook can actually use often: record meetings/calls/lectures, transcribe them, create Korean notes/action items, and search/export the result across Mac and phone.

The product should remain privacy-conscious and simple enough to release for free later if it proves useful.

Product scope

#### First MVP must include

- short summary; - decisions; - action items; - keywords/proper nouns; - raw transcript.

#### First MVP should not include

Chosen language and framework

Recommended default:

Why Flutter:

Why not React Native first:

Why not Tauri/Electron first:

Why not fully native first:

Architecture

Flutter UI
  ├─ RecordingController
  │   ├─ Mobile/Desktop microphone capture via record
  │   └─ macOS system-audio spike via desktop_audio_capture or Swift ScreenCaptureKit helper
  ├─ AudioFileStore
  │   └─ local app documents directory, crash-safe session folders
  ├─ TranscriptionService
  │   ├─ whisper.cpp / whisper_ggml_plus batch transcription
  │   └─ optional cloud fallback later ([REDACTED] credentials only outside repo)
  ├─ NoteGenerationService
  │   ├─ local or configured LLM summarization
  │   └─ template prompts for Korean summary/action items
  ├─ LocalDatabase
  │   └─ Drift/SQLite notes, transcripts, speakers, templates, word memories
  └─ ExportService
      └─ Markdown + audio reference bundle

Local data model draft:

notes(
  id, title, created_at, updated_at, source_type,
  status, language, context_text,
  summary_markdown, transcript_text,
  audio_path, duration_ms
)

segments(
  id, note_id, start_ms, end_ms,
  speaker_label, text, confidence
)

templates(
  id, name, instruction_markdown, created_at, updated_at
)

word_memories(
  id, phrase, pronunciation_hint, notes, created_at, updated_at
)

sync_queue(phase-2 only)

Recording strategy

Mobile:

macOS:

1. try desktop_audio_capture on macOS 13+; 2. if it is unstable, write a small Swift helper using ScreenCaptureKit; 3. bridge helper output as a local audio stream/file back into Flutter.

Transcription strategy

Start with finished-file batch transcription:

Realtime mode is phase 2:

Summarization strategy

For personal use, summary quality matters more than full offline purity. Start with a pluggable summarizer:

- ## Summary - ## Decisions - ## Action Items - ## Important Details - ## Proper Nouns / Terms - ## Transcript

Secrets and API keys must never be committed. Example configs must use [REDACTED].

Implementation phases

#### Phase 0 — Spike

Acceptance criteria:

#### Phase 1 — Personal MVP

Acceptance criteria:

#### Phase 2 — Daily-use polish

#### Phase 3 — Free release candidate

Verification checklist for the future implementation repo

Source grounding

This plan is grounded in ai/sources/tiro-ai-notetaker-research-2026-07-01.md, which records the Tiro public-doc feature scan and implementation research notes.