Skip to main content

PaperPush: Automated manuscript submission to journals, conferences, and preprint servers

Prepare manuscripts for submission to preprint servers, venues, and conferences with just a few commands. No need to spend hours filling out forms manually. Just provide a manuscript directory and submission venue of interest, and paperpush will fill out the submission portal for you.

Install

pip install paperpush

To install the playwright dependency and the required chromium browser, run:

playwright install chromium

Use with AI

git clone https://github.com/pachterlab/paperpush.git
cd paperpush
Prepare my manuscript in /PATH/TO/MANUSCRIPT/DIRECTORY for submission to VENUE with PaperPush.

The Claude skill /paperpush-prepare-submission helps with this.

See docs/example-session.md for a full worked example of this flow.

MCP server

To drive paperpush from any MCP client — Claude Desktop, an IDE extension — run it as an MCP server:

pip install 'paperpush[mcp]'
{
  "mcpServers": {
    "paperpush": {
      "command": "paperpush-mcp"
    }
  }
}

The server exposes the whole pipeline as tools. See AGENTS.md for the tool list and the contract agents should follow.

Quickstart

  1. paperpush subfile VENUE: creates a file VENUE.sub that is a template for the VENUE submission.
  2. fill out VENUE.sub - 3 options:
    • a. fill out manually
    • b. Ask an LLM: Use Claude skill /paperpush-autofill, or any AI agent following AGENTS.md.
    • c. paperpush autofill -d /PATH/TO/MANUSCRIPT/DIRECTORY --engine api VENUE.sub: Use an LLM API. Requires an API key.
  3. paperpush validate VENUE.sub: run the pre-submission checks on the filled VENUE.sub, including the manuscript against the venue's author guidelines (paperpush requirements VENUE prints those; a .tex manuscript is compiled with latexmk/pdflatex, if installed, to check its page count).
  4. paperpush login VENUE: log in to the VENUE submission portal.
  5. paperpush submit VENUE.sub: Fill out the VENUE submission portal. Will not actually submit the manuscript. We highly recommend reviewing the submission form in the venue portal before clicking submit.

Helper commands:

  • paperpush requirements VENUE: print VENUE's author guidelines, if available.
  • paperpush update-venues: Update venues.json and manuscript_requirements.json from the remote venue-data branch.
  • paperpush options VENUE.FIELD: print the allowed values for FIELD in VENUE's submission form.

See the YouTube tutorial PaperPush Tutorial

Run the whole pipeline at once

scripts/paperpush_pipeline.py sequentially runs the commands above — subfile, autofill, validate, login, submit. This allows going from a manuscript directory to a filled submission portal in just one command.

python scripts/paperpush_pipeline.py -d /PATH/TO/MANUSCRIPT/DIRECTORY --engine api VENUE

See python scripts/paperpush_pipeline.py --help for the full list of options, grouped by step.

Supported venues

Preprint servers: arXiv, bioRxiv, medRxiv

Journals: Bioinformatics, BMC Bioinformatics, Cell, Cell Genomics, Cell Systems, Combinatorica, Discrete Mathematics, Genome Biology, Nature, Nature Biotechnology, Nature Methods, Nucleic Acids Research, PLOS Computational Biology, Science, Science Advances, Science Immunology, Science Robotics, Science Signaling, Science Translational Medicine

Conferences: ICLR 2027

View the list on the command line with paperpush --venues.

Venue details (field options, limits, author-guideline rules) are updated independently of releases: paperpush fetches the latest published data at most once a day, and paperpush update-venues fetches it right away. New venues arrive with new releases (pip install -U paperpush).

For more details, see venues.md

Documentation

paperpush.readthedocs.io

Adding new venues

See CONTRIBUTING.md for instructions on adding new venues. See DEVELOPMENT.md for tips on adding new venues and running unit tests.

Each venue has a submission-form entry in paperpush/venues.json (the fields the portal asks for) and, optionally, a manuscript-requirements entry in paperpush/manuscript_requirements.json (what the venue's author guidelines demand of the manuscript: file formats and sizes, word/page limits, required sections and statements, title-page items, figure resolution and dimensions, reference rules). Both use a shared vocabulary across venues, each has a generated JSON schema, and paperpush validate checks a .sub against both (a venue without a requirements entry gets only the form checks).

For AI agents

If you are an AI agent asked to submit a manuscript on the user's behalf, read AGENTS.md — or, if you are working from a pip install rather than a clone of this repo, run paperpush --agent-guide, which prints the same document from the copy that shipped with the installed version. It describes how to run the full pipeline while doing your own field extraction (reading the manuscript and writing a values.json for the default --engine manual) rather than relying on the API-backed engine. It also asks the agent to check paperpush login --list before it starts, and to tell you right away if you still need to run paperpush login <venue> yourself — that sign-in is interactive and belongs in your terminal. Claude Code should prefer the /paperpush-prepare-submission and /paperpush-autofill skills, which encode the same contract.

License

This project is licensed under the BSD-2 License - see the LICENSE file for details.

Developed by Joe Rich

Metadata

Release files for paperpush 0.2.1

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

Source distribution (sdist)

Source distribution for paperpush 0.2.1
File Size Uploaded Provenance Actions
paperpush-0.2.1.tar.gz 734.3 kB Without provenance Details for paperpush-0.2.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for paperpush 0.2.1
File Interpreter ABI Platform Actions
paperpush-0.2.1-py3-none-any.whl Python 3 none any Details for paperpush-0.2.1-py3-none-any.whl

Total release size: 1.5 MB

Release files / paperpush-0.2.1.tar.gz

Download URL paperpush-0.2.1.tar.gz
Size 734.3 kB
Tags Source
SHA-256 checksum
How to use checksums
973c0525af7941f5aa1bdb4e8d93e1c301b9c20fe4a3439bb8e949bfd9cd743a
BLAKE2b-256 checksum
How to use checksums
a2255cd621af346d0ae28fbdfb1564ee262d65d2ea9facd587bee1ea415dce65
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.16

Release files / paperpush-0.2.1-py3-none-any.whl

Download URL paperpush-0.2.1-py3-none-any.whl
Size 732.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
500d549c6c0979c075b15245eaf97fbffc1e9676b46b116c013b1ee4c0dc9380
BLAKE2b-256 checksum
How to use checksums
cc019bc587b3753870239dba64458199d3387419621802f53b1a6b9ddb369944
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.16

Security for paperpush 0.2.1

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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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