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.
pip install paperpushTo install the playwright dependency and the required chromium browser, run:
playwright install chromiumgit clone https://github.com/pachterlab/paperpush.git
cd paperpushPrepare 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.
paperpush subfile VENUE: creates a file VENUE.sub that is a template for the VENUE submission.- fill out VENUE.sub - 3 options:
- a. fill out manually
- b. Ask an LLM: Use Claude skill
/paperpush-autofill, or any AI agent followingAGENTS.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 andpip install "paperpush[autofill]".
paperpush validate VENUE.sub: run the pre-submission checks on the filledVENUE.sub, including the manuscript against the venue's author guidelines (paperpush requirements VENUEprints those; a.texmanuscript is compiled withlatexmk/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.submatch the manuscript. It prints a colour-coded report of what passed (green), failed (red), and was not checked and why (yellow;--alt-colorfor a colour-blind-friendly palette);-oalso 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 thepaperpush-validateskill (--ai-tasks/--ai-results).paperpush login VENUE: log in to the VENUE submission portal.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
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 VENUESee python scripts/paperpush_pipeline.py --help for the full list of options, grouped by step.
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
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).
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.
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:8000Autofill 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.
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.
This project is licensed under the BSD-2 License - see the LICENSE file for details.
Developed by Joe Rich