AI-powered screen time tracker with intelligent activity analysis and MCP server for AI assistants. Install: pip install telos-tracker && telos setup
Project description
Telos Client (Python)
This is the Telos desktop client - a Python TUI application for tracking screen activity.
Quick Start
Option 1: pip install (Recommended)
pip install telos-tracker
telos setup
telos
Your data is stored in ~/.telos/.
Option 2: From Source (Development)
# Install dependencies
pip install -r requirements.txt
# Run setup wizard
python main.py setup
# Start the TUI
python main.py
# Run as background service
python service.py start
Development
See the main repository README for full documentation: ../README.md
Structure
core/- Core functionality (capture, analysis, database)tui/- Terminal user interface (Textual framework)utils/- Shared utilitiesprompts/- AI prompts for Gemini
Configuration
Copy config.yaml.example to config.yaml and fill in your settings:
cp config.yaml.example config.yaml
# Edit config.yaml with your Gemini API key
Get your Gemini API key from: https://aistudio.google.com/app/apikey
Features
- 📸 Automatic Screen Monitoring - Captures your activity in the background
- 🤖 AI-Powered Analysis - Gemini Vision understands what you're working on
- 📊 Smart Session Building - Groups activities into meaningful sessions
- 💬 AI Chat Interface - Ask questions about your work patterns
- 📧 Daily Email Reports - Beautiful summaries via Gmail
- 🖥️ Terminal UI - Clean, responsive TUI with real-time updates
- 🔒 Privacy-First - Screenshots analyzed and immediately deleted
Usage
TUI Mode (Default)
python main.py
Keyboard shortcuts:
- D - Dashboard (main view)
- T - Timeline (session view)
- S - Summary (daily insights)
- C - Settings
- A - AI Chat (query your data)
- G - Edit analysis goals
- Q - Quit
CLI Commands
python main.py setup # First-time setup
python main.py test # Test capture loop
python main.py stats # Show statistics
python main.py set-goals # Configure analysis goals
python main.py build-sessions # Manual session building
python main.py generate-summary # Generate daily summary
python main.py test-email # Test email configuration
Background Service
Windows:
python main.py service-console # Run as daemon (test mode)
python main.py install-service # Install Windows service
python main.py start-service # Start service
python main.py stop-service # Stop service
macOS:
python main.py service-console # Run as daemon (test mode)
python main.py install-service # Install LaunchAgent
python main.py start-service # Start service
python main.py stop-service # Stop service
python main.py service-status # Check service status
Building Standalone Applications
Windows Build
# Install PyInstaller
pip install pyinstaller
# Build Windows executable and installer
python build_installer.py
# Output: dist/Telos.exe and TelosSetup-v0.1.0.exe
macOS Build
# Install PyInstaller
pip install pyinstaller
# Build macOS .app bundle and DMG
python build_macos.py
# Output: dist/Telos.app and Telos-v0.1.0-beta-macOS.dmg
macOS Installation:
- Open the DMG file
- Drag
Telos.appto Applications folder - Right-click → Open (first time only, to bypass Gatekeeper)
- Grant Screen Recording permission when prompted
- Grant Accessibility permission when prompted
macOS Permissions:
- Screen Recording - Required for screenshot capture
- Accessibility - Required for keyboard/mouse activity detection
To grant permissions manually:
- Open System Settings → Privacy & Security → Privacy
- Select "Screen Recording" → Enable Telos
- Select "Accessibility" → Enable Telos
- Restart Telos
Creating an Icon: If you want to customize the macOS icon:
cd macos
python create_icns.py your-icon.png
# This creates icon.icns, then rebuild with python build_macos.py
Technical Details
- Language: Python 3.8+
- UI Framework: Textual (async TUI)
- Database: SQLite (3-tier architecture)
- AI: Google Gemini 2.5 Flash
- Screenshot: Pillow + ImageHash (perceptual hashing)
- Activity Detection: pynput (cross-platform)
Troubleshooting
"telos is unrecognized" after pip install
If you get "command not found" or "telos is unrecognized" after installing:
-
Check if it's installed:
pip show telos-tracker
-
Try running via Python module:
python -m telos_tracker.cli help
-
Add Python Scripts to PATH:
- Windows: Add
C:\Users\<YourUser>\AppData\Local\Programs\Python\Python3xx\Scriptsto PATH - Mac/Linux: Add
~/.local/binto PATH in~/.bashrcor~/.zshrc:export PATH="$HOME/.local/bin:$PATH"
- Windows: Add
-
Restart your terminal after modifying PATH
-
Or use pipx (recommended for CLI tools):
pipx install telos-tracker telos help
Configuration Issues
- Run
telos setup(orpython main.py setup) for guided configuration - Check
~/.telos/config.yamlfor correct API key
API Quota
- Free tier: 1500 requests/day
- Perceptual hashing reduces calls by ~50%
- Adjust
capture.interval_secondsin config
Activity Detection
- macOS: Grant Screen Recording and Accessibility permissions in System Settings
- System Settings → Privacy & Security → Privacy → Screen Recording
- System Settings → Privacy & Security → Privacy → Accessibility
- Windows: Run as administrator if needed
- Linux: Check
xinputpermissions
Status
✅ Fully Functional - All features complete and working
This client works standalone with your own Gemini API key. The backend (Node.js) is being built to enable SaaS features (no API key required, cloud sync, etc.).
For Backend Integration:
Once the backend is deployed, you can configure the client to use it:
# In config.yaml (future)
backend:
enabled: true
url: "https://your-backend.run.app"
The client will then upload screenshots to your backend instead of calling Gemini directly, keeping your AI prompts proprietary.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file telos_tracker-0.2.5.tar.gz.
File metadata
- Download URL: telos_tracker-0.2.5.tar.gz
- Upload date:
- Size: 365.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9d4f47a423bb2a42949ee01f1b894715ecfee36d6d79ad16130a6cc96338cf7c
|
|
| MD5 |
c43b2c7f6c1a3bab1322450afc2441bb
|
|
| BLAKE2b-256 |
4124b5b11e81cac434648bcb5ca5641b48154b442fa9794fd594e7be269859eb
|
File details
Details for the file telos_tracker-0.2.5-py3-none-any.whl.
File metadata
- Download URL: telos_tracker-0.2.5-py3-none-any.whl
- Upload date:
- Size: 217.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9d9f8e2eee5480f5a317c29d8ab1802fa8a74fd39b605f9b7e29f40e768bb53d
|
|
| MD5 |
7e2746c98e6bde93e51c4f8e7e665e97
|
|
| BLAKE2b-256 |
165f97bc099294bf768fd232a03707aed9ce7651e73bcfb63271044a44144383
|