mareksulik/contentshot
contentshot
A macOS-only Claude Code mod that uses two presses of the ⌥ key to attach the current article, YouTube transcript, Reddit thread, table, PDF, email or Finder file to the next prompt, and can save it as an Obsidian Clippings note.
About this mod
contentshot lets you press the ⌥ key twice to capture what is in front of you (selected text, articles, YouTube transcripts, Reddit threads, social posts, ads and analytics dashboard tables, spreadsheets, Google Docs, PDFs, emails, Finder files and more) as plain text, attach it to the next Claude Code prompt, and optionally save it in a specified Clippings folder using the Obsidian Web Clipper format. The built-in /contentshot command manages the storage folder, permissions, listener restart and status. It requires macOS, Xcode Command Line Tools, and Accessibility, Screen Recording, Input Monitoring and browser JavaScript from Apple Events permissions; everything stays local, but the captured range may include private content.
Installation
Check the author's README for the marketplace and plugin name first. Commands may change as the repository evolves.
claude plugin marketplace add mareksulik/contentshot claude plugin install contentshot
Original text / README
contentshot
Press both ⌥ keys in any app and Claude gets the content you are looking at, not a picture of it: the article without the menus, the YouTube transcript, the Reddit thread with its comments, the table you selected. It is attached to your next Claude Code prompt and, if you choose a folder, saved as a note in Obsidian Clippings/ in the same format as the Obsidian Web Clipper.
contentshot is a Claude Code mod for the terminal and the Code tab of the Claude desktop app, macOS only. Its sibling appshot (⌘+⌘) sends a screenshot of the window instead.
What ⌥+⌥ takes
The most specific thing in front of you wins: selected text first, then the kind of page or app, else the window.
| Where you are | What it takes | Note tag |
| --- | --- | --- |
| Text selected anywhere | the selection and where it came from | selection |
| Article in Safari, Chrome, Arc, Brave, Edge | the article text, title, author, date, URL | article |
| YouTube video | transcript with timestamps, description, channel, the moment you are at | youtube |
| Reddit thread | post and the whole comment tree, nested by reply | reddit |
| X post | the post, the thread before it and the replies, without ads | x |
| LinkedIn, Instagram, Threads, TikTok post | author, text, comments | linkedin, instagram, … |
| Meta Ads Manager, GA4, Google Ads | the tables on screen, as Markdown | meta-ads, ga4, google-ads |
| Google Sheets, Excel, Numbers | the selected cells; in Sheets with one cell selected, the whole sheet | sheet |
| Google Docs | the document text | google-docs |
| PDF in Preview or Acrobat | the whole text, page by page | pdf |
| An image opened on its own in the browser | the image file | image |
| Mail (selected message) | sender, recipients, date, attachments, body | email |
| Finder with files selected | the files (prompt only) | — |
| Finder with nothing selected | the folder and its contents (prompt only) | — |
| Anything else | screenshot and window text (prompt only) | — |
The cards above the prompt show what is attached: 🔍 opens the saved note in Obsidian (or the source), ✕ drops it, and Odoslať ➤ sends it without typing a question (the desktop app keeps its own send button off while the prompt is empty).
Commands
| Command | What it does |
| --- | --- |
| /contentshot clippings <folder> | Save notes to this folder (your vault's Clippings); off stops saving |
| /contentshot clear | Drop the pending contentshots |
| /contentshot permissions | Ask macOS for the permissions contentshot needs |
| /contentshot restart | Restart the ⌥+⌥ listener |
| /contentshot status | Listener state, Clippings folder, pending count |
Requirements
- macOS with the Xcode Command Line Tools (
xcode-select --install), which provideswiftc. - In System Settings › Privacy & Security, allow the app that runs Claude Code under Accessibility, Screen Recording and Input Monitoring.
/contentshot permissionsraises the prompts. - Automation: macOS asks once per app (Safari, Chrome, Finder, Mail) the first time contentshot reads it.
- Browsers: turn on Allow JavaScript from Apple Events (Safari › Settings › Developer; Chrome › View › Developer).
Privacy
contentshot has no server and collects nothing. What it takes stays on your Mac, in ~/.claude/contentshot/ and in the Clippings folder you choose, and reaches Anthropic only inside the Claude Code conversation you send it in, under your own account. What it reads can include private things (an email, an ad account's numbers), so press ⌥+⌥ only on what you mean to share with Claude and keep in your notes.
What it runs, reads and writes
- Helper program. On first start the mod compiles
helper/contentshot.swiftwithswiftcinto~/.claude/contentshot/bin/contentshot. It listens only to modifier keys, to notice both ⌥ keys; it does not see what you type. It reads the front app's name, window title, open document and selected text through the Accessibility API, extracts PDF text with PDFKit, and for tables presses ⌘C and puts your clipboard back right after. - Browser tabs. Through
osascriptit runs a read-only script in the front tab. That script may fetch, with your own login, the page's own data from the same site: a Reddit thread's.json, a Google Sheet's CSV export, a Google Doc's text export. - Other apps.
osascriptreads the Finder selection and the selected Mail message.screencapturetakes the window when nothing else fits. - Downloads. An image opened on its own is fetched with
curlfrom its own URL. - Files. Pending clips, screenshots and settings in
~/.claude/contentshot/; notes and images in your Clippings folder. - What Claude receives. Each pending clip is added to your next prompt as a
<contentshot>block. The mod submits a prompt only when you press Odoslať ➤.
License
MIT
