A powerful, cross-platform clipboard manager for developers
Project description
๐ ClipStack
The ultimate cross-platform clipboard manager for developers ๐
ClipStack is a powerful, terminal-first clipboard manager that helps developers never lose their copied content again. Built with Python and designed for productivity, it provides instant access to your clipboard history with lightning-fast search and seamless cross-platform support.
โจ Features
- ๐ Real-time clipboard tracking - Never lose copied content
- ๐ Lightning-fast fuzzy search - Find anything in your history instantly
- ๐พ Smart storage - JSON-based storage with duplicate prevention
- ๐จ Beautiful terminal UI - Rich, colorful output with timestamps
- ๐ง Developer-friendly - Simple CLI with intuitive commands
- ๐ Cross-platform - Works on macOS, Linux, and Windows
- ๐ฑ TUI mode - Interactive terminal interface for power users
- ๐ค Import/Export - Backup and restore your clipboard history
- ๐งช Fully tested - Comprehensive test coverage with pytest
๐ฏ Why ClipStack?
- Fast: Built with performance in mind using optimized search algorithms
- Reliable: Robust error handling and data persistence
- Extensible: Modular architecture for easy customization
- Beautiful: Rich terminal output that makes your terminal look professional
- Cross-platform: Works seamlessly across all major operating systems
๐ Quick Start
Installation
# Install from PyPI (recommended)
pip install clipstack
# Or install from source
git clone https://github.com/yourusername/clipstack.git
cd clipstack
pip install -e .
Basic Usage
# Save current clipboard content
clipstack add
# View your clipboard history
clipstack list
# Search for specific content
clipstack search "python code"
# Restore the last copied item
clipstack pop
# Restore a specific item by index
clipstack restore 5
# Clear your history
clipstack clear
๐ Full Command Reference
| Command | Description | Example |
|---|---|---|
add |
Save current clipboard content | clipstack add |
list |
Display clipboard history | clipstack list |
peek |
Show last copied item | clipstack peek |
pop |
Restore last item to clipboard | clipstack pop |
restore <index> |
Restore specific item | clipstack restore 3 |
search <query> |
Fuzzy search history | clipstack search "api key" |
clear |
Clear entire history | clipstack clear |
export <file> |
Export to JSON/CSV | clipstack export backup.json |
import <file> |
Import from JSON/CSV | clipstack import backup.json |
tui |
Interactive terminal UI | clipstack tui |
๐จ Screenshots
Main Interface
๐ ClipStack - Your Clipboard History
โโ Index โโ Timestamp โโโโโโโโโโโโโโโโ Preview โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 0 โ 2024-01-15 14:30:22 โ import requests; response = requests.get(url) โ
โ 1 โ 2024-01-15 14:25:15 โ https://api.github.com/users/username โ
โ 2 โ 2024-01-15 14:20:08 โ git commit -m "feat: add new feature" โ
โ 3 โ 2024-01-15 14:15:42 โ docker run -it ubuntu:latest โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Search Results
๐ Search Results for "python"
โโ Index โโ Timestamp โโโโโโโโโโโโโโโโ Preview โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 0 โ 2024-01-15 14:30:22 โ import requests; response = requests.get(url) โ
โ 5 โ 2024-01-15 13:45:10 โ def hello_world(): print("Hello, Python!") โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ ๏ธ Configuration
ClipStack stores its configuration and history in:
- History:
~/.clipstack.json - Config:
~/.clipstack/config.toml
Customization Options
# ~/.clipstack/config.toml
[storage]
max_history = 200
storage_type = "json" # or "sqlite" (future)
[display]
max_preview_length = 80
show_timestamps = true
color_scheme = "auto"
[clipboard]
auto_track = true
track_interval = 1.0
๐งช Development
Setting up the development environment
# Clone the repository
git clone https://github.com/yourusername/clipstack.git
cd clipstack
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
pip install -r requirements-dev.txt
# Install in development mode
pip install -e .
# Run tests
pytest
# Run linting
black .
flake8 .
Project Structure
clipstack/
โโโ clipstack/ # Main package
โ โโโ __init__.py
โ โโโ cli.py # CLI interface
โ โโโ clipboard.py # Clipboard operations
โ โโโ storage.py # Data persistence
โ โโโ search.py # Search functionality
โ โโโ tui.py # Terminal UI
โโโ tests/ # Test suite
โโโ docs/ # Documentation
โโโ requirements.txt # Production dependencies
โโโ requirements-dev.txt # Development dependencies
โโโ setup.py # Package configuration
โโโ pyproject.toml # Modern Python packaging
โโโ README.md # This file
๐ค Contributing
We love contributions! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Development Guidelines
- Follow PEP 8 style guidelines
- Write tests for new functionality
- Update documentation as needed
- Use conventional commit messages
Areas for Contribution
- ๐ Performance improvements
- ๐จ UI/UX enhancements
- ๐ง Additional storage backends
- ๐ฑ Mobile/desktop integrations
- ๐ Internationalization
- ๐ Analytics and insights
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
- Typer - Modern CLI framework
- Rich - Beautiful terminal output
- pyperclip - Cross-platform clipboard
- rapidfuzz - Fast fuzzy search
- Textual - Terminal UI framework
๐ Project Status
- โ Core functionality - Complete
- โ Cross-platform support - Complete
- โ Testing - Complete
- โ Documentation - Complete
- ๐ Performance optimization - Ongoing
- ๐ Additional features - In development
๐ Star History
Made with โค๏ธ by the ClipStack community
If you find this project useful, please consider giving it a โญ๏ธ star on GitHub!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file clipstack-0.1.0.tar.gz.
File metadata
- Download URL: clipstack-0.1.0.tar.gz
- Upload date:
- Size: 26.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
111422436d4375278b01d6768b886d44bbf82efe1dc21084cb26a68a77145945
|
|
| MD5 |
8420e7b4aa0b29aa9d501d7fb65a9e44
|
|
| BLAKE2b-256 |
264a97b515e2baeb4474ac89b496df37bfd56d1fd6b668eea968fc6a2bc39855
|
File details
Details for the file clipstack-0.1.0-py3-none-any.whl.
File metadata
- Download URL: clipstack-0.1.0-py3-none-any.whl
- Upload date:
- Size: 21.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
074cc87288762db5ae42f96accbd0fe28a83f544b8b02ad292eb9324ce9ee1ed
|
|
| MD5 |
db0cfa16e8bd66b620da8cb1fb1bdd5f
|
|
| BLAKE2b-256 |
7c9f2d7a535395b619b3a448a9e1979105b13e35a0c243840aeaaf4830c1e669
|