Skip to main content

AI-powered screen time tracker with intelligent activity analysis. 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 utilities
  • prompts/ - 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 Screenshot Capture - Every 30 seconds (configurable)
  • 🤖 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:

  1. Open the DMG file
  2. Drag Telos.app to Applications folder
  3. Right-click → Open (first time only, to bypass Gatekeeper)
  4. Grant Screen Recording permission when prompted
  5. Grant Accessibility permission when prompted

macOS Permissions:

  • Screen Recording - Required for screenshot capture
  • Accessibility - Required for keyboard/mouse activity detection

To grant permissions manually:

  1. Open System Settings → Privacy & Security → Privacy
  2. Select "Screen Recording" → Enable Telos
  3. Select "Accessibility" → Enable Telos
  4. 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:

  1. Check if it's installed:

    pip show telos-tracker
    
  2. Try running via Python module:

    python -m telos_tracker.cli help
    
  3. Add Python Scripts to PATH:

    • Windows: Add C:\Users\<YourUser>\AppData\Local\Programs\Python\Python3xx\Scripts to PATH
    • Mac/Linux: Add ~/.local/bin to PATH in ~/.bashrc or ~/.zshrc:
      export PATH="$HOME/.local/bin:$PATH"
      
  4. Restart your terminal after modifying PATH

  5. Or use pipx (recommended for CLI tools):

    pipx install telos-tracker
    telos help
    

Configuration Issues

  • Run telos setup (or python main.py setup) for guided configuration
  • Check ~/.telos/config.yaml for correct API key

API Quota

  • Free tier: 1500 requests/day
  • Perceptual hashing reduces calls by ~50%
  • Adjust capture.interval_seconds in 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 xinput permissions

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

telos_tracker-0.2.0.tar.gz (331.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

telos_tracker-0.2.0-py3-none-any.whl (178.0 kB view details)

Uploaded Python 3

File details

Details for the file telos_tracker-0.2.0.tar.gz.

File metadata

  • Download URL: telos_tracker-0.2.0.tar.gz
  • Upload date:
  • Size: 331.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.4

File hashes

Hashes for telos_tracker-0.2.0.tar.gz
Algorithm Hash digest
SHA256 693f29a17d7d1d10fa77692505151fd385f467be2927c4f7b54bd9844ed1ee8c
MD5 8692a0ec91ab41b3b67f575cc978e2ac
BLAKE2b-256 1b5dd62281101a9becce82bd29698fc98ca0a7b68a00331c23b7ed4d23d0edbe

See more details on using hashes here.

File details

Details for the file telos_tracker-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: telos_tracker-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 178.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.4

File hashes

Hashes for telos_tracker-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7ced5057340e962e9d676fae790a3528df36f69cd85055d795cfd56a252723e7
MD5 e9bc53ea3313a4c342b4d32874388adf
BLAKE2b-256 5604f57342656929b31590b1f342305e653148981c9a8da8edf09d1030823534

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page