jansxue14 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.


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.

git submodule update --init --recursive # if vendor/core is checked out as a submodule
npm install
npm run build # → dist/main.js, styles.css, manifest.json (assets inlined)
npm run dev # watch build
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.
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, and dist/styles.css (standard Obsidian community plugin layout; locales / pdfjs / signer are inlined into main.js).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.