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:
- One-liner — each co-author runs
python3 -m pip install --user peerfold-reviewonce. - 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
- Standalone app —
curl -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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
219e88b2d2b1bf8a78e8b95c1e0b0a5b822f222b69fcbf06f84a886f08a255f0
|
|
| MD5 |
168a64d7802218f212e800eafae652ee
|
|
| BLAKE2b-256 |
0336c9588df1d8d1c6c2d732b388d5d4c6ae8448364b832b995569c33d80e41d
|
File details
Details for the file peerfold_review-0.1.15-py3-none-any.whl.
File metadata
- Download URL: peerfold_review-0.1.15-py3-none-any.whl
- Upload date:
- Size: 49.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
870c1c98e571602f919a6755c87b4339a06ec97d546b5b05344568316dd84bd0
|
|
| MD5 |
5179be7e23e6cfda59b3385435b68ff8
|
|
| BLAKE2b-256 |
cda5596fce96add78b767912004be50d10dde573f9d31ab8e3c38d195e618fd2
|