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.15.tar.gz (51.0 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.15-py3-none-any.whl (49.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: peerfold_review-0.1.15.tar.gz
  • Upload date:
  • Size: 51.0 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.15.tar.gz
Algorithm Hash digest
SHA256 219e88b2d2b1bf8a78e8b95c1e0b0a5b822f222b69fcbf06f84a886f08a255f0
MD5 168a64d7802218f212e800eafae652ee
BLAKE2b-256 0336c9588df1d8d1c6c2d732b388d5d4c6ae8448364b832b995569c33d80e41d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for peerfold_review-0.1.15-py3-none-any.whl
Algorithm Hash digest
SHA256 870c1c98e571602f919a6755c87b4339a06ec97d546b5b05344568316dd84bd0
MD5 5179be7e23e6cfda59b3385435b68ff8
BLAKE2b-256 cda5596fce96add78b767912004be50d10dde573f9d31ab8e3c38d195e618fd2

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