Skip to content

marizombie/mcliphistory

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

29 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

macliphistory πŸ“‹

A beautiful and modern clipboard history application for macOS built with Electron and TypeScript.

macliphistory screenshot

Features ✨

  • πŸ“ Text Clipboard History: Automatically tracks all copied text
  • πŸ–ΌοΈ Image Clipboard History: Captures and displays copied images
  • 🎨 Modern UI: Beautiful, native macOS-style interface
  • ⚑ Real-time Monitoring: Instant detection of clipboard changes
  • πŸ’Ύ Persistent Storage: Your clipboard history is saved between sessions
  • πŸ” Quick Search: Easy to find previously copied items
  • πŸ—‘οΈ Smart Management: Delete individual items or clear all history
  • πŸ“± Responsive Design: Works great on all screen sizes

Requirements πŸ“‹

  • macOS 10.12 or later
  • Node.js 18.0 or later (for development)
  • npm 8.0 or later (for development)

Installation πŸš€

Option 1: Quick Install (Recommended)

  1. Download and run the installation script:

    curl -fsSL https://raw.githubusercontent.com/marizombie/mcliphistory/main/install.sh | bash
  2. Or clone and install manually:

    git clone https://github.com/marizombie/mcliphistory.git
    cd mcliphistory
    chmod +x install.sh
    ./install.sh
  3. Install the app:

    • Double-click the generated DMG file in the release folder
    • Drag MaClipHistory to your Applications folder
    • Launch MaClipHistory from Applications

Option 2: Development Installation

If you want to run the app in development mode:

git clone https://github.com/marizombie/mcliphistory.git
cd mcliphistory
chmod +x dev.sh
./dev.sh

Usage πŸ“–

Getting Started

  1. Launch MaClipHistory from your Applications folder
  2. Start copying text or images as usual
  3. View your clipboard history in the MaClipHistory window
  4. Click any item to copy it back to your clipboard
  5. Use the delete button to remove unwanted items

Features Overview

πŸ“ Text Items

  • Automatically captures all copied text
  • Shows a preview of the content
  • Displays timestamp of when it was copied
  • Click to copy back to clipboard

πŸ–ΌοΈ Image Items

  • Captures screenshots and copied images
  • Shows thumbnail preview
  • Maintains original image quality
  • Click to copy back to clipboard

πŸŽ›οΈ Controls

  • Copy Button: Copy the item back to clipboard
  • Delete Button: Remove the item from history
  • Clear All Button: Remove all items from history

Development πŸ› οΈ

Project Structure

mcliphistory/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ main.ts                 # Main Electron process
β”‚   β”œβ”€β”€ preload.ts              # Preload script for security
β”‚   β”œβ”€β”€ services/
β”‚   β”‚   β”œβ”€β”€ ClipboardService.ts # Clipboard monitoring
β”‚   β”‚   └── DataStore.ts        # Data persistence
|   |    ...
β”‚   └── renderer/
β”‚       β”œβ”€β”€ index.html          # Main UI
β”‚       β”œβ”€β”€ styles.css          # Styling
β”‚       └── renderer.ts         # Renderer process logic
β”œβ”€β”€ package.json                # Dependencies and scripts
β”œβ”€β”€ tsconfig.json              # TypeScript configuration
β”œβ”€β”€ install.sh                 # Installation script
└── README.md                  # This file

Available Scripts

  • npm run build - Build the TypeScript code
  • npm run start - Build and start the app
  • npm run dev - Start in development mode
  • npm run dist - Create distribution package
  • npm run pack - Create unpacked distribution

Building from Source

  1. Clone the repository:

    git clone https://github.com/marizombie/mcliphistory.git
    cd mcliphistory
  2. Install dependencies:

    npm install
  3. Build the application:

    npm run build
  4. Run in development mode:

    npm run dev
  5. Create distribution package:

    npm run dist

Privacy & Security πŸ”’

  • Local Storage Only: All clipboard data is stored locally on your machine
  • No Network Access: The app never sends your data anywhere
  • Secure IPC: Uses Electron's secure context isolation
  • Minimal Permissions: Only requests necessary clipboard access

Troubleshooting πŸ”§

Common Issues

App won't start

  • Make sure you're running macOS 10.14 or later
  • Check that you have the latest version of Node.js installed
  • Try running npm install again

Images not showing

  • Ensure the images are in a supported format (PNG, JPEG, etc.)
  • Check that the image isn't too large (max 10MB recommended)

Getting Help

If you encounter any issues:

  1. Check the Issues page
  2. Create a new issue with:
    • Your macOS version
    • Steps to reproduce the problem
    • Any error messages you see

Contributing 🀝

We welcome 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 'Add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

Development Guidelines

  • Follow TypeScript best practices
  • Write clear, self-documenting code
  • Add comments for complex logic
  • Test your changes thoroughly
  • Update documentation as needed

License πŸ“„

This project is licensed allowing personal usage, usage at jour workplace. See more in LICENSE file for details.

Acknowledgments πŸ™

  • Built with Electron
  • Styled with modern CSS and Apple's design guidelines
  • Icons from Feather Icons
  • Inspired by macOS native clipboard managers

Changelog πŸ“

Version 1.0.0

  • Initial release
  • Text and image clipboard history
  • Modern macOS-style UI
  • Persistent storage
  • Real-time clipboard monitoring

Made with ❀️ for macOS users

For questions, suggestions, or support, please open an issue on GitHub or DM me on X.