Skip to main content

Modern Python activity monitoring inspired by the original Selfspy, with real-time TUI, session tracking, and productivity insights

Project description

Selfspy

PyPI Python License

A comprehensive activity monitoring and analytics tool with real-time TUI, session tracking, and productivity insights. Built with modern Python for macOS and Linux.

Features

  • Real-time TUI Dashboard - Beautiful terminal UI with sparklines, metrics, and live updates
  • Session Tracking - Track activity across multiple sessions with start/end times
  • Idle Detection - Distinguish between active work and idle time (3-minute threshold)
  • Historical Comparison - Compare today's activity vs yesterday with visual indicators
  • Focus Time Tracking - See actual time spent in each application
  • Privacy-First - Optional encryption, local storage, configurable exclusions
  • Rich Visualizations - Enhanced statistics with charts, graphs, and insights
  • macOS Native - Full window tracking with PyObjC integration
  • Linux Support - Cross-platform with fallback tracking

Quick Start

Installation

# From PyPI (when published)
pip install selfspy

# On macOS (recommended for full features)
pip install selfspy[macos]

# With pipx (isolated environment)
pipx install selfspy[macos]

# With uv (fastest)
uv tool install selfspy --with selfspy[macos]

Usage

# Start monitoring with live TUI
selfspy start

# View enhanced statistics
selfstats summary --days 7

# View visualizations
selfviz enhanced

# Check terminal activity
selfterminal stats

See INSTALL.md for detailed installation instructions.

Documentation

Comprehensive documentation is available in the docs/ directory:

Requirements

  • Python 3.10+
  • macOS 10.12+ (for full features)
  • Accessibility permissions (macOS)

For detailed installation instructions, see the Installation Guide.

Credits

This project is inspired by and based on the original Selfspy by Bjarte Johansen and David Fendrich. The original Selfspy pioneered the concept of comprehensive activity monitoring with privacy-first local storage and encryption.

This modern Python implementation builds upon that foundation with:

  • Modern async/await patterns with SQLAlchemy 2.0
  • Real-time TUI dashboard with Rich
  • Session tracking and historical analytics
  • Enhanced security and stability
  • macOS native integration with PyObjC
  • Comprehensive testing and documentation

We're grateful to the original authors for creating such an innovative tool and releasing it as open source.

License

GPL-3.0-or-later

This project maintains compatibility with the original Selfspy's GPL-3.0 license.

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

selfspy-1.0.0.tar.gz (229.3 kB view details)

Uploaded Source

Built Distribution

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

selfspy-1.0.0-py3-none-any.whl (49.7 kB view details)

Uploaded Python 3

File details

Details for the file selfspy-1.0.0.tar.gz.

File metadata

  • Download URL: selfspy-1.0.0.tar.gz
  • Upload date:
  • Size: 229.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for selfspy-1.0.0.tar.gz
Algorithm Hash digest
SHA256 fb7c457e4feb4203960c63376f1b54a3affaa274586602f35d2fdf7bc3a9b55e
MD5 5860eb1accf1395a0f3d22efb862d10a
BLAKE2b-256 72b0c5c3ecad12f369cb2ab8df1d71b4a645788ace6dbfff6aad6aa1c5eda42e

See more details on using hashes here.

File details

Details for the file selfspy-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: selfspy-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 49.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for selfspy-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a18bb8e5654f50414f7810457e2339214ad102e4226f51bc6bbdad811ddb1a33
MD5 77c0d3d0b1df1a4bd54b7b3fdd45d1ae
BLAKE2b-256 8f57a80d748a54ab0d6ca1f5426e074347de806393f4ef4e2f5dfd7c0db5b6b3

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