jansxue1k downloadsEmbed Foxycape PDF reader in Obsidian with annotation sync.
A PDF reader for Obsidian that stays connected to your notes — highlights, citations, and deep links that take you back to the source.
Reading PDFs inside Obsidian often breaks the note-taking loop:
Foxycape PDF addresses these gaps without asking you to leave Obsidian.
Instead of leaving highlights stranded in the PDF, each new highlight can create or update a Markdown note with the same name, append the excerpt with a back-link, and optionally open that note in a split pane. Turn it off anytime in settings.

Skip blurry screenshots. Hover an embedded image (or use the touch control on mobile) to preview, copy, or download the original asset.

Citations stay tied to the source, so you can jump back from the note later:
#page= / #selection= / #markId=).
Bright PDF pages can fight a dark vault. Optionally remap grayscale vector colors to your theme foreground/background (BETA) — for all themes, dark only, or light only. Color artwork stays as-is.


Skip the OS snipping tool, and skip stitching pages by hand. Click Screenshot in the toolbar and drag a region on the PDF. Copy the image, or copy an image citation so you can jump back from the note later.
Crop a region on a single page:

Span the page gap and Foxycape stitches it into one continuous image:

Switching readers shouldn’t break the links you already have. Foxycape understands Obsidian-style #page= and #selection=, can become the default PDF viewer, reuses an open tab when possible, and adds #markId= for precise highlight jumps.

Highlighter, wavy underline, and straight underline with custom colors. Browse highlights in a list — filter, sort, jump, or delete.

PDF lines often insert hard breaks mid-sentence. Select text and copy as usual: Foxycape strips those soft wraps so the paste reads as continuous prose, while keeping real paragraph breaks.

Outline (TOC), page thumbnails, page picker, and in-document search (Mod+F) with case / diacritic / whole-word options. Search uses the PDF text layer (no OCR).

Zoom (auto / page width / percentages), vertical or horizontal scroll, single / facing / book layout, page rotation, password-protected PDFs. Works on desktop and mobile.


For the smoothest experience—deep links, highlights, and theme-aware pages—turn on Use as default PDF viewer in Foxycape settings so Obsidian opens PDFs with Foxycape by default.

npm install
npm run build # → dist/main.js, styles.css, manifest.json + foxycape-pdf-assets.zip
npm run dev # watch build (copies pdfjs/static sidecars into dist/)
npm test
npm run typecheck
npm run link # junction dist/ into your vault's .obsidian/plugins/foxycape-pdf
Set OBSIDIAN_PLUGIN_DIR to override the vault plugin path used by npm run link.
Community installs only receive the three Obsidian files. Worker and signer are unpacked from main.js on first load (no download). Cmaps and standard fonts (~1.5 MB) download silently from foxycape-pdf-assets.zip when missing — keyed by PDF.js version, so routine plugin upgrades skip the fetch. Local npm run link already has those sidecars under dist/, so no download is needed.
version in package.json (semver x.y.z). Build syncs it into manifest.json / versions.json.3.3.6, no v prefix).dist/main.js, dist/manifest.json, dist/styles.css, and dist/foxycape-pdf-assets.zip.Pushing a version tag runs .github/workflows/release.yml, which builds and uploads those assets.
This repository is source available under the Foxycape Plugins License Agreement.
Third-party components (for example PDF.js) and separately published packages (for example @foxycape/core under MIT) keep their own licenses.
See LICENSE.md for the full text.