Modern, cross-platform computer activity monitoring with multiple implementation options
Selfspy is a comprehensive activity monitoring suite that tracks keyboard input, mouse activity, window changes, and terminal commands across multiple platforms. Choose from Python, Rust, or Phoenix implementations based on your needs.
Implementation | Best For | Key Features |
---|---|---|
Python | General use, scripting, research | Original implementation, mature ecosystem |
Rust | Performance, system integration | Native GUI, low resource usage |
Elixir/Phoenix | Web dashboard, real-time analytics | LiveView interface, multi-user |
Objective-C/macOS | macOS desktop integration | Native widgets, system notifications |
Nim | Compiled performance, Python-like syntax | Memory-safe, fast compilation |
Crystal | Ruby-like syntax, native performance | Type-safe, excellent concurrency |
Zig | Maximum performance, systems programming | Memory-safe C replacement, minimal overhead |
# Python (recommended for most users)
curl -sSL https://install.selfspy.dev/python | bash
# Or clone and choose your implementation
git clone https://github.com/selfspy/selfspy3.git
cd selfspy3
# Quick Python setup
cd python && python3 install.py
# Start monitoring (from Python directory)
cd python && selfspy start
# View enhanced statistics
selfviz enhanced
# Terminal analytics
selfterminal commands --days 7
# Check permissions (macOS)
selfspy check-permissions
selfspy/
βββ python/ # π Python Implementation
β βββ src/selfspy/ # Main Python package
β βββ tests/ # Python tests
β βββ desktop-app/ # macOS desktop widgets
β βββ README.md # Python-specific guide
β
βββ rust/ # π¦ Rust Implementation
β βββ selfspy-core/ # Core library
β βββ selfspy-gui/ # GUI application
β βββ selfspy-cli/ # Command line tools
β βββ README.md # Rust-specific guide
β
βββ elixir/ # π₯ Elixir/Phoenix Implementation
β βββ lib/ # Elixir source code
β βββ assets/ # Frontend assets
β βββ priv/ # Migrations and static files
β βββ README.md # Elixir-specific guide
β
βββ objective-c/ # π Objective-C/macOS Implementation
β βββ SelfspyWidgets.xcodeproj/ # Xcode project
β βββ SelfspyWidgets/ # Source code
β βββ Scripts/ # Build scripts
β βββ README.md # Objective-C guide
β
βββ nim/ # β‘ Nim Implementation
β βββ src/ # Nim source code
β βββ selfspy.nimble # Package configuration
β βββ README.md # Nim-specific guide
β
βββ crystal/ # π Crystal Implementation
β βββ src/ # Crystal source code
β βββ shard.yml # Shard configuration
β βββ README.md # Crystal-specific guide
β
βββ zig/ # β‘ Zig Implementation
β βββ src/ # Zig source code
β βββ build.zig # Build configuration
β βββ README.md # Zig-specific guide
β
βββ docs/ # π Documentation
β βββ installation/ # Installation guides
β βββ user-guides/ # User documentation
β βββ development/ # Developer guides
β
βββ shared/ # π§ Shared Resources
β βββ scripts/ # Development scripts
β βββ schemas/ # Database schemas
β βββ configs/ # Configuration templates
β
βββ tools/ # π οΈ Development Tools
βββ docker/ # Container configurations
βββ ci/ # CI/CD configurations
- Keystroke Tracking - Encrypted text capture with activity analysis
- Mouse Activity - Click events, movement patterns, and usage statistics
- Window Management - Active application tracking and window metadata
- Terminal Analytics - Command history with git integration and project detection
- Encryption by Default - All sensitive data encrypted at rest
- Local Storage Only - No cloud transmission, complete data ownership
- Configurable Exclusions - Exclude sensitive applications and windows
- Permission Management - Granular control over what gets monitored
- Command Line - Full-featured CLI for all operations
- Web Dashboard - Real-time Phoenix LiveView interface
- Native GUI - Cross-platform Rust application with charts
- Desktop Widgets - macOS notification center integration
# Setup development environment for all implementations
./shared/scripts/setup-dev-env-new.sh
# Use the development helper
./dev python uv run selfspy start # Python
./dev rust cargo run --bin selfspy-gui # Rust GUI
./dev elixir mix phx.server # Phoenix web
./dev objective-c make all # macOS widgets
./dev nim nimble run selfspy start # Nim compiled
./dev crystal shards run selfspy start # Crystal compiled
./dev zig zig build run -- start # Zig maximum performance
./dev test # All tests
./dev build # Build everything
The ./dev
script provides easy access to all implementations:
./dev [language] [command]
# Examples:
./dev python uv run selfspy start
./dev rust cargo build --release
./dev elixir mix phx.server
./dev objective-c make all
./dev nim nimble build
./dev crystal shards build --release
./dev zig zig build -Doptimize=ReleaseFast
./dev test # Run all tests
./dev build # Build all implementations
- Installation Guides - Platform-specific setup
- User Guides - How to use Selfspy effectively
- Development Docs - Contributing and architecture
- API Reference - Programming interfaces
- Choose the implementation you want to work on
- Read the language-specific README in that directory
- Follow the development setup instructions
- See Contributing Guide for details
MIT License - see LICENSE for details.
- Documentation: docs/
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Built with β€οΈ by the Selfspy community