A lightweight, native macOS clipboard manager that lives in your menu bar.
Never lose a copied item again.
| Feature | Description |
|---|---|
| 🖥️ Menu Bar App | Runs quietly in the menu bar — zero Dock clutter |
| 📋 Clipboard History | Automatically saves up to 200 clipboard entries |
| 🏷️ Smart Categories | Auto-detects content type: Text, URL, Code, Email, Number, Path |
| 🔍 Quick Search | Filter history instantly with real-time search |
| 📌 Pin Important Items | Pin entries so they survive history clears |
| 🖱️ One-Click Copy | Click any item to copy it back to clipboard |
| ⌨️ Global Hotkey | ⌘ + ⇧ + V to open from anywhere |
| 💾 Persistent Storage | History survives app restarts via local storage |
| 🎨 Native UI | Built with SwiftUI, follows Apple's Human Interface Guidelines |
| 🌗 Light & Dark Mode | Adapts automatically to system appearance |
| Menu Bar Icon | Clipboard Panel |
|---|---|
| Lives in your menu bar | Clean, categorized clipboard history |
Replace with actual screenshots after building the app.
- macOS 13.0 (Ventura) or later
- Xcode 15.0+ (for building from source)
# Clone the repository
git clone https://github.com/Bojun-Vvibe/PasteFlow.git
cd PasteFlow
# Open in Xcode
open ClipBoard.xcodeproj
# Build and Run: ⌘ + RDownload the latest
.appfrom Releases and drag it to/Applications.
- Launch — PasteFlow appears as an icon in your menu bar (no Dock icon)
- Copy anything — It automatically captures clipboard text content
- Click the menu bar icon or press
⌘ + ⇧ + Vto open the panel - Click any item to copy it back to your clipboard
- Filter by category using the tabs: All · Text · URL · Code · Email · Number · Path
- Search to find specific items from history
- Pin important items by hovering and clicking the 📌 button
- Clear history via the 🗑️ icon (with option to preserve pinned items)
ClipBoard/
├── ClipBoard.xcodeproj # Xcode project configuration
├── GenerateIcon.swift # Programmatic app icon generator
├── LICENSE
├── README.md
└── ClipBoard/
├── ClipBoardApp.swift # App entry point & NSStatusItem menu bar setup
├── ClipboardManager.swift # Core clipboard monitoring, storage & category detection
├── ClipboardContentView.swift# SwiftUI popover UI with search, filter & item rows
├── Info.plist # App configuration (LSUIElement for menu bar only)
├── ClipBoard.entitlements # App sandbox entitlements
└── Assets.xcassets/ # App icons & accent color
├── AppIcon.appiconset/ # All icon sizes (16–1024pt, generated)
└── AccentColor.colorset/ # Custom accent color
NSStatusItem+NSPopover— Standard macOS pattern for menu bar apps. The popover provides a native feel and auto-dismisses on outside clicks.- Timer-based polling (
0.5s) — MonitorsNSPasteboard.general.changeCountfor clipboard changes. Lightweight and reliable. UserDefaultspersistence — Simple JSON serialization for clipboard history. No external database dependency.LSUIElement = true— App runs as an accessory (menu bar only), no Dock icon or main window.- Content category detection — Regex and heuristic-based classification into 6 categories for easy filtering.
- Pinned items — Pinned entries float to top and are protected from bulk clear operations.
The app icons are programmatically generated with a gradient design. To regenerate all sizes:
swift GenerateIcon.swift ClipBoard/Assets.xcassets/AppIcon.appiconsetThis generates icons for all required macOS sizes (16×16 to 512×512 @2x).
PasteFlow requires:
- Accessibility permission — For the global hotkey (
⌘ + ⇧ + V) and simulating paste events - The app only monitors text content from the system clipboard
- All data is stored locally on your machine — nothing is sent to any server
| Component | Technology |
|---|---|
| Language | Swift 5 |
| UI Framework | SwiftUI |
| Platform | macOS 13.0+ |
| Menu Bar | NSStatusItem + NSPopover |
| Storage | UserDefaults (JSON) |
| Clipboard | NSPasteboard polling (0.5s) |
| Hotkey | NSEvent global monitor |
| Icons | Programmatically generated (NSImage + NSBezierPath) |
Contributions are welcome! Feel free to:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add 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.
Made with ❤️ using SwiftUI