Your local AI memory layer for Windows.
Atlas silently tracks your PC activity in the background and lets you explore everything — apps used, websites visited, screen time, and more — through a beautiful dashboard. Ask questions about your day in plain English using the built-in AI chat.
→ Try the live demo — explore the dashboard with sample data, no setup needed.
Atlas is a local, privacy-first activity tracker that runs silently in the background on your Windows PC. No cloud. No subscriptions. Everything stays on your machine.
Once set up, Atlas:
- Records which apps you use and for how long
- Tracks which websites you visit and your time on each
- Captures window titles and screen content via OCR
- Answers natural language questions about your activity using Gemini AI
Open the dashboard any time to see your day — or ask "What was I doing at 3pm?" and get an instant answer.
| Feature | Description |
|---|---|
| 🔇 Silent background recording | Starts at login, no terminal, no popups |
| 📊 Live dashboard | Screen time, app usage, website time, hourly chart |
| 🌐 Browser tracking | Chrome extension tracks tabs and time per site |
| 🤖 AI chat | Ask anything about your activity in plain English |
| 📁 Activity feed | Full searchable log of every captured event |
| 🔒 100% local | All data stored in SQLite on your machine |
| ⚙️ One-time setup | Single .bat file handles everything |
┌─────────────────────────────────────────────────────┐
│ Your Windows PC │
│ │
│ ┌─────────────┐ ┌──────────────┐ │
│ │Window Logger│ │Chrome Ext. │ │
│ │(active app, │ │(tab switches,│ │
│ │window title)│ │ heartbeats) │ │
│ └──────┬──────┘ └──────┬───────┘ │
│ │ │ │
│ └────────┬─────────┘ │
│ ▼ │
│ ┌──────────────┐ │
│ │ Flask API │ ◄── SQLite DB │
│ │ :5000 │ ◄── Gemini AI │
│ └──────┬───────┘ │
│ │ │
│ ┌──────▼───────┐ │
│ │ atlas.html │ ← You open this │
│ │ Dashboard │ │
│ └──────────────┘ │
└─────────────────────────────────────────────────────┘
- Windows 10 or 11
- Python 3.10 or higher → Download (check "Add to PATH")
- Google Chrome
- Tesseract OCR → Download (install to default path)
- A free Gemini API key → Get one here
git clone https://github.com/YOUR_USERNAME/atlas.git
cd atlasOr download as ZIP and extract.
Double-click setup.bat and follow the prompts. It will:
- Check Python and pip
- Create a virtual environment
- Install all dependencies
- Check Tesseract OCR
- Ask for your Gemini API key and save it
- Initialize the database
- Ask if you want Atlas to auto-start on login (recommended: Y)
Setup takes about 3–5 minutes on first run.
- Open Chrome and go to
chrome://extensions - Enable Developer mode (top right toggle)
- Click Load unpacked
- Select the
extensionfolder inside the project
Right-click register_task.ps1 → Run with PowerShell
(Requires Admin once — never again after this)
After setup, Atlas runs silently in the background from every login.
To open the dashboard: Double-click the "Atlas Dashboard" shortcut on your Desktop, or open frontend/atlas.html directly in Chrome.
frontend/atlas.html ← open this in Chrome
| Section | What it shows |
|---|---|
| Home | Total logs, apps tracked, days of memory |
| Dashboard | Screen time, app usage bars, website time, hourly chart |
| Activity Feed | Full searchable log of all captured events |
| Ask Atlas AI | Chat with Gemini about your activity |
Click the chat button (bottom right) or press Ctrl+Space anywhere on the dashboard.
Example questions:
- "What was I doing today?"
- "How much time did I spend on YouTube this week?"
- "What websites did I visit yesterday?"
- "Summarize my coding sessions"
atlas/
├── backend/
│ ├── agents/ # Gemini AI memory agents
│ ├── ai/ # Gemini API client
│ ├── api/
│ │ └── server.py # Flask REST API
│ ├── collectors/
│ │ ├── window_logger.py # Active window tracker
│ │ └── ocr_collector.py # Screen OCR capture
│ ├── database/
│ │ └── db.py # SQLite operations
│ ├── retrieval/ # RAG pipeline components
│ └── utils/
├── extension/
│ ├── background.js # Chrome extension (tab tracking)
│ ├── manifest.json
│ └── popup.html
├── frontend/
│ └── atlas.html # Dashboard (single-file)
├── data/ # SQLite database (gitignored)
├── .env # Your API key (gitignored)
├── start_atlas.py # Silent background launcher
├── setup.bat # One-click installer
├── register_task.ps1 # Task Scheduler registration
├── atlas_silent_launch.vbs # Windowless startup helper
└── requirements.txt
| Endpoint | Method | Description |
|---|---|---|
/browser_activity |
POST | Receives tab data from Chrome extension |
/dashboard_stats |
GET | App + site durations for a date range |
/recent |
GET | Latest activity logs |
/stats |
GET | Total log count, apps, days |
/chat |
POST | Ask Gemini a question about your activity |
- All data is stored locally in
data/activity.db(SQLite) - Nothing is sent to the cloud except your questions to Gemini AI
- The
.envfile containing your API key is gitignored and never uploaded - To delete all your data: delete
data/activity.dband restart Atlas
Dashboard shows "No data — start the Flask server"
→ Atlas isn't running. Run register_task.ps1 as Admin, then restart your PC.
→ Or manually start it: open PowerShell in the project folder and run:
.\venv\Scripts\python.exe start_atlas.pyChrome extension shows fetch errors
→ Make sure Atlas is running (check Task Manager for pythonw.exe)
→ Go to chrome://extensions, find Atlas, and click the refresh icon
Websites show 0s time
→ Make sure the Chrome extension is loaded and enabled
→ The heartbeat updates every 5 seconds — give it a minute
Setup fails at "Installing packages"
→ Check your internet connection
→ Try running setup.bat as Administrator
| Layer | Technology |
|---|---|
| Backend | Python 3.10+, Flask, flask-cors |
| AI | Google Gemini API |
| Database | SQLite (local, no server needed) |
| OCR | Tesseract OCR + pytesseract |
| Screenshots | Pillow (PIL) |
| Window Tracking | pywin32, pygetwindow |
| Frontend | Vanilla HTML/CSS/JS (single file, no framework) |
| Browser | Chrome Extension (Manifest V3) |
| Deployment | Runs locally on Windows |
Pull requests are welcome. For major changes, please open an issue first.
- Fork the repo
- Create your branch:
git checkout -b feature/your-feature - Commit:
git commit -m "Add your feature" - Push:
git push origin feature/your-feature - Open a Pull Request
Built by Adnan Raza · CSE @ JMI, New Delhi, India
A personal project to track and understand how I spend my time on my PC.