Skip to main content

English | 简体中文

Papper

Write in Markdown. Submit in Word.

Papper turns Markdown manuscripts into Word documents with citations, numbered figures and equations, and reviewer replies. Keep your source easy to edit with AI and review in Git, then build the DOCX your collaborators and journal need.

Write with an AI agent · VS Code extension · Output examples · Documentation

Write with an AI agent

Install uv, then install Papper:

uv tool install papper

Open your manuscript folder in an AI agent such as Codex, Claude Code, or Workbuddy. Ask it to use Papper, for example:

  • “Use Papper to convert this DOCX into Markdown.”
  • “Adapt the cross-references, images, tables, and bibliography in this Markdown file to Papper's syntax.”
  • “Use Papper to build this Markdown file as a DOCX.”

For a new paper, papper init creates a manuscript project with AGENTS.md and CLAUDE.md guidance that the agent can read.

Illustrated workflow: write Markdown, run papper build docx, and produce a manuscript and reviewer replies.

Workflow illustration generated with AI. Actual Word output is shown below.

Quick start

To create and build a paper yourself after installation:

papper init my-paper
cd my-paper
papper build docx

Open output/docx/manuscript.docx to inspect the result. Edit manuscript.md and run the build again when you want a new Word copy.

For a Chinese manuscript and reviewer-reply starter, replace the initialization command with papper init my-paper --lang zh-cn. To check your installation, run papper doctor.

VS Code extension

Install our Pandoc Manuscript Tools extension for writing in VS Code:

  • Reference navigation: jump to labels, find references, complete labels after @, and detect missing or duplicate labels.
  • Hover previews: inspect equations and local SVG, EMF, and WMF images while editing.
  • Readable manuscript syntax: highlight Pandoc blocks and spans, fold revision attributes, and navigate headings with a Pandoc-aware outline.
  • Image browsing: preview image folders in grid, masonry, or folder layouts.
  • Reviewer replies: navigate from reply_to_reviewers.md to labels in the workspace-root manuscript.md.

Output examples

These are actual Microsoft Word renders of the manuscript and reviewer-reply examples. Equations were built with mathtype: true and mathtypeConversionMethod: mathtype, using the installed MathType application for conversion.

Actual Word output: manuscript title page, tables and equations, and reviewer replies.

Explore the English manuscript, Chinese manuscript, and reviewer-reply starter. Click the preview to enlarge it. These examples show supported formatting; journal-specific requirements still need configuration and review.

Download the rendered manuscript DOCX and reviewer-reply DOCX to inspect their formatting and editable MathType objects in Word.

What Papper handles

Papper builds on Pandoc and pandoc-crossref, adding manuscript templates, Word formatting, and a reviewer-reply workflow in one CLI.

Your task What Papper provides
Draft and revise a paper Markdown sources, reusable project scaffolding, and guidance for AI agents
Keep references consistent CSL citations and cross-references for figures, tables, equations, and sections
Prepare a Word manuscript Author information, table formatting, numbered equations, page layout, and reference DOCX styling
Deliver editable equations Native Word equations or editable MathType-compatible objects
Respond to reviewers DOCX and HTML replies that reuse manuscript item numbers, with optional line-reference lookup
Bring an existing paper into Markdown DOCX import with supported equation, caption, image, and reference recovery

English and Chinese starters are included. Chinese builds use localized reference labels, chapter-based figure/table/equation numbering, and a bundled GB/T 7714 citation style; explicit citation styles take priority. HTML previews and JSON exports are also available.

A writing and revision workflow

Initialization creates manuscript.md, style.yml, reply_to_reviewers.md, example images and bibliography files, and agent instructions. Keep manuscript content in Markdown and reusable formatting in style.yml.

papper build docx
papper build html
papper build docx reply_to_reviewers.md

The reply starter already declares reply: manuscript.md in its YAML header. Use manuscript figure, table, equation, and section labels in your replies to keep their numbers aligned. Reply syntax and line references →

To use a journal-specific style file or Word reference document:

papper build docx --style-file styles/journal.yml
papper build docx --reference-doc journal-reference.docx

