A lightweight, privacy-focused clipboard manager built in Go with clean architecture principles.
- Background Monitoring - Automatically tracks clipboard changes
 - Persistent Storage - SQLite database stores complete clipboard history
 - Privacy Protection - Detects and skips sensitive data (passwords, tokens, API keys)
 - HTTP API - RESTful API over Unix socket for secure, local-only access
 - CLI Tool - Command-line interface to query, search, and manage history
 - Structured Logging - Configurable JSON/text logs with automatic rotation
 - Graceful Shutdown - Proper cleanup and resource management
 - Comprehensive Tests - Well-tested service layer with table-driven tests
 
# Build
make build
# Start daemon
./bin/clipd
# Use CLI
./bin/clipctl list           # View recent entries
./bin/clipctl search "text"  # Search history
./bin/clipctl stats          # Show statisticsBuilt with clean architecture principles:
- Layered Design - Clear separation between API, business logic, and infrastructure
 - Dependency Injection - Components communicate through interfaces
 - Unix Philosophy - Does one thing well, uses Unix sockets for security
 - Testable - Service layer tested independently of infrastructure
 
Note: This project is also a learning exercise in Go and software design patterns.
Configure via command-line flags:
./bin/clipd \
  --db ./clipboard.db \
  --socket /tmp/clipd.sock \
  --poll-interval 500ms \
  --log-level info \
  --log-format text| Flag | Description | Default | 
|---|---|---|
--db | 
Database path | ./clipboard.db | 
--socket | 
Unix socket path | /tmp/clipd.sock | 
--poll-interval | 
Clipboard check interval | 500ms | 
--log-level | 
Log level (debug/info/warn/error) | info | 
--log-format | 
Log format (text/json) | text | 
--log-output | 
Log output (stdout/file/both) | both | 
--log-file | 
Log file path | ./logs/clipd.log | 
# Health check
curl --unix-socket /tmp/clipd.sock http://unix/api/health
# List history
curl --unix-socket /tmp/clipd.sock http://unix/api/v1/history?limit=10
# Get specific entry
curl --unix-socket /tmp/clipd.sock http://unix/api/v1/history/1
# Search
curl --unix-socket /tmp/clipd.sock "http://unix/api/v1/search?q=example"
# Delete entry
curl --unix-socket /tmp/clipd.sock -X DELETE http://unix/api/v1/history/1
# Statistics
curl --unix-socket /tmp/clipd.sock http://unix/api/v1/stats- Sensitive Data Detection - Automatically filters passwords, tokens, and API keys
 - Unix Socket - API only accessible locally (not over network)
 - File Permissions - Socket has 0600 permissions (owner-only)
 - No Cloud - Everything stays on your machine
 
clipboard-manager/
├── cmd/
│   ├── clipd/           # Daemon
│   └── clipctl/         # CLI tool
├── internal/
│   ├── api/             # HTTP handlers and routes
│   ├── service/         # Business logic
│   ├── storage/         # Database layer
│   ├── daemon/          # Orchestration
│   ├── monitor/         # Clipboard monitoring
│   ├── analyzer/        # Content analysis
│   ├── config/          # Configuration
│   └── logger/          # Logging
└── Makefile
Current Status:
- ✅ Core clipboard management
 - ✅ API and CLI interface
 - ✅ Structured logging
 - ✅ Configuration system
 
Planned Features:
- 🔄 Automatic retention policy (cleanup old entries)
 - 🔄 Error resilience (retry logic, circuit breakers)
 - 📋 TUI (Terminal User Interface)
 - 📋 Entry pinning and favorites
 - 📋 Systemd service integration
 
MIT License - See LICENSE file for details