
Literature Search Biorxiv
Query bioRxiv and medRxiv preprints by date range and category filters when validating a biotech or health-science idea or writing a literature-backed spec.
Overview
literature-search-biorxiv is an agent skill for the Idea phase that searches bioRxiv and medRxiv by date range with category-aware local filtering.
Install
npx skills add https://github.com/google-deepmind/science-skills --skill literature-search-biorxivWhat is this skill?
- Calls the public bioRxiv API with rate-limited HTTP client (≈1 QPS) and retry handling
- Supports bioRxiv/medRxiv category filtering across a long enumerated category list
- Python ≥3.10 script with scienceskillscommon shared client dependency
- Returns structured JSON output suitable for agent post-processing or pipelines
- Designed for local filtering after API fetch rather than manual web browsing
- MIN_REQUEST_INTERVAL 1.0s between API requests
- MAX_RETRIES 4
Adoption & trust: 642 installs on skills.sh; 1.7k GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You need current preprint evidence from bioRxiv/medRxiv but manual search and copy-paste does not scale inside an agent workflow.
Who is it for?
Solo builders or tiny teams doing biotech, health, or ML-for-science discovery who want agent-driven preprint lookups with explicit rate limits.
Skip if: Builders who need PubMed, clinical trial registries, paywalled journals, or full PRISMA-style systematic reviews without custom follow-up tooling.
When should I use this skill?
You need bioRxiv or medRxiv preprints for a date range with category filtering as part of research or validation prep.
What do I get? / Deliverables
You get JSON-backed preprint hits filtered to your date window and categories so you can cite findings or narrow validation scope.
- JSON search results from bioRxiv/medRxiv API
- Filtered preprint list for agent summarization
Recommended Skills
Journey fit
Canonical shelf is Idea → research because the skill’s primary job is discovering and filtering preprint literature before you commit to a build or claim. Research subphase fits date-range API search plus local filtering across bioRxiv/medRxiv category taxonomies.
How it compares
Use instead of asking the agent to scrape preprint sites ad hoc—this skill encodes the official API client pattern and category filters.
Common Questions / FAQ
Who is literature-search-biorxiv for?
Indie and solo builders plus researchers using Claude Code, Cursor, or Codex who need bioRxiv/medRxiv preprint search inside an agent session.
When should I use literature-search-biorxiv?
During Idea research when validating a scientific angle, before Validate scope, or anytime you need dated preprint pulls for a spec or landing-page claim.
Is literature-search-biorxiv safe to install?
It performs outbound HTTPS to the bioRxiv API; review the Security Audits panel on this Prism page and pin the skill version before running in CI.
SKILL.md
READMESKILL.md - Literature Search Biorxiv
# Copyright 2026 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Search bioRxiv/medRxiv by date range with local filtering.""" # /// script # requires-python = ">=3.10" # dependencies = [ # "scienceskillscommon", # ] # [tool.uv.sources] # scienceskillscommon = { path = "../../scienceskillscommon" } # /// import argparse import json import sys from science_skills.scienceskillscommon import http_client client = http_client.HttpClient(base_url="https://api.biorxiv.org/", qps=1.0) # --------------------------------------------------------------------------- # Constants # --------------------------------------------------------------------------- MIN_REQUEST_INTERVAL = 1.0 # seconds between API requests LOCK_FILE = "/tmp/biorxiv_api.lock" MAX_RETRIES = 4 USER_AGENT = "" BIORXIV_CATEGORIES = [ "animal_behavior_and_cognition", "biochemistry", "bioengineering", "bioinformatics", "biophysics", "cancer_biology", "cell_biology", "clinical_trials", "developmental_biology", "ecology", "epidemiology", "evolutionary_biology", "genetics", "genomics", "immunology", "microbiology", "molecular_biology", "neuroscience", "paleontology", "pathology", "pharmacology_and_toxicology", "physiology", "plant_biology", "scientific_communication_and_education", "synthetic_biology", "systems_biology", "zoology", ] MEDRXIV_CATEGORIES = [ "addiction_medicine", "allergy_and_immunology", "anesthesia", "cardiovascular_medicine", "dentistry_and_oral_medicine", "dermatology", "emergency_medicine", "endocrinology", "epidemiology", "forensic_medicine", "gastroenterology", "genetic_and_genomic_medicine", "health_informatics", "health_economics_and_outcomes_research", "health_policy", "health_systems_and_quality_improvement", "hematology", "hiv_aids", "infectious_diseases", "intensive_care_and_critical_care_medicine", "medical_education", "medical_ethics", "nephrology", "neurology", "nursing", "nutrition", "obstetrics_and_gynecology", "occupational_and_environmental_health", "oncology", "ophthalmology", "orthopedics", "otolaryngology", "pain_medicine", "palliative_care", "pathology", "pediatrics", "pharmacology_and_therapeutics", "primary_care_research", "psychiatry_and_clinical_psychology", "public_and_global_health", "radiology_and_imaging", "rehabilitation_medicine_and_physical_therapy", "respiratory_medicine", "rheumatology", "sexual_and_reproductive_health", "sports_medicine", "surgery", "toxicology", "transplantation", "urology", ] def search_biorxiv(args): """Searches bioRxiv/medRxiv for preprints in the given date range.""" # Strict Category Validation if args.category: if args.server == "biorxiv" and args.category not in BIORXIV_CATEGORIES: sys.exit( f"Error: Invalid category '{args.category}' for bioRxiv.\n" f"Valid categories are: {', '.join(BIORXIV_CATEGORIES)}" ) elif args.server == "medrxiv" and args.category not in MEDRXIV_CATEGORIES: sys.exit( f"Error: Invalid category '{args.category}' for medRxiv.\n" f"Valid categories are: {', '.join(MEDRXIV_CATEGORIES)}" ) base_url = ( f"https://api.biorxiv.org/details/{args.server}" f"/{args.start_date}/{arg