Stop the copy-paste-save dance. One command turns your clipboard into any file.
pip install clipdrop1. Copy anything - text, code, images, audio
2. Save it - clipdrop myfile
3. That's it! ClipDrop detects the format and saves it perfectly.
# Just copied some code? Save it:
clipdrop script.py
# Screenshot in clipboard? Save it:
clipdrop design.png
# Building a journal? Append to it:
clipdrop journal.md -aThe Problem: Saving clipboard content on macOS is tedious: Copy β Open app β Paste β Navigate β Name β Choose format β Save π«
The Solution: Just clipdrop filename and you're done! π
Perfect for:
- π¨βπ» Developers - Save code snippets and API responses instantly
- π PMs - Capture screenshots and meeting notes in one command
- βοΈ Writers - Build documents by appending content throughout the day
- π Students - Organize research without switching apps
ClipDrop knows what you copied and saves it correctly:
clipdrop data # JSON detected β data.json
clipdrop readme # Markdown β readme.md
clipdrop screenshot # Image β screenshot.pngNever lose a thought. Keep adding to files:
clipdrop journal.md -a # Morning thoughts
clipdrop journal.md -a # Afternoon notes
clipdrop journal.md -a # Evening reflectionTurn recordings into text using Apple Intelligence:
# Copy an audio file, then:
clipdrop # β transcript_20240323_143022.srt
clipdrop meeting.txt # β meeting notes as plain textGet an executive-ready recap before the raw transcript:
# Save article + structured summary at the top
clipdrop research-notes.md --summarize
# Works for YouTube transcripts and audio, too
clipdrop -yt briefing.md --summarize
clipdrop --audio meeting.txt --summarizeSummaries include:
- Overall headline sentence
- Sections for Key Takeaways, Action Items, and Questions
- Handles transcripts of any length - automatically uses hierarchical processing for long content
- Local fallback when Apple Intelligence is busy, so you always get something useful
Research videos efficiently:
# Copy YouTube URL, then:
clipdrop -yt # Download transcript
clipdrop -yt lecture.md --lang es # Spanish transcript
clipdrop -yt notes.md --summarize # Transcript + structured summaryIf YouTube blocks the request ("Sign in to confirm you're not a bot" β common on VPNs, cloud servers, and flagged networks), authenticate with your browser's cookies:
clipdrop -yt --cookies-from-browser chrome # or firefox, safari, edge, braveAdvanced overrides (environment variables):
CLIPDROP_YT_COOKIES_FROM_BROWSERβ browser to read cookies fromCLIPDROP_YT_COOKIESβ path to a Netscape-format cookies fileCLIPDROP_YT_PLAYER_CLIENTβ pin a yt-dlp player client (e.g.mweb)
Keeping yt-dlp current matters β YouTube changes frequently and old
releases stop working: pip install -U yt-dlp
Never accidentally save credentials:
clipdrop config.env -s # Scan before saving
clipdrop api-keys.txt --scan-mode redact # Auto-redact secretsStop inventing filenames. Let the on-device model read the content and propose one:
clipdrop --auto-name # β quarterly-revenue-growth.md
clipdrop --auto-name notes.txt # Honors the extension you give it
clipdrop --ocr --auto-name # Name a screenshot from its recognized text- A short Title-Case suggestion is slugified into a tidy, filesystem-safe name
- The positional filename is optional; a provided extension is kept, otherwise format detection picks it
- Falls back to a content-based slug when Apple Intelligence isn't available
AI tools write Markdown; rich editors want HTML; email wants plain text. Convert between all three in one command, entirely on-device:
# Copy some markdown, then:
clipdrop --rich # β rich text: paste formatted into Confluence/Docs/Gmail
clipdrop --plain # β clean plain text: paste into email/LinkedIn/chat
clipdrop --md # β rich clipboard (web/Docs) β Markdown for LLMs & notes
clipdrop -r -p # Preview any conversion first (-P/-M work too)
clipdrop -r page # Also save the output β page.html (.txt/.md for -P/-M)--rich: headings, lists, tables, links, and code blocks survive the paste; plain-text targets (and "Paste and Match Style") still get your original markdown; code fence languages mapped to what Confluence recognizes (jsβjavascript)--plain: syntax stripped but structure kept β bullets, paragraph breaks, verbatim code, link URLs in parentheses, tables as tab-separated rows (paste into Sheets!)--md: turns anything copied from a web page or rich editor into clean GFM Markdown- All three compose with secret scanning (
-s/--scan-mode)
Copied over the thing you needed? A lightweight, local, secret-aware history for terminal people β no menubar app required:
clipdrop --history-daemon # Start capturing (foreground; nohup for background)
clipdrop --history # Browse recent clips
clipdrop --last 2 # Restore the 2nd most recent clip to the clipboard
clipdrop --last 1 snippet # ...or save it to a file (format auto-detected)
clipdrop --pick # Interactive picker
clipdrop --history-clear # Wipe it- Secrets are never stored β every clip runs through the secret scanner before persisting; credentials never touch disk
- Plain local storage (
~/.clipdrop/history.jsonl, owner-only permissions), capped at 50 entries, oversized clips skipped - Run the daemon in the background:
nohup clipdrop --history-daemon >/dev/null 2>&1 &(or wrap it in a launchd agent for start-at-login)
Reshape copied text on the way to a file, entirely on-device:
clipdrop email.txt --rewrite formal # restyle (concise/friendly/β¦)
clipdrop notes.md --prompt "extract the action items" # any freeform instruction
clipdrop data.md --to-table # messy text β Markdown table
clipdrop data.csv --to-table # β¦or CSV when the name ends in .csv- Stacks with everything else, e.g.
clipdrop --ocr --to-table table.csvorclipdrop draft.md --rewrite concise --auto-name - Transforms run after content/OCR is resolved and before naming/summarizing
Daily Journaling
# Start your day
echo "Morning thoughts..." | pbcopy
clipdrop journal.md -a
# Add throughout the day
clipdrop journal.md -a
# Review before saving
clipdrop journal.md -a -pCode Snippet Collection
# Save useful code snippets
clipdrop snippets.py -a
# Preview before adding
clipdrop snippets.py -a -p
# Force overwrite when needed
clipdrop snippets.py -fResearch & Notes
# Save web content as PDF
clipdrop article.pdf
# Download YouTube lectures
clipdrop -yt lecture.md
clipdrop -yt lecture.md --summarize
# Build research document
clipdrop research.md -a
# Append AI summary (macOS 26.0+)
clipdrop research.md --summarizeScreenshot Management
# Quick save
clipdrop screenshot.png
# Preview dimensions first
clipdrop mockup.png -p
# Save only the image (ignore text)
clipdrop design.png --image-onlypip install clipdroppip install clipdrop[youtube]# Using uv (fast)
uv add clipdrop
# Using pipx (isolated)
pipx install clipdrop
# From source
git clone https://github.com/prateekjain24/clipdrop.git
cd clipdrop && pip install -e .clipdrop <filename> # Save clipboard to file
clipdrop -a <filename> # Append to existing file
clipdrop -p <filename> # Preview before saving
clipdrop -f <filename> # Force overwriteclipdrop -yt # YouTube transcript mode
clipdrop --audio # Force audio transcription
clipdrop --rich # Markdown β rich text, back to the clipboard
clipdrop --plain # Markdown β clean plain text, back to the clipboard
clipdrop --md # Rich clipboard (HTML) β Markdown, back to the clipboard
clipdrop --history # Browse captured clipboard history
clipdrop --last N # Restore the Nth most recent clipclipdrop --text-only # Ignore images
clipdrop --image-only # Ignore text
clipdrop --ocr # Extract text from a clipboard image (macOS, on-device)
clipdrop --auto-name # Let ClipDrop name the file from its content
clipdrop -s # Scan for secrets
clipdrop --lang es # Set language
clipdrop --fetch-remote-images # Allow HTMLβPDF to fetch remote images (off by default)π‘οΈ Privacy default: when saving HTML as a PDF, ClipDrop no longer fetches remote images automatically β embedded
data:images are always included, buthttp(s)images require--fetch-remote-images. Remote fetches are SSRF-guarded (private/loopback/link-local addresses are blocked).
π·οΈ Auto-name asks the on-device model for a short title and turns it into a tidy slug (
clipdrop --auto-nameβq3-roadmap-plan.md). No filename needed; a provided extension is kept. Falls back to a content-based slug when Apple Intelligence isn't available.
π OCR turns a copied screenshot into text using Apple's on-device Vision framework β no data leaves your Mac. It composes with other flags, e.g.
clipdrop slide.md --ocr --summarize.
"Writing Tools for the terminal" β reshape what you copied on the way to a file:
clipdrop email.txt --rewrite formal # rewrite in a style (concise/friendly/β¦)
clipdrop notes.md --prompt "extract the action items" # any freeform instruction
clipdrop data.md --to-table # messy text β Markdown table
clipdrop data.csv --to-table # β¦or CSV when the name ends in .csvThese run entirely on-device via Apple Intelligence and compose with everything
else, e.g. clipdrop --ocr --to-table table.csv or clipdrop draft.md --rewrite concise --auto-name.
π Full Command Documentation β
-
Shell Aliases - Add to your
.zshrc:alias cda='clipdrop -a' # Quick append alias cdp='clipdrop -p' # Preview first
-
Auto-transcribe - Copy audio β
clipdropβ instant transcript -
Mixed content - Copy text + image β
clipdrop doc.pdfβ perfect PDF -
Safe secrets - Always use
-sfor sensitive content
We love contributions! Check out CONTRIBUTING.md for guidelines.
MIT Β© Prateek Jain
- π Full Documentation
- π Report Issues
- β Star on GitHub
Stop copying and pasting. Start ClipDropping.
Made with β€οΈ for the clipboard warriors