A Cursor-like workspace for your papers: annotate and review PDFs directly without ever touching LaTeX.
English · 简体中文
You read and mark up the PDF the way a supervisor marks up a draft. An AI agent makes the edits in LaTeX, and every change comes back to you as a before-and-after of the typeset page. Nothing touches your paper until you accept it.
| Select a sentence or circle an equation and say what should change. SyncTeX hands the agent the exact LaTeX lines. | Each edit comes back as a typeset diff. Accept, reject or comment on it, and undo any decision. | | Jump to any section from the contents, search every page and zoom in sharply. Selecting text picks exactly the printed words. | Diff files and commit the ones you choose, with a commit message an agent writes. Pull and push, or merge a coauthor's changes and let an agent resolve the conflicts. |
Also: ✨ skills such as Polish, Proofread and Check math, one / away, plus your own · 🤖 Codex, Claude or Antigravity, each with your own login · 🌳 every task in its own Git worktree, up to two at once · 🌗 light and dark · 📱 runs on your computer, and you can open it from your phone.
Note
You need Node.js 22.22+, Git and a full TeX distribution (MacTeX or TeX Live). Revising also needs one signed-in agent.
npm install -g papilot
papilot demo
Open http://127.0.0.1:7274 and choose PDF in the sidebar. The demo adds an example paper to revise: a 26-page LaTeX paper about Papilot itself, full of equations. When you are ready, run papilot and choose Add paper to add any LaTeX project in a Git repository.
| Agent | Sign in once | How Papilot runs it |
|---|---|---|
| Codex | papilot codex login |
Through the Codex app server, in its workspace sandbox. Papilot uses your codex if you have one, or installs it on first start. |
| Claude | Start papilot withANTHROPIC_API_KEY set |
Through the Claude Agent SDK, downloaded the first time. The SDK does not accept a Pro or Max subscription login. |
| Antigravity | Install Antigravity and sign in to agy |
agy -p , one process per turn, editing files only. If your region needs it, setPAPILOT_AGY_PROXY . |
Papilot never reads, stores or forwards your credentials. An agent that isn't installed or signed in shows as unavailable.
Having trouble getting started? Run papilot doctor for environment checks and fixes, or papilot doctor --repo /path/to/paper to check a paper too. Add --json for a machine-readable report. Diagnostics do not install software, start the server or change your paper. See the diagnostics guide for what is checked.
⚙️ Options and remote access #
papilot --port 4400 # another local port
papilot --data ~/papilot-data # keep state somewhere else (default ~/.papilot)
papilot service install # macOS: start after login, restart if it exits
npm uninstall -g papilot # remove it; your state stays in ~/.papilot until you delete it
Papilot listens only on 127.0.0.1. To use it from another device, publish it on your tailnet with Tailscale Serve and set PAPILOT_PUBLIC_ORIGIN and PAPILOT_TAILSCALE_LOGIN. Papilot then checks the host, the browser origin and the Tailscale identity of every request. The guide has the steps.
🛠️ Develop #
git clone https://github.com/cu1ch3n/papilot && cd papilot
npm ci && npm run setup:review
npm run build && npm start
Run npm run typecheck, npm test and npm run test:ui before sending a pull request.
The guide covers every part of the workspace, the configuration variables, recovery after restarts, and development. The example paper in examples/papilot-paper explains the design in depth, with proofs. What changed in each release is in the changelog.
- 💡 Questions and ideas :Discussions
- 🐛 Something broke :open an issue
- 🤝 Want to help : pick agood first issue and readCONTRIBUTING.md
If Papilot saves you time on a paper, a ⭐ helps other researchers find it.
MIT © 2026 Cui Chen. The bundled review engine in vendor/latex-review is also MIT-licensed.