# Show HN: A Cursor-like workspace for your LaTeX papers

> Source: <https://github.com/cu1ch3n/papilot>
> Published: 2026-10-29 05:39:46+00:00

**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.
