Cross-platform system tray tool that detects clipboard content and lets you save it as .md files with a single click on a mouse-side bubble.
- Clipboard Monitoring — Event-driven, zero-polling, no CPU overhead
- Mouse-side Bubble — A small
M↓icon pops up near the cursor when content is detected; left-click to save - Smart File Naming — Automatically extracts 4 keywords via jieba segmentation for the filename (e.g.
检索_RAG_架构_分析.md) - Smart Suppression — No bubble when copying inside VS Code / Typora / Obsidian and other editors
- Global Hotkey —
Ctrl+Alt+Mto force-save current clipboard as Markdown - System Tray — Right-click menu to manage save path, pause monitoring, toggle auto-start, etc.
- High DPI Support — Works with 4K displays and various scaling ratios
- Dark / Light Theme — Automatically follows the system theme (Windows / macOS)
Grab the latest build from the Releases page:
| Platform | File | Notes |
|---|---|---|
| Windows | ClipMD.exe |
Double-click to run |
| macOS | ClipMD-macOS |
Run chmod +x ClipMD-macOS first, then double-click or launch from terminal |
git clone https://github.com/fluten/ClipMD.git
cd ClipMD
pip install -r requirements.txt
python main.pymacOS users do not need
pywin32; all other dependencies are the same.
- On first launch a welcome dialog lets you choose the save directory
- Copy any text — a small
M↓icon appears near the cursor - Left-click the icon to save as
.md; the icon turns into a green✓on success - Right-click the icon or wait 3 seconds to dismiss
- Right-click the system tray icon to:
- Set / open the save folder
- View recently unsaved items
- Pause / resume monitoring
- Toggle launch at startup
Saved files are named automatically with a three-tier fallback:
- 4 extracted keywords joined by underscores:
检索_RAG_架构_分析.md - Falls back to the first 10 characters of the content
- Falls back to a timestamp:
20260404_143022.md
| Shortcut | Action |
|---|---|
Ctrl+Alt+M |
Force-save current clipboard as .md |
On macOS the global hotkey requires Accessibility permission in System Settings.
Windows:
pip install pyinstaller
pyinstaller ClipMD.spec --clean -ymacOS:
pip install pyinstaller
pyinstaller --onefile --noconsole --collect-data jieba --name ClipMD main.pyThe output binary is located in the dist/ directory.
| Platform | Requirement |
|---|---|
| Windows | Windows 10 / 11 |
| macOS | macOS 12 Monterey or later |
Pre-built binaries include all runtime dependencies — no Python installation required.
- Python 3.10+ / PyQt6 / jieba
- Platform-specific: pywin32 (Windows), fcntl (macOS / Linux)
- GitHub Actions CI for dual-platform builds
- PyInstaller packaging
- Internationalization: English / Simplified Chinese / Traditional Chinese
- Auto-detects system language on first launch
- Language switcher in the tray menu (takes effect after restart)
- Added
README.zh-TW.md(Traditional Chinese)
- macOS support via the new
platform_utilsabstraction layer - GitHub Actions CI auto-builds Windows + macOS binaries on tag push
- README internationalized: English as default, Chinese moved to
README.zh-CN.md
- Smart filename generation using jieba keyword extraction (4 keywords joined by underscores)
- Three-tier fallback: keywords → first 10 characters → timestamp
- Auto-denoising: filters Markdown symbols, conversational filler prefixes, URLs, emoji
- Filename sanitization: illegal character removal, 50-char truncation, consecutive underscore merging
- Clipboard monitoring with mouse-side bubble for one-click save as
.md - Smart suppression in VS Code / Typora / Obsidian and other editors
- Global hotkey
Ctrl+Alt+Mto force-save current clipboard - System tray with right-click menu for settings
- Auto dark / light theme following the system, high DPI support, launch at startup