Show HN: A Cursor-like workspace for your LaTeX papers A developer released Papilot, an open-source, locally run workspace that lets researchers annotate LaTeX paper PDFs and have an AI agent apply the edits in LaTeX, with each change returned as a before-and-after typeset diff that must be accepted before it touches the paper. Papilot uses SyncTeX to map a selected sentence or circled equation to the exact LaTeX lines, runs Codex, Claude (via the Claude Agent SDK with an ANTHROPIC_API_KEY) or Antigravity as the editing agent, and gives each task its own Git worktree, up to two at once. It requires Node.js 22.22+, Git and a full TeX distribution, installs via `npm install -g papilot`, listens only on 127.0.0.1:7274 by default, and never reads, stores or forwards user credentials. A Cursor-like workspace for your papers: annotate and review PDFs directly without ever touching LaTeX. English · 简体中文 https://github.com/cu1ch3n/papilot/blob/main/README.zh-CN.md 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. https://github.com/cu1ch3n/papilot/blob/main/docs/assets/feature-note.png | Each edit comes back as a typeset diff. Accept, reject or comment on it, and undo any decision. https://github.com/cu1ch3n/papilot/blob/main/docs/assets/feature-review.png | | Jump to any section from the contents, search every page and zoom in sharply. Selecting text picks exactly the printed words. https://github.com/cu1ch3n/papilot/blob/main/docs/assets/feature-contents.png | 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. https://github.com/cu1ch3n/papilot/blob/main/docs/assets/feature-git.png | 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 https://www.tug.org/mactex/ or TeX Live https://www.tug.org/texlive/ . Revising also needs one signed-in agent -agents . npm install -g papilot papilot demo Open http://127.0.0.1:7274 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 with ANTHROPIC 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, set PAPILOT 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 https://github.com/cu1ch3n/papilot/blob/main/docs/guide.md diagnostics 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 https://github.com/cu1ch3n/papilot/blob/main/docs/guide.md remote-access-with-tailscale 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 https://github.com/cu1ch3n/papilot/blob/main/docs/guide.md covers every part of the workspace, the configuration variables, recovery after restarts, and development. The example paper in examples/papilot-paper https://github.com/cu1ch3n/papilot/blob/main/examples/papilot-paper explains the design in depth, with proofs. What changed in each release is in the changelog https://github.com/cu1ch3n/papilot/blob/main/CHANGELOG.md . - 💡 Questions and ideas : Discussions https://github.com/cu1ch3n/papilot/discussions - 🐛 Something broke : open an issue https://github.com/cu1ch3n/papilot/issues/new/choose - 🤝 Want to help : pick a good first issue https://github.com/cu1ch3n/papilot/labels/good%20first%20issue and read CONTRIBUTING.md https://github.com/cu1ch3n/papilot/blob/main/CONTRIBUTING.md If Papilot saves you time on a paper, a ⭐ helps other researchers find it. MIT https://github.com/cu1ch3n/papilot/blob/main/LICENSE © 2026 Cui Chen. The bundled review engine in vendor/latex-review https://github.com/cu1ch3n/papilot/blob/main/vendor/latex-review is also MIT-licensed.