Personal AI-powered notes, diary and calendar for Android — local-first, with a custom paper-and-ink design system and your own OpenRouter key for the AI bits.
Notesapp Codex is the actively developed continuation of Notesapp: a single-user Android app for notes, a diary and a calendar, with optional AI clean-up and reminder extraction through OpenRouter, voice-to-text capture, and a hand-tuned "Aura" design system instead of stock Material widgets. It's distributed as a sideloaded APK, not through the Play Store.
Notes
- Live-markdown editor (headings, bold/italic, checklists, smart lists) with a keyboard-docked formatting toolbar
- Undo/redo, draft crash-recovery
- Full-text search with highlights
- Tags with color, rename, merge and tag-filter panel; pin/archive
- 30-day trash with undo everywhere
AI (bring your own OpenRouter key)
- Clean-up: streams a de-filler'd, structured rewrite of any ramble into a before/after sheet
- Extract actions: pulls events/reminders/todos out of note text as confirm/deny cards with edit + free-text revision
- Ask Folio: a fifth tab that searches notes + memory, streams grounded answers, and links personal claims back to their sources
- Offline queueing, per-call cost tracking, model picker (default
deepseek/deepseek-v4-flash) with recommended OpenRouter text and transcription models
Voice
- Record long voice rambles in a foreground service, including with the app backgrounded (auto-split 5-minute AAC segments)
- Transcribe via OpenRouter STT (default
openai/gpt-4o-mini-transcribe) - Folio rewrites each ramble into a note, then shows confirm cards before adding reminders/events
- Tap-toggle or hold-to-talk recording; durable processing/review survives process death
- Permission-gated compact draggable overlay with Pause/Resume, Stop, Discard and Open controls
- Every completed ramble starts with a removable
Ramblertag; deleting it from a note never affects the note itself - Existing-note transcripts land with a circular audio chip and popover player, with optional clean-up
Calendar & reminders
- Custom springy month/week/agenda views
- Exact alarms that survive reboots, with Done/Snooze notification actions
- Event alerts with selectable lead times; duplicate reminder/event delivery is atomically suppressed
- Extracted reminders link back to their source note
- Natural-language quick-add ("gym tomorrow 7am") parsed locally
- Battery-killer warnings for reliable delivery
- Optional event end times and actionable exact-alarm/notification permission checks
Diary
- Day-per-entry with mood, streaks and a heat-map
- "On this day", rotating prompts
- Transcript-only microphone inserts at the current selection without creating a stray note or retaining audio
- Optional biometric gate, daily nudge
Design & themes
- Light / Dark / Pure Black (AMOLED) / Grey, each with 8 accents
- Circular-reveal theme switching, spring physics throughout, haptics vocabulary
- Editorial typography (Fraunces + Hanken Grotesk), warm paper-layer depth system
- Press feedback on every control, reduce-motion support, 120 Hz-friendly
Capture fast
- Quick-settings tile, app-icon shortcuts, share/selected-text into a note
- Bottom-right contextual FAB with an anchored capture panel
- Share notes and diary entries as locally generated PDFs
Privacy
- Everything stored on-device; the only network traffic is your own OpenRouter calls
- Strictly validated, checksummed manual ZIP backup/restore; corrupt or unexpected payloads are blocked before restore
- API key kept in Android Keystore, never written to backups or logs
| Notes | Capture panel | Diary |
|---|---|---|
![]() |
![]() |
![]() |
| Calendar | Settings |
|---|---|
![]() |
![]() |
- On Android 12 or newer, download the signed
Notesapp-Codex-v4.0.0.apkfrom the private Releases page. - Open it on your phone; allow "install unknown apps" for your browser/files app when prompted.
- Android may show a Play Protect warning — this is normal for sideloaded apps not distributed through the Play Store; choose "Install anyway".
- For optional AI and transcription features, open Settings → AI and paste your own OpenRouter API key. Notes, diary, calendar, search and local reminders work without a key; there is no bundled key or backend.
Requires JDK 17 and Android SDK 36.
./gradlew assembleDebug
./gradlew testDebugUnitTest
Release builds are signed using a keystore.properties file kept outside the repo. Point Gradle at it with the NOTESAPP_KEYSTORE_PROPS environment variable (see app/build.gradle.kts); CI builds are unsigned by design.
Unsigned CI outputs are validation-only and are never published as installable APK artifacts.
Kotlin 2.1 · Jetpack Compose (custom design system, no Material widgets) · Room + FTS4 · Hilt · Ktor · WorkManager · minSdk 31 / targetSdk 36
See CHANGELOG.md for release notes. Spec and roadmap live in PLAN.md.




