InsightLoop Collector is a lightweight, extensible personal telemetry agent that helps you understand your digital behavior patterns. By collecting data about your active applications, window focus, browser tabs, and more, InsightLoop provides insights into your productivity, work habits, and digital life—all while keeping your data private and under your control.
- 🔒 Privacy-First Design: All data stays on your machine—no external servers or cloud dependencies
- 🧩 Plugin Architecture: Easily extend functionality with custom input and output plugins
- ⚡ Lightweight & Efficient: Minimal resource usage with configurable collection intervals
- 🔌 Flexible Output Options: Store data in files, databases, or integrate with other tools
- 📊 Rich Data Collection:
- Active application monitoring
- Window focus tracking with titles
- Shell command history integration
- Browser tab tracking (coming soon)
- GitHub activity integration (coming soon)
- And more...
- macOS (currently macOS-only, other platforms coming soon)
- Go 1.18 or higher
# Clone the repository
git clone https://github.com/nslaughter/insightloop-collector.git
cd insightloop-collector
# Build the binary
go build -o insightloop-collector cmd/insightloop-collector/main.go
# Run the collector
./insightloop-collector
InsightLoop Collector looks for a configuration file in the following locations:
- Path specified with the
--config
flag ~/.config/insightloop/config.yaml
A sample configuration file is provided in configs/config.yaml
. Copy it to your config directory:
mkdir -p ~/.config/insightloop
cp configs/config.yaml ~/.config/insightloop/
# Run with default configuration
./insightloop-collector
# Specify a custom configuration file
./insightloop-collector --config /path/to/config.yaml
# Set log level
./insightloop-collector --log-level debug
debug
: Detailed debugging informationinfo
: General operational informationwarn
: Warning eventserror
: Error events but application can continue running
InsightLoop Collector is built on a flexible, plugin-based architecture:
┌─────────────────────────────────────┐
│ Agent Core │
├─────────────┬───────────────────────┤
│ Input │ Output │
│ Plugins │ Plugins │
├─────────────┼───────────────────────┤
│ ▪ Active │ ▪ File │
│ Window │ (JSON/CSV) │
│ ▪ App │ ▪ Logger │
│ Tracking │ ▪ Database │
│ ▪ Shell │ (coming soon) │
│ History │ ▪ HTTP API │
│ ▪ More... │ (coming soon) │
└─────────────┴───────────────────────┘
- Core Agent: Manages the lifecycle and coordination of plugins
- Input Plugins: Collect data from various sources
- Output Plugins: Send data to different destinations
- Configuration System: Customizes behavior via YAML config
InsightLoop Collector uses a YAML configuration file. Here's a sample:
# General settings
log_level: info
collection_interval: 30s
buffer_size: 1000
shutdown_timeout_seconds: 30
# Enabled plugins
enabled_input_plugins:
- application
- activewindow
enabled_output_plugins:
- logger
- file
# Input plugin configurations
input_plugins:
activewindow:
collection_interval: 5s
include_window_title: true
# Output plugin configurations
output_plugins:
file:
path: "${HOME}/insightloop/telemetry.json"
format: "json"
pretty_json: true
- Browser integration (Chrome, Firefox, Safari)
- GitHub activity tracking
- Database output plugins (SQLite, PostgreSQL)
- Data visualization dashboard for insights
- Windows and Linux support
- Machine learning for shell history pattern recognition
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Go Uber Zap for lightning-fast, structured logging
- Viper for configuration management
- UUID for unique identifier generation