Skip to main content

A powerful, cross-platform clipboard manager for developers

Project description

๐Ÿ“‹ ClipStack

The ultimate cross-platform clipboard manager for developers ๐Ÿš€

PyPI version Python 3.10+ License: MIT Code style: black Tests

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:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. 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

๐Ÿ“Š Project Status

  • โœ… Core functionality - Complete
  • โœ… Cross-platform support - Complete
  • โœ… Testing - Complete
  • โœ… Documentation - Complete
  • ๐Ÿ”„ Performance optimization - Ongoing
  • ๐Ÿ”„ Additional features - In development

๐ŸŒŸ Star History

Star History Chart


Made with โค๏ธ by the ClipStack community

If you find this project useful, please consider giving it a โญ๏ธ star on GitHub!

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

clipstack-0.1.0.tar.gz (26.0 kB view details)

Uploaded Source

Built Distribution

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

clipstack-0.1.0-py3-none-any.whl (21.1 kB view details)

Uploaded Python 3

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

Hashes for clipstack-0.1.0.tar.gz
Algorithm Hash digest
SHA256 111422436d4375278b01d6768b886d44bbf82efe1dc21084cb26a68a77145945
MD5 8420e7b4aa0b29aa9d501d7fb65a9e44
BLAKE2b-256 264a97b515e2baeb4474ac89b496df37bfd56d1fd6b668eea968fc6a2bc39855

See more details on using hashes here.

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

Hashes for clipstack-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 074cc87288762db5ae42f96accbd0fe28a83f544b8b02ad292eb9324ce9ee1ed
MD5 db0cfa16e8bd66b620da8cb1fb1bdd5f
BLAKE2b-256 7c9f2d7a535395b619b3a448a9e1979105b13e35a0c243840aeaaf4830c1e669

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