Rust core (the encrypted vault)
Compiled into a cdylib per platform; called from Flutter via flutter_rust_bridge.
- argon2Passphrase KDF (memory-hard).Version: 0.5 License: MIT OR Apache-2.0
- chacha20poly1305AEAD for entries, backups, entitlement.Version: 0.10 License: Apache-2.0 OR MIT
- hkdfSubkey derivation from the master key.Version: 0.12 License: MIT OR Apache-2.0
- sha2Hash inside HKDF.Version: 0.10 License: MIT OR Apache-2.0
- blake3Content-addressed attachment hashing.Version: 1.5 License: CC0-1.0 OR Apache-2.0
- zeroizeZero-on-drop for keys and secrets.Version: 1.8 License: Apache-2.0 OR MIT
- secrecyNewtype wrappers that refuse to print themselves.Version: 0.10 License: Apache-2.0 OR MIT
- subtleConstant-time equality.Version: 2.6 License: BSD-3-Clause
- ed25519-dalekLifetime-Pass redemption-code signatures.Version: 2 License: BSD-3-Clause
- x25519-dalekKey agreement for the recovery-share envelopes.Version: 2.0 License: BSD-3-Clause
- getrandomOS entropy source.Version: 0.2 / 0.3 License: MIT OR Apache-2.0
- rand_coreRNG traits the dalek crates take.Version: 0.6 / 0.9 License: MIT OR Apache-2.0
- base32Compact QK1-... receipt encoding.Version: 0.5 License: MIT
- serdeUniversal serialisation.Version: 1 License: MIT OR Apache-2.0
- serde_jsonJSON for cloud LLM providers + receipts.Version: 1 License: MIT OR Apache-2.0
- ciboriumCBOR for on-disk envelopes.Version: 0.2 License: Apache-2.0
- serde_bytesCompact byte-string encoding inside those envelopes.Version: 0.11 License: MIT OR Apache-2.0
- rusqliteVault DB storing per-entry ciphertext. Built with bundled SQLCipher, so the database file is whole-encrypted too — see the vendored C table below.Version: 0.32 License: MIT
- tokioAsync runtime for the LLM router + providers.Version: 1 License: MIT
- futuresStream combinators for token streaming.Version: 0.3 License: MIT OR Apache-2.0
- async-traitAsync methods on the provider traits.Version: 0.1 License: MIT OR Apache-2.0
- parking_lotLocks around the vault and router state.Version: 0.12 License: MIT OR Apache-2.0
- reqwestCloud LLM HTTP transport (rustls only).Version: 0.12 License: Apache-2.0 OR MIT
- uuidEntry IDs (UUIDv7).Version: 1 License: Apache-2.0 OR MIT
- timeRFC 3339 timestamps.Version: 0.3 License: MIT OR Apache-2.0
- thiserrorDerive macro for typed errors.Version: 2 License: MIT OR Apache-2.0
- tracingStructured logs (opt-in).Version: 0.1 License: MIT
- flutter_rust_bridgeDart ↔ Rust bridge.Version: 2.12.0 License: MIT
- candle-corePure-Rust tensor engine — runs the on-device chat model.Version: 0.9 License: MIT OR Apache-2.0
- candle-nnNeural-network layers for the above.Version: 0.9 License: MIT OR Apache-2.0
- candle-transformersQwen and Whisper model implementations.Version: 0.9 License: MIT OR Apache-2.0
- tokenizersText ↔ token conversion for both model families.Version: 0.21 License: Apache-2.0
- houndWAV decoding for the microphone audio Whisper transcribes.Version: 3.5 License: Apache-2.0
Vendored C in the same binary
These are compiled from bundled source into the native library rather than linked from the system, and they are not Cargo packages — so they appear in no crate list, including the one above. Each is licensed separately from the Rust crate that carries it. The full notices ship inside the app, under Settings → Licenses.
- SQLCipherWhole-database encryption for the vault, layered under the per-entry sealing. Copyright Zetetic LLC.Version: bundled via libsqlite3-sys 0.30 License: BSD-3-Clause
- OpenSSLThe cryptographic primitives SQLCipher uses. Reaches the binary through a build dependency, so it appears in no normal dependency listing.Version: 3.6.3, via openssl-src License: Apache-2.0
- OnigurumaRegex engine inside the tokenizer used by on-device inference. Copyright K. Kosako.Version: bundled via onig_sys 69.9 License: BSD-2-Clause
- sais-liteSuffix-array construction inside the tokenizer. Copyright Yuta Mori; its notice lives in the source file, not a licence file.Version: bundled via esaxx-rs 0.1 License: MIT
- Dart SDK (dart_api_dl.c)The C shim the Rust core uses to talk to the Dart VM. Copyright the Dart project authors.Version: via dart-sys 4.1 and flutter_rust_bridge 2.12 License: BSD-3-Clause
Flutter app (the UI)
- flutter_riverpodApp-wide reactive state.Version: 2.5+ License: MIT
- go_routerDeclarative routing.Version: 14+ License: BSD-3-Clause
- flutter_secure_storagePlatform secure storage for the recovery code.Version: 9+ License: BSD-3-Clause
- local_authBiometric unlock on iOS / Android / macOS.Version: 2+ License: BSD-3-Clause
- package_info_plusApp name + version display.Version: 8+ License: BSD-3-Clause
- path_providerResolves the app-support directory.Version: 2+ License: BSD-3-Clause
- intlLocale-aware date formatting.Version: 0.19+ License: BSD-3-Clause
- loggingStructured app logs (debug-only).Version: 1+ License: BSD-3-Clause
- metaAnnotations like @immutable and @visibleForTesting.Version: 1.16 License: BSD-3-Clause
- collectionEquality helpers and list utilities.Version: 1.19 License: BSD-3-Clause
- flutter_rust_bridgeDart side of the FFI bridge.Version: 2.12.0 License: MIT
- dynamic_colorMaterial You palette from the system wallpaper.Version: 1.8 License: Apache-2.0
- in_app_purchaseDepth plans through the platform store.Version: 3.2 License: BSD-3-Clause
- in_app_purchase_androidPlay Billing specifics (plan changes, acknowledgement).Version: 0.4 License: BSD-3-Clause
- in_app_reviewThe OS review prompt, shown at most once.Version: 2.0 License: MIT
- recordMicrophone capture for voice journaling.Version: 6.2 License: BSD-3-Clause
- flutter_ttsSpoken replies through the platform voice.Version: 4.2 License: MIT
- flutter_local_notificationsLocal reminders. No push service is involved.Version: 22.0 License: BSD-3-Clause
- timezoneSchedules those reminders in your own timezone.Version: 0.11 License: BSD-2-Clause
- flutter_timezoneReads that timezone from the OS.Version: 5.1 License: Apache-2.0
- share_plusThe system share sheet for exports.Version: 10.1 License: BSD-3-Clause
- file_pickerChoosing a file to import or a place to export.Version: 11.0 License: MIT
- home_widgetThe home-screen widget and share-extension drop box.Version: 0.7 License: BSD-3-Clause
- app_linksDeep links into a conversation or entry.Version: 7.0 License: Apache-2.0
- device_info_plusDevice RAM, to pick a model tier that will actually run.Version: 12.4 License: BSD-3-Clause
- cryptoChecksums for downloaded model files.Version: 3.0 License: BSD-3-Clause
- cupertino_iconsiOS-style glyphs.Version: 1.0 License: MIT
- freezed_annotationAnnotations for generated immutable models.Version: 2.4 License: MIT
- Material Icons / Cupertino Icons fontsThe icon fonts every Flutter build embeds.Version: bundled License: Apache-2.0
This site
- astroSite generator. Zero runtime JS by default.Version: 5.18+ License: MIT
- @astrojs/sitemapsitemap.xml + sitemap-index.xml.Version: 3.7+ License: MIT
- @tailwindcss/viteUtility-first CSS pipeline.Version: 4.1+ License: MIT
- tailwindcssUtility CSS engine.Version: 4.1+ License: MIT
- typescriptType-checks .astro / .ts files.Version: 5.9+ License: Apache-2.0
Downloadable AI models
Not shipped inside the app binary (too large for store base-size limits). Downloaded from Hugging Face on first use, into the app's private data dir. The license is the model author's.
- Qwen 2.5 1.5B Instruct (Q4_K_M)The default free tier on 4 GB+ phones. Downloads on first use.Size: 1.5B License: Apache-2.0
- Qwen 2.5 0.5B Instruct (Q4_K_M)Compact fallback for the most memory-constrained phones. Downloads on first use.Size: 0.5B License: Apache-2.0
- Qwen 3 4B Instruct 2507 (Q4_K_M)Graphophone Depth tier, recommended on 8 GB+ phones and computers. Downloads on first use.Size: 4B License: Apache-2.0
- Qwen 2.5 7B Instruct (Q4_K_M)Optional heaviest Graphophone Depth tier, recommended only on 16 GB+ desktops. Downloads on demand.Size: 7B License: Apache-2.0
- all-MiniLM-L6-v2On-device sentence-embedding model for semantic search and ask-your-journal. Downloads on demand.Size: ~91 MB License: Apache-2.0
- Whisper tiny.enOn-device speech-to-text for voice journaling. Downloads on demand; the audio never leaves the device.Size: ~150 MB License: Apache-2.0
Our own code
Graphophone itself is closed-source, proprietary software. The libraries above are used under their own licenses, which are listed here and shipped in the app.
Your data outlives us
AI apps shut down. When they do, they can strand your most personal writing on a server you can't reach. Graphophone is built so that can't happen to you:
- Your journal lives on your device as an encrypted vault you alone can open — not in an account on our servers.
- One-button Markdown export writes every entry to a plain, Obsidian-compatible folder you can read in any text editor, with or without us.
- The app runs fully offline by default. There is no server of ours in the loop, so there is nothing we could switch off that would take your journal with it.