Skip to content

Repository files navigation

PaperTamer logo

PaperTamer · 驯稿

AI proposes. You approve.
Keep the speed of vibe writing. Keep ownership of your paper.

中文 · Quick start · How it works · 中文发布素材

PaperTamer workflow illustration: independent red/green decisions beside a synchronized PDF

Workflow illustration, not an editor screenshot. The implementation uses Cursor's native diff editor and a local PDF.js viewer.

Your AI shouldn't have the final say

You ask an agent to tighten one paragraph. It edits five. The PDF looks different. Now you are reconstructing what changed instead of thinking about the paper.

PaperTamer turns AI revisions into decisions you can actually see. It bundles a Skill for Claude Code / Codex with a local Cursor review extension. The agent prepares a separate candidate; you keep, reject, or refine each disjoint change beside the compiled paper.

  • One change, one decision. Independent Keep / Reject / Try & edit controls. Resolving one hunk removes only its red/green and buttons.
  • Your editor stays yours. Try a change, edit it yourself, use normal undo/redo. Saving a trial updates the preview; it does not approve the change.
  • TeX ⇄ PDF, in context. Scroll either pane or click the PDF to locate corresponding source. Works in review mode and ordinary source-reading mode.
  • Last good preview survives a bad build. A matching PDF, SyncTeX file, and source snapshot are published together after validation.
  • Explicit delivery. Export the reviewed PDF when you're ready. The previous delivery PDF gets a date/time backup.

This is a local author-in-the-loop workflow, not another paper-writing model, a cloud Overleaf replacement, or a guarantee against arbitrary agent filesystem writes. Use the Skill's candidate workflow and keep version control.

Quick start

Requirements: Node.js 20+, Cursor classic IDE, local latexmk + SyncTeX + Poppler (pdftotext), and Cursor's PDF Viewer extension (tomoki1207.pdf). The tested PDF Viewer version is 1.2.2. No npm runtime dependencies or PaperTamer API keys are needed. Your chosen agent/editor may have its own costs and network behavior.

1. Get PaperTamer

git clone https://github.com/huyuelin/PaperTamer.git
cd PaperTamer

2. Connect a paper and install the Skill

Use your actual paper directory and entry file. The directory should be where you normally compile the paper. Paths with spaces are supported.

node skills/papertamer/scripts/papertamer.cjs init \
  --project "/absolute/path/to/your-paper" \
  --main main.tex \
  --agents both

node skills/papertamer/scripts/papertamer.cjs doctor \
  --project "/absolute/path/to/your-paper"

node skills/papertamer/scripts/papertamer.cjs open \
  --project "/absolute/path/to/your-paper"

--agents codex installs .agents/skills/papertamer; --agents claude installs .claude/skills/papertamer; both installs both. Existing configuration and Skill copies are never overwritten. Omit --agents to configure only the paper.

The launcher opens a dedicated Cursor Extension Development Host window with PaperTamer loaded. This is the supported v0.1 distribution, not a Marketplace installation or integration with Cursor Agent's private approval UI. The entire Skill directory must stay together.

3. Ask your agent for a reviewable revision

In a Codex session rooted at the paper:

Use $papertamer to clarify the introduction. Preserve the claims,
citations and equations. Publish a reviewable proposal; do not apply it.

In Claude Code:

/papertamer Clarify the introduction. Preserve the claims, citations
and equations. Publish a reviewable proposal; do not apply it.

Project-local Skill locations and invocation follow the Codex Skill documentation and Claude Code Skill documentation. Reopen the agent session if an installed Skill has not been discovered.

4. Make the decisions in Cursor

Control What happens
Keep Applies/confirms only that hunk, saves, removes its red/green and buttons
Reject Discards only that candidate; reverses its trial if necessary
Try & edit Opens the change in the real source buffer for editing and undo
Ctrl/Cmd+S Saves source and rebuilds the live PDF; does not confirm a trial
Read source and PDF Hides the review view without deciding pending edits
Export reviewed PDF Checks unresolved decisions/build freshness, backs up and updates delivery

Use the command palette for PaperTamer: Review pending edits, Read source and PDF, or Toggle synchronized scrolling. Ctrl+Alt+J / Cmd+Alt+J performs forward search from the source cursor.

Try without touching a paper

node scripts/demo.cjs

This creates a new disposable tutorial project, publishes three independent wording changes, and prints the command to open it. It does not approve anything or modify an existing manuscript. The tutorial has no fabricated research results.

Why two PDFs?

.papertamer/build/main.pdf is the live preview of saved source. The configured deliveryFile (usually main.pdf) is the explicitly exported delivery. Unapplied red/green candidates are not in either PDF. A saved trial can be in the live preview but still awaits your decision.

Use Try & edit → Save to see a candidate in the PDF. Resolve the decisions, check the paper, then use Export reviewed PDF to update the delivery. See workflow and troubleshooting.

Scope, privacy, and safety

  • v0.1 is tested locally on macOS + Cursor classic. VS Code-compatible APIs are used, but Linux, Windows, Remote SSH and VS Code GUI behavior are not yet verified. pdfLaTeX is integration-tested; XeLaTeX/LuaLaTeX are configurable but not part of the verified GUI matrix.
  • Source–PDF navigation is SyncTeX line/region mapping, not guaranteed word-level alignment. Uncompiled changes use nearby anchors. Figure text maps to its TeX inclusion/caption.
  • Only trusted, local, non-symlinked projects are supported. Builds disable shell escape and ignore latexmk rc files. Custom recipes, Biber workflows and externally linked assets may need adaptation.
  • PaperTamer makes no model calls and adds no telemetry. It does not change your agent's data policy. .papertamer/ contains private manuscript snapshots and must remain private; initialization adds it to .gitignore.
  • The Skill instructs agents not to modify the saved manuscript or approval records. This is a workflow contract, not an OS security boundary. Overlapping edits are blocked for review; maintain backups/Git.
  • Automatic English References-page detection is optional. It is not a substitute for checking the actual conference format or visually inspecting the final PDF.

See security boundaries and test coverage.

Development

npm test                 # Node tests; real TeX tests run when tools are installed
npm run test:ui          # Real isolated Cursor window; requires Cursor + PDF Viewer + TeX
npm run check:release    # Distribution/privacy sanity checks

The public repository contains code, Skill instructions, tutorial fixtures and documentation—no author's paper, private review history or PDFs. The PDF viewer reads PDF.js assets from the separately installed PDF Viewer extension; those assets are not redistributed here.

Bug reports with a minimal, non-confidential TeX example are welcome. Please do not attach an unpublished manuscript or an entire .papertamer/ folder.

License

MIT. Built from a real author-controlled paper revision workflow. Let AI do the drafting. Keep your hand on the manuscript.

About

AI proposes. You approve. Human-controlled LaTeX vibe writing: per-hunk review and TeX/PDF sync in Cursor, with Claude Code and Codex skills.

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages