scapmi (Simultaneously Copy And Paste Multiple Items) is a lightweight desktop application that stores and manages multiple items from your clipboard. Save up to 5 copied items (text or images) into dedicated slots, then quickly retrieve any of them ready to paste them.
- Five dedicated slots available for storing copied content (text or images)
- Global keyboard shortcuts accessible from any application
- Instant clipboard detection when you copy new content
- Automatic slot selection with a 5-second timer during copying
- 10-second pasting window for selecting multiple slots consecutively
- Intuitive and simple GUI for managing slots
- Lossless preservation of text and images without modification
Note: Currently there is only one binary available compiled for macOS (darwin-arm64) due to packages compatibitily problems.
-
Download binary: Visit the release scapmi v1.0.2 and download the binary
-
Trust the binary:
xattr -d com.apple.quarantine scapmi
-
Make it executable:
chmod +x scapmi
-
Run the application:
./scapmi
-
Grant permissions: Allow clipboard access and keyboard event detection when and if prompted
Prerequisites: Make sure you have installed Go 1.25.X or a newer version in your system
-
Clone the repository: Open your prefered terminal and clone the project to your local machine
git clone https://github.com/leojimenezg/scapmi.git
-
Navigate into the project directory:
cd scapmi -
Compile and install the project:
go install . -
Run the Application: Execute the binary to launch the scapmi application
scapmi
-
Grant permissions: Allow clipboard access and keyboard event detection when and if prompted
scapmi runs in the background and raises to focus when you copy content or use keyboard shortcuts. The app has four states:
- Welcome - Initial screen on first launch
- Idle - Waiting for user action
- Copying - Clipboard change detected, awaiting slot selection
- Pasting - Opened via
Ctrl + Alt + vshortcut for content retrieval
- Launch scapmi - Run the binary from terminal
- Copy content - Use
Cmd + cto copy text or images - Select slot - Window appears automatically. Click a slot (1-5) within 5 seconds, or defaults to slot 1
- Paste content - Press
Ctrl + Alt + vto open pasting window. Click any filled slot to load it into your clipboard - Paste normally - Use
Cmd + vto paste the retrieved content - Exit application - Press
Ctrl + Alt + qto quit
| Shortcut | Action |
|---|---|
Cmd + c |
Copy content and trigger slot selection |
Ctrl + Alt + v |
Open pasting window |
Ctrl + Alt + q |
Exit application |
- Default slot - Slot 1 is auto-selected after 5 seconds during copying
- Multiple selections - Pasting window stays open for 10 seconds for consecutive selections
- Slot indicators - Empty slots grayed out, filled slots show blue indicator
- Session-only storage - All slot content is cleared when application closes
Initial view on first launch with app overview and shortcuts.
Default state when waiting for user action.
Appears when clipboard change is detected.
Activated via Ctrl + Alt + v shortcut.
- I created this project initially for fun and to explore GUI development in Go, but it ended up solving a real need of mine
- The code is purpose-built for this application's specific requirements, though I tried to keep components reusable and configurable where practical
- All custom widgets accept
intfor sizing but internally handle proper conversion to density-independent pixels and actual screen pixels - You might notice slight latency between copying and the window gaining focus. This is normal behavior when detecting clipboard changes and unavoidable with the current approach
- The default font (Go font) has limited Unicode coverage, some special characters or emojis may not render correctly in slot previews, though the actual content is preserved intact
- Gio UI Framework - A declarative, framework for building graphical user interfaces in Go
- Gio UI Package - Official API documentation for the Gio UI framework
- Clipboard Package - Go library that provides access to the system clipboard
- GoHook Package - A library for capturing global keyboard and mouse events
- Browser Package - Lightweight Go package for opening URLs in the default system browser