Those files must exist. CSL controls citation formatting; style.yml and the reference DOCX control document appearance. See custom reference documents and style precedence before adapting a journal template.

Already have a Word draft? Import it into a separate directory:

papper convert existing-paper.docx -o converted

This creates converted/existing-paper.md and its media. Check the imported content against the original; complex Word layouts may need manual cleanup. Import examples and recovery limits →

Is Papper a good fit?

Papper suits researchers who want to keep a Markdown source of their paper, use AI or Git during revision, and deliver Word documents. It is especially useful when you repeatedly rebuild a manuscript and its reviewer replies.

Before using it for a submission:

  • Markdown remains the source. Edits made in a generated DOCX are not automatically merged back into your manuscript. Importing Word content is a separate operation.
  • Journal formatting still needs review. Configure citation styles and document appearance, then inspect the final DOCX against the journal's requirements. Papper does not guarantee compliance with every publisher template.
  • Line lookup can require an office application. Resolving reviewer line references from Markdown or Word needs Microsoft Word on Windows or LibreOffice on other platforms. Supplying a suitable PDF avoids that conversion.
  • Check final pagination in Word. HTML previews help you review content; page breaks and layout can differ from Word.

Documentation

The installed CLI includes the authoring and configuration guides, so you and your AI agent can consult them inside any manuscript project:

papper guide
papper guide syntax equations
papper guide style docx-text-styles

papper guide lists topics with short descriptions. Select a topic or topic/subtopic to read it; use --full with syntax or style for the complete guide.

Looking for Start here
Manuscript YAML, citations, figures, tables, and equations papper guide syntax
Page layout, fonts, citation styles, and Word settings papper guide style
DOCX import and optional reference recovery Import guide
Editor integration and the local HTML API Runtime and integration
Source builds and validation Development
Release packaging Maintainer guide
Rendering implementation Rendering internals

Updates and support

Upgrade with uv tool upgrade papper. Run papper --help or papper build --help for commands and options; add --verbose when you need diagnostic logs.

For a problem, open an issue with your Papper version, operating system, command, and a minimal example that reproduces it. Remove confidential manuscript content before sharing.

Papper's own code is MIT licensed. Bundled components retain their respective licenses and notices. Thanks to Pandoc and pandoc-crossref, which provide the conversion and cross-reference foundations.

Metadata

Release files for papper 0.11.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for papper 0.11.3
File Interpreter ABI Platform
papper-0.11.3-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
papper-0.11.3-py3-none-manylinux_2_28_x86_64.whl Python 3 none Linux glibc 2.28+ x86-64 Details
papper-0.11.3-py3-none-macosx_14_0_arm64.whl Python 3 none macOS 14.0+ ARM64 Details

Total release size: 207.2 MB

Release files / papper-0.11.3-py3-none-win_amd64.whl

Download URL papper-0.11.3-py3-none-win_amd64.whl
Size 63.6 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
7e37b125b55ef3cb0d3fd31eb33ed0c91b0e482ebc1c731badbb11626219ec2e
BLAKE2b-256 checksum
How to use checksums
bdd81cfb62f3bee8d1b642e14b174ea5ed82e5901f738290c7e3102ee097eeeb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / papper-0.11.3-py3-none-manylinux_2_28_x86_64.whl

Download URL papper-0.11.3-py3-none-manylinux_2_28_x86_64.whl
Size 73.1 MB
Tags Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
01b720b9a931135381544bb82b0864580228d039952e4c7e5604f8d60b622f59
BLAKE2b-256 checksum
How to use checksums
234ece3acd8bac2820c0bf2c926c4d6c6f63e5857e339cfbc29a38acad432b5e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / papper-0.11.3-py3-none-macosx_14_0_arm64.whl

Download URL papper-0.11.3-py3-none-macosx_14_0_arm64.whl
Size 70.5 MB
Tags Python 3 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
029311b9346bbc2c56507ef8be240223c6e200cf17deef3387872d345ad3a0e5
BLAKE2b-256 checksum
How to use checksums
b1df451ea2f367bbe0a3adbd115b1e3566fb5467216c7e4362341102a78eb631
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for papper 0.11.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page