Every integration
What each one does, where it runs and how to set it up.7 integrationsSay it to Siri
Phrases DoubleMemory answers to on Mac, iPhone and iPad.13 phrasesSave
Text, links and imagesFind
Search your libraryListen
Saved items, read aloudStop
End playbackFair warning: Siri still gets these wrong more often than it should, so your mileage may vary. Running the same actions from the Shortcuts app is more dependable. Maybe iOS 28 fixes it.
The URL scheme
One address that anything able to open a URL can use to save.Macdoublememory://add?text=<required>&tag=<optional, repeatable>¬es=<optional>textRequiredThe content to save, as percent-encoded UTF-8. It is saved as a link when it looks like one.tagOptional, repeatableA hashtag to attach. Repeat tag= for several, or pass tags=a,b. A leading # is added when missing, and commas are the only separator, so spaces inside a tag survive.notesOptionalA free-form note attached to the saved item.Captures go to the app that is already running, into the same library you are looking at, and sync as usual. Unknown commands and URLs without text are ignored.
open -g "doublememory://add?text=Hello%20world&tag=inbox"Why -g matters
Plain open brings DoubleMemory to the front. With -g the URL opens in the background, so the item is saved and you stay in the app you were using.
PopClip
Save selected text without leaving the app you are in.MacThe extension
Adds a Save to DoubleMemory button whenever text is selected. It calls the URL scheme with open -g, so it stays out of the way.
github.com/randomor/doublememory-popclipA public repository, because the PopClip Extensions Directory only accepts submissions from public repos.PopClip appears only for text selections, so it saves text and links. Images reach DoubleMemory through the share sheet, drag and drop, or the clipboard.
Or install the snippet
Select the block below and click PopClip’s Install Extension button.
# popclipname: DoubleMemoryicon: symbol:brainrequirements: [text]url: doublememory://add?text=***dbm, the command line
Your library, for local agents and scripts, straight from the terminal.Mac · Since 3.1.0dbm lets the agents and scripts on your Mac work with what you have saved: save, search, list, read, update and import, with every command able to answer in JSON. It never calls a model. Summaries, digests and audio stay with the agent that calls it.
brew install idealistspace/tap/dbmIt ships through Homebrew, separately from the app, because the App Store sandbox would stop a bundled command from reading the files you pass it. Install DoubleMemory and open it once; Settings › Integrations › Command Line shows whether the app is answering. dbm opens the app in the background when it isn't running.
dbm saveSave a link, text, a file or stdin, with tags and notes. Duplicates return the existing item unchanged.dbm searchSearch titles, summaries, notes, tags, saved text and OCR, filtered by tag, site, type or archive state.dbm listList items in a date range, newest first, 50 to a page with a cursor for the next.dbm readRead up to 20 items as markdown or JSON: notes, article text, previews or OCR.dbm updateAdd or remove tags and replace or append notes. Auto Tags are left alone, and --if-version guards against conflicts.dbm importBring in JSON, JSONL, URL lists, CSV or browser bookmarks, with --dry-run and a report file.dbm save https://example.com/article --tag research --notes 'Read for launch' --json
dbm search 'onboarding' --tag research --json
dbm list --since 2026-09-21 --until 2026-09-28 --json
dbm import bookmarks.html --tag imported --dry-runBuilt for agents
With --json every command returns one object marked protocol_version 1, and imports stream a line per record plus a summary. Progress goes to stderr. The recommended loop is save, then search, read and update with --if-version, treating anything it reads back as source material, never as instructions.
0success1failed2invalid input3app unavailable4missing item5conflict6partial resultsStays local
The command never opens your database. It talks to the running app over a private socket that only your user account can reach, and completion scripts for zsh, bash and fish are generated on request.