Skip to main content

Local PDF review with browser UI and Acrobat-compatible highlights

Project description

PeerFold

Review PDFs in a native window — embedded WebKit/WebView2 via pywebview, no browser tabs or URL bar. Use --web for your system browser (recommended over SSH). Highlights are written as standard PDF /Highlight annotations — open the saved copy in Acrobat, Preview, or any PDF reader.

Saved reviews: manuscript_VC-2026-06-09.pdf next to the original.

Install

macOS & Linux

curl -fsSL https://vincenzoml.github.io/PeerFold/install.sh | bash

Installs the latest release: macOS → Applications/PeerFold.app; Linux → ~/.local/bin/peerfold.

Windows (PowerShell)

irm https://vincenzoml.github.io/PeerFold/install.ps1 | iex

Installs to %LOCALAPPDATA%\Programs\PeerFold and adds peerfold to your user PATH.

Python 3.10+ (no pipx required)

python3 -m pip install --user peerfold-review
peerfold manuscript.pdf --reviewer RB

Ensure ~/.local/bin is on your PATH, or use a virtual environment:

python3 -m venv .venv && source .venv/bin/activate
pip install peerfold-review
peerfold manuscript.pdf --reviewer RB

With pipx (isolated CLI on PATH):

pipx install peerfold-review
peerfold manuscript.pdf --reviewer RB

Sharing with co-authors (same paper repo)

Do not submodule PeerFold — it is a published package. Pick one:

  1. One-liner — each co-author runs python3 -m pip install --user peerfold-review once.
  2. Repo launcher (recommended for co-authors) — from your paper repo root:
mkdir -p scripts && curl -fsSL https://vincenzoml.github.io/PeerFold/peerfold.py -o scripts/peerfold.py
python3 scripts/peerfold.py review-builds/paper.pdf --reviewer AB

Add .venv-peerfold/ to .gitignore. The launcher pins a PyPI version in PEERFOLD_VERSION so everyone on the repo uses the same build. Upgrade deliberately:

python3 scripts/peerfold.py --update   # bumps the pin — commit scripts/peerfold.py
  1. Standalone appcurl -fsSL …/install.sh | bash (macOS/Linux) or the Windows PowerShell installer; no Python needed.

Manual downloads: GitHub Releases.

Install scripts: install.sh · install.ps1

Usage

peerfold paper.pdf                  # native window (default)
peerfold paper.pdf -r VC            # reviewer short name (filename + metadata)
peerfold paper.pdf --port 8765      # fixed port
peerfold paper.pdf --web            # system browser (use over SSH)
peerfold paper.pdf --no-browser     # server only

Environment: PEERFOLD_REVIEWER sets the default reviewer name.

Features

  • Span-accurate text highlights with comment threads
  • Citation links open DOIs/URLs directly
  • Multi-tab sync, autosave, reviewer switching
  • Adobe-compatible annotation format

Development

python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
peerfold sample.pdf
pytest

License

MIT — see LICENSE. Uses PyMuPDF (AGPL).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

peerfold_review-0.1.16.tar.gz (51.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

peerfold_review-0.1.16-py3-none-any.whl (49.6 kB view details)

Uploaded Python 3

File details

Details for the file peerfold_review-0.1.16.tar.gz.

File metadata

  • Download URL: peerfold_review-0.1.16.tar.gz
  • Upload date:
  • Size: 51.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for peerfold_review-0.1.16.tar.gz
Algorithm Hash digest
SHA256 a5901051c362a92b4b688095024cb23c04dd0cd02090d3740d9eab64ef9e8baf
MD5 aeb2067f8cebc3a7330a98fbe243aa1a
BLAKE2b-256 a7c96cbe555a9b1a3969279751c4553279f9f1ff36c0a2c05e1e5d8f06205738

See more details on using hashes here.

File details

Details for the file peerfold_review-0.1.16-py3-none-any.whl.

File metadata

File hashes

Hashes for peerfold_review-0.1.16-py3-none-any.whl
Algorithm Hash digest
SHA256 52166c3799a896818a9921d7acf0f3b21487aed5985d3fa1877bb115d811f09a
MD5 876725b52897dae6c3091b408d36522e
BLAKE2b-256 16eb52f5edb912e61eacf41d94dd76ee23d8302a1b82e228841fd72539aa003b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page