Repository navigation
ZenNotes 2.85.0 takes notes from the new ZenNotes Web Clipper: clip a page, a selection or your highlights in Chrome, Edge, Firefox or Safari, and it arrives in ZenNotes as a clean Markdown note. No account, and nothing passes through a server.
Released from 612e7b7b418980545a51ba085cb26a10b997c8eb through #1071 on 2026-11-11.
Features
- The ZenNotes Web Clipper (#620). A browser extension, open source at ZenNotes/web-clipper, turns the page you are reading into a note: the title, a link back, the author and date when the page has them, and the text without the menus and ads. Open it with
Alt+Shift+Z(Option+Shift+Zon a Mac), pick the folder (Clippingsunless you change it) and where the clip goes, and pressMod+Enter. It has templates chosen by site, a highlighter, a reader view, and an optional Interpreter that fills parts of a template with an AI model you choose, using your own key. Get it for Chrome, Edge, Brave and Arc from the Chrome Web Store, and Safari on iPhone and iPad from the App Store. Safari on the Mac and Firefox are in review and follow soon. - Clip into the note you choose. A clip starts a new note in any folder, or goes to the top or bottom of a note you already have, or of today's daily note (made from your daily note settings and template when it does not exist yet). A taken name gets the next free one, so a clip never overwrites a note. Clipping into a note that is open goes through the editor: typing you have not saved stays, and undo takes the clip back out. With ZenNotes closed, it opens and files the clip once it has started.
- Safe by design. Any web page can open a
zennotes://link, so ZenNotes files the clipboard only when it holds exactly the note the link vouches for (its SHA-256). A page cannot make it save something else you copied, such as a password. Clips also stay inside your notes area and never touch hidden folders.
Fixes
- A clip from a browser on Windows arrives. Windows can store the clipboard with CRLF line endings, which the extension never hashed; ZenNotes now accepts that form and files the note exactly as the extension wrote it.
- On iPhone, iPad and Android, a new or edited TikZ figure draws right away (iPhone 1.39.0, Android 1.1.58). Before: it waited 30 seconds and then showed an error.
For contributors
- The clip links are a documented contract.
docs/web-clipper-link.mdanddocs/web-clipper-link.fixtures.jsondefinezennotes://newandzennotes://daily; the desktop parser, the extension and (later) the phones test against the same cases. Raycast, Shortcuts or any script can hand ZenNotes a note the same way. - A dev build on macOS no longer takes
zennotes://away from ZenNotes. Every unpackaged run used to make the bare Electron.app the link handler, so links opened an empty Electron window until ZenNotes was launched again. Only a packaged app registers now. - The phones' vault layer is one package,
@zennotes/portable-vault, instead of a copy in each phone repo (since core 2.84.1). This release also carries the first pieces of ZenNotes in your browser, built and tested but not served anywhere yet.
Demos
Captioned 1080p clips recorded on the release build, with made-up data.
Clip a page: an article in the browser, the clipper opened over it with the page's name, the folder Clippings and New note, then Cmd+Enter, and ZenNotes files the note in Clippings and opens it with its link back, author, date and the article as clean Markdown. Watch the clip (22 seconds, captioned).
Clip into today's daily note: a line typed into today's daily note and not saved yet, a quote selected in the browser and clipped with Add as "Daily note, bottom". The typed line stays, the clip lands below it, and Cmd+Z takes the clip back out. Watch the clip (28 seconds, captioned).
Verification
How to test locally:
- Build the extension from ZenNotes/web-clipper (
npm ci && npm run build) and loaddist/chromeas an unpacked extension in Chrome, or install it from a store. - Install this release (a dev build does not register
zennotes://on macOS, so use the packaged app), open a vault, then open any article in the browser, pressAlt+Shift+ZandMod+Enter. Before: nothing handled the link. After: the note opens inClippingswith the page's title, link and text. - Clip the same page again. The second note is named
<title> 2; the first is untouched. - Open today's daily note, type a line without saving, then clip with Add as "Daily note, bottom". Your line stays and the clip appears below it; undo removes the clip.
- Copy something else between pressing
Mod+Enterand ZenNotes coming forward (or fire a clip link by hand with a wrongclipboard=hash). ZenNotes says the clip did not arrive and writes nothing.
Distribution channels
- GitHub: this release, latest, with all five update feeds. Every file they name was checked, and the app in both macOS DMGs is Notarized Developer ID and stapled.
- AUR:
zennotes-bin 2.85.0-1, pinned to the Linux tarball's SHA-256cd279a34…16ff84f. - Homebrew: the
zennotescask in ZenNotes/homebrew-tap (3f5ab36). - Nix:
packaging/nix/release-data.json(be7b6c1b), built onmain(run 43111692041). - nixpkgs: NixOS/nixpkgs#585604,
zennotes-desktop: 2.83.0 -> 2.85.0, waiting for nixpkgs review. - Self-hosted server and Docker: unchanged; 2.84.0 still serves the current web app.
- zn: this app still bundles 0.17.1, the latest.
- Phones: iPhone 1.39.0 (build 61) is waiting for App Review, and Android 1.1.58 is in Play review, with its signed universal APK on the Android GitHub release. Both run core
core-2.85.0-core.h34304526f14f966cfrom this commit. - Web Clipper: Chrome Web Store and the App Store for iPhone and iPad today; Safari on the Mac and Firefox in review.
- Website: the release page, the Web Clipper docs and the clips on zennotes.org.
Release validation
- In a clean
npm cicheckout at612e7b7b: typecheck, every test suite uncached (shared-domain 2687, portable-vault 398, app-core 4913, quicklook 18, web 76, desktop 1941),build:prod,npm run packand the packaged launch check (page target, rendered, 2.85.0), and the three smoke suites. No hazards, no high audit findings, no long dashes. - CI on the release PR passed on every platform at
612e7b7b. GitHub Actions had an outage right after the fast-forward, and the run onmainfor that commit never started; the tag went on the PR's green run of the same commit, and CI onmainthen passed atbe7b6c1b(the same code plus packaging). - Earlier failures on the release branch, each fixed before the cut: a Windows-only clip-links test that used POSIX paths (
0360feb7), three CodeQL findings in the not-yet-served browser app (803d9b5b), and a Windows-only flaky ordered-list test whose 50 ms parse budget ran out on a slow runner (612e7b7b). - The candidate core was walked on iPhone and Android, and the iPhone Cloud UI tests passed on a clean run (7 passed, 1 iPad-only skip) after a test-harness fix for blank first launches on a loaded Mac. The phone release builds were walked again on a simulator and an emulator.
- Not tested before release: a clip from a browser on Windows itself (the CRLF clipboard path has unit tests only), a bare Linux AppImage's link handling, packaged Windows and Linux builds beyond CI, and the phones on real devices.