Skip to content
pachterlabPublic

About

πŸ“ Automated manuscript validation and submission portal completion

Resources

Contributing

Stars

208 stars

Watchers

5 watching

Forks

Repository files navigation

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

Website: paperpush.onrender.com β€” prepare and validate a submission in your browser, no install needed.

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.

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 (Anthropic, OpenAI, or Google; pick one with --provider, otherwise the first one with an API key set is used). Requires that provider's API key and pip install "paperpush[autofill]".
  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), its page layout (template, margins, font, spacing, line/page numbers), its figures (resolution, lettering size and typeface, panel labels β€” in attached files or embedded in the manuscript), the order figures and tables are cited in, and whether the title, abstract, authors, and keywords in the .sub match the manuscript. It prints a colour-coded report of what passed (green), failed (red), and was not checked and why (yellow; --alt-color for a colour-blind-friendly palette); -o also saves it as PDF (or .html/.md/.txt). Checks that need a reader's judgement β€” lettering in raster figures, the guidelines' free-text rules β€” run with --ai (an Anthropic, OpenAI, or Gemini API key), or with your own Claude Code/Codex subscription through the paperpush-validate skill (--ai-tasks / --ai-results).
  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 the venue data (venues.json, submission_forms.json, 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

Documentation

paperpush.readthedocs.io

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: AJHG, Bioinformatics, BMC Bioinformatics, The BMJ, Cell, Cell Genomics, Cell Reports, Cell Systems, Combinatorica, Discrete Mathematics, eLife, European Radiology, Genome Biology, Genome Medicine, Genome Research, IEEE TMI, IEEE TNNLS, IEEE TPAMI, JAMA, JMLR, JNM, The Lancet, Lancet Digital Health, Medical Image Analysis, Nature, Nature Biomedical Engineering, Nature Biotechnology, Nature Communications, Nature Genetics, Nature Machine Intelligence, Nature Medicine, Nature Methods, NEJM, Neuron, npj Digital Medicine, Nucleic Acids Research, PLOS Computational Biology, PNAS, Radiology, Radiology: Artificial Intelligence, Science, Science Advances, Science Immunology, Science Robotics, Science Signaling, Science Translational Medicine, TMLR

Conferences: ACL Rolling Review, CVPR 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

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 is listed in paperpush/venues.json (the master list of venues and their general metadata). A venue paperpush can submit to has a submission-form entry in paperpush/submission_forms.json (the fields the portal asks for), and a venue paperpush can validate against has 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). A venue may have either or both, so it can be supported by validate without submit or the other way round; paperpush --venues and venues.md show which. Each file has a generated JSON schema, and paperpush validate checks a .sub against the form and the requirements (a venue without a requirements entry gets only the form checks; a venue without a form gets a default one naming the manuscript files).

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.

Website

For authors who would rather not use a terminal, paperpush also runs as a website. Pick a venue and the form fills in with every field its portal asks for and the limits its author guidelines set. Upload the manuscript (and optionally autofill the rest from it), then validate. Simple limits such as word and keyword counts are checked as you type. The checks that read your files run when you press Validate, and the ones that need a reader run with Validate, extended with AI. When you are done, download the .sub (or a zip of the .sub plus your files) and run paperpush submit on it.

pip install 'paperpush[web]'
paperpush-web --open            # http://127.0.0.1:8000

Autofill and the AI checks require a visitor to enter their provider and API key in the page header. The key is sent only with AI requests. Set PAPERPUSH_WEB_AI=0 to turn them off on a public deployment, and PAPERPUSH_WEB_NETWORK_CHECKS=0 to stop the server from fetching the links and DOIs found in uploads. Other settings: PAPERPUSH_WEB_DATA (where uploads live), PAPERPUSH_WEB_TTL_HOURS (default 24), PAPERPUSH_WEB_MAX_WORKSPACE_MB (default 500).

The included Dockerfile uses Python 3.12 and installs paperpush[web,autofill,validate]. Build and run it with docker build -t paperpush-web . and docker run -p 8000:8000 paperpush-web.

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

About

πŸ“ Automated manuscript validation and submission portal completion

Resources

Contributing

Stars

208 stars

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages