Why Notes Tech
A note-taking app that shares nothing with anyone. And yet packed with AI.
Zero internet
No INTERNET permission in the manifest. The app is technically unable to send any data. Verifiable.
Encrypted database
SQLCipher AES-256 with the key sealed by the Android Keystore (hardware-backed). Uninstall = lose everything, irrecoverable.
Per-folder vaults
Each folder can be a vault: Argon2id passphrase (m=64MB) or Keystore-sealed PIN + self-destruct after 5 failed attempts.
Panic mode
Discreet gesture → KEK destroyed, database overwritten, AI models wiped, Keystore keys cleared. Everything goes in seconds, even if the phone is seized unlocked.
On-device Q&A
"Ask my notes" via Gemma 3 1B int4 (~530 MB). RAG on top-K semantic, hardened anti-injection prompt. Streaming.
Voice dictation
On-device Whisper (~57 MB) — flawless local transcription, audio never persisted, SHA-256 model verification.
Semantic search
MiniLM-L6-v2 quantized int8 finds by meaning, not just by words — including cross-language FR/EN.
Backlinks [[Title]]
Outbound links + "Mentions" panel (backlinks) + auto-completion. Ghost links auto-resolved on creation.
Instant FTS5
SQLite full-text search with Unicode tokenizer, normalized diacritics. Response in milliseconds.
Screenshots blocked
Optional FLAG_SECURE — hides the preview in the Android app switcher, blocks screenshots.
Plain Markdown
No proprietary format. Your notes are text files you will always be able to read, anywhere, in 20 years.
Bilingual FR / EN
Full interface in French and English (since v1.0.0). Language selector in Settings, follows the system locale by default. Legal pages and Q&A prompt localized.
RAM coordination
Serial MlMemoryGuard: Gemma and Whisper are never loaded simultaneously (anti-OOM on 4 GB).
Apache 2.0
Source code entirely public on GitHub. Verify the privacy promises yourself.
Free, of course ;)
No subscription, no freemium, no quota, no premium version. Never will be.
Screenshots





How it works
Three local engines working together: semantic search, conversational AI, voice transcription.
1. You write
Classic Markdown notes, debounced auto-save, configurable sorting, pin / favorites / trash. Your notes go straight into an encrypted SQLite database (SQLCipher AES-256) whose master key is sealed by the Android Keystore — an attacker who dumps /data/data recovers nothing exploitable without the phone unlocked.
2. The app indexes in the background
Each note is encoded as a semantic vector by MiniLM-L6-v2 (ONNX model quantized int8, ~22 MB bundled). This index enables similarity search — typing "burnout" finds a note about professional exhaustion. The FTS5 full-text search runs in parallel for exact matches.
3. You ask your notes
"What had I noted about the Reiki session on March 12th?". The RAG system selects the 4 most relevant notes by semantic similarity, injects them into a hardened prompt, and Gemma 3 1B int4 (~530 MB, imported by you from Google Kaggle) generates the answer in token-by-token streaming. No network calls, the model lives on your phone.
4. You dictate
Mic button in the editor. Whisper (C++ port by Georgi Gerganov, base model q5_1 ~57 MB, imported from HuggingFace) transcribes what you say, the text is inserted at the cursor. The captured WAV stays in the app's private tmp area and is deleted immediately after transcription, on every exit path (success, cancel, error, system kill).
5. You stay in control
Panic mode (coming v0.7) which destroys the Keystore key and makes the database unreadable forever. "Hide from recent apps" setting which blocks screenshots and hides the preview. Everything is under Apache 2.0 — you can compile it yourself from source.
Privacy commitments
No empty promises. Only commitments verifiable in the code.
| Commitment | Notes Tech | Verifiable |
|---|---|---|
| Internet permission | Removed from manifest (tools:node="remove") | aapt dump permissions |
| Tracker / ad SDK | None | GitHub source code inspection |
| Third-party crash reporter | None | No Crashlytics, Sentry, etc. dependency |
| Account / sign-up | None | No login screen |
| Note storage | Local + encrypted | SQLCipher in /data/data/com.filestech.notes_tech |
| AI models | Imported by you, SHA-256 verified | Official Kaggle / HuggingFace source |
| Recorded audio | Deleted after transcription | Covered by try/finally in the code |
| Source code | Full Apache 2.0 | github.com/gitubpatrice/notes_tech |
Who it's for
- Wellness practitioners, therapists, energy practitioners who take notes on client sessions — professional secrecy is not optional
- Journalists, lawyers, doctors handling sensitive sources or files
- Anyone who refuses to let their private notes end up in a cloud or a training model
- Travelers and nomads who want an app that works in airplane mode, abroad, without data
- Curious tinkerers who want to understand how semantic search and RAG work — and read the code
Honestly, the limits
- The APK weighs ~290 MB — everything is embedded (except the models you download yourself). Comparable to mainstream AI apps, but not lightweight.
- Gemma 1B and Whisper Base are not GPT-4. Excellent for note-taking and dictation, more limited for complex questions.
- Voice dictation adds ~57 MB of model if you enable it. Optional.
- No cross-device sync (yet) — it's deliberate (offline-first), but it's also a real limitation if you want to write on a tablet then re-read on a phone.
How to enable voice dictation
Five-step guide — the app downloads nothing by itself, you stay in control.
- Settings → Voice dictation → Enable voice dictation.
- Choose a model: Whisper Base (57 MB, recommended) or Whisper Tiny (32 MB, faster but less accurate).
- Tap "Download on this phone" — the Android browser opens on the official page huggingface.co/ggerganov/whisper.cpp. Your browser does the downloading, Notes Tech stays without internet permission.
- Once the
.binfile is in your Downloads folder, return to Notes Tech and tap "Select the .bin file". The app verifies the SHA-256 cryptographic fingerprint then copies it into its private area. - Open any note, tap the 🎤 icon in the top bar, speak, tap "Stop". The transcribed text is inserted at the cursor.
You can uninstall the model or switch to another one at any time from Settings → Voice dictation. Panic mode (coming) will wipe the model and history with a single press.
Open source code
For an app that claims to send nothing, independent code audit is essential — it's the only proof. Notes Tech and its voice dictation module are published under Apache 2.0; you can read, verify and compile them yourself.