OffRecordAI/
│
├── .gitignore ← Git ignore file
├── README.md ← This file!
├── requirements.txt ← List of Python packages to install (one command)
├── data/ ← Data storage
│ └── db/ ← Database files
│ └── notes.json ← Where your notes are saved (created automatically)
├── env/ ← Environment configuration
│ ├── .env ← Your API key (not committed to git)
│ └── .env.example ← Template for API key setup
├── backend/ ← Backend code (Flask app)
│ ├── app.py ← The brain — Python server that handles everything
│ ├── static/ ← Static assets (CSS, JS)
│ │ ├── app.js ← Makes buttons work in the browser
│ │ └── style.css ← Makes the app look beautiful
│ └── templates/ ← Jinja templates
│ └── index.html ← The web page you see in the browser
├── frontend/ ← Frontend code (for future expansion, e.g., React)
└── product/ ← Product documentation
└── engineering/
└── spec/
└── mvp.md
- Go to: https://www.python.org/downloads/
- Download Python 3.10 or newer
- Run the installer
⚠️ IMPORTANT: During install, check the box that says "Add Python to PATH"- Click Install
Check it worked — open Terminal (Mac) or Command Prompt (Windows) and type:
python --version
You should see something like Python 3.11.x
OffRecord uses Google's Gemini AI to:
- Transcribe your voice into text
- Remove names and personal info
- Summarize into structured insights
- Open VS Code
- Go to File → Open Folder
- Select the OffRecordAI folder
- You'll see all the files in the left sidebar
- In VS Code, find the file called
env/.env.example - Right-click it → Rename → change name to
.env(Just remove the word "example" — the dot at the start is important!) - Click on
env/.envto open it - Replace
your-gemini-api-key-herewith your actual key:GEMINI_API_KEY=AIzaSyYourActualKeyHere - Save the file (Ctrl+S on Windows, Cmd+S on Mac)
- In VS Code, go to Terminal → New Terminal
(or press Ctrl+
on Windows / Ctrl+on Mac) - A panel will appear at the bottom — this is where you type commands
In the terminal, type this and press Enter:
pip install -r requirements.txtWait for it to finish. You'll see packages downloading. This only needs to be done once.
If you see "pip not found", try:
pip3 install -r requirements.txt
In the terminal, type:
python backend/app.pyYou should see:
══════════════════════════════════════════════════
🎙️ OffRecord is running!
📱 Open your browser → http://127.0.0.1:5000
🔒 Privacy-First | Powered by Gemini
══════════════════════════════════════════════════
- Open Chrome, Safari, or Firefox
- In the address bar, type:
http://127.0.0.1:5000 - Press Enter
- OffRecord loads! 🎉
- Click the amber button to start recording
- Speak your thoughts — ideas, notes, anything
- Click again to stop recording
- Wait ~10-15 seconds — Gemini AI is:
- Transcribing your voice to text
- Removing any names or personal info
- Generating structured insights
- Your note appears with:
- 💡 Key Ideas — the main points you said
- ✅ Action Points — things you mentioned doing
- 🧠 Important Thoughts — notable insights
- Click any note on the left to read it
- Use the search bar to find old notes by keyword
| Feature | Status |
|---|---|
| Raw audio stored permanently | ❌ Never |
| Audio deleted after processing | ✅ Always |
| Names removed from text | ✅ Automatically |
| Audio uploaded to Gemini | ✅ Temporarily, then deleted |
| Final insight saved | ✅ Locally on your computer |
| Problem | Fix |
|---|---|
| "pip not found" | Try pip3 instead of pip |
| "python not found" | Try python3 instead of python |
| "API key invalid" | Check your .env file — make sure there are no spaces around the = |
| "Microphone access denied" | Click "Allow" when the browser asks |
| "No speech detected" | Speak for at least 3-4 seconds |
| Page doesn't load | Make sure python app.py is still running |
| Very slow processing | Normal! Gemini is doing 3 tasks — give it 15-20 seconds |
In the terminal, press: Ctrl + C
To run it again: python backend/app.py
- Speak clearly for at least 5 seconds
- You can ramble — AI will extract the key points
- Try speaking about a meeting, idea, or plan
- Search notes with any keyword from the content
- Notes are saved in
data/db/notes.json— open it to see raw data
OffRecord MVP demonstrates:
Voice → AI Processing → Anonymous Insights
(raw audio is never permanently stored)
The full product would add:
- Local Whisper model (no internet needed for transcription)
- Voice pitch shifting (anonymize the audio itself)
- End-to-end encryption
- Mobile app
- Team workspaces
Built with: Python · Flask · Google Gemini 2.5 Flash