Research Grants Finder — Printing Press CLI
Prerequisites: Install the CLI
This skill drives the grants-pp-cli binary. You must verify the CLI is installed before invoking any command from this skill. If it is missing, install it first:
- Install via the Printing Press installer. It defaults binaries to
$HOME/.local/binon macOS/Linux and%LOCALAPPDATA%\Programs\PrintingPress\binon Windows:
npx -y @mvanhorn/printing-press-library install grants --cli-only
- Verify with the
versionsubcommand. - Ensure the reported install directory is on
$PATHfor the agent/runtime that will invoke this skill.
No API key is required — all three upstream APIs (Grants.gov Search2, NIH RePORTER, NSF Awards) are public and keyless.
Note: this CLI uses the Go standard-library
flagpackage rather than cobra, so its usage examples below are shown as plain text. Run thehelpsubcommand for the authoritative flag list; behavior is identical to the recipes shown.
What it does
search— open federal funding opportunities from Grants.gov (NIH, NSF, and every other federal agency).nih— awarded NIH projects from RePORTER, sorted by award size, to benchmark how much a topic typically gets. Restricted to award types an external applicant can compete for;include-centersadds center, program and consortium awards, which are one to two orders of magnitude larger. A median accompanies the listing, because sorting by size shows the largest awards rather than representative ones.nsf— awarded NSF grants.doctor— live health check of all three upstream APIs.
Every command accepts a json flag for machine-readable output, and flags may appear anywhere on the command line.
Recipes
Find open opportunities, filter by deadline, agency, award size, or eligibility:
grants-pp-cli search "cancer imaging"
grants-pp-cli search "cancer imaging" --closing-before 2026-12-31 --rows 50
grants-pp-cli search cancer --agency HHS-NIH11 --rows 10
grants-pp-cli search microbiome --details
grants-pp-cli search microbiome --min-award 500000
grants-pp-cli search microbiome --eligibility "small business"
Notes on the search filters:
- The deadline filter (
closing-before, format YYYY-MM-DD) is applied client-side within the fetched page; a stderr warning appears when the page was full and the list may be truncated — raise therowsvalue for fuller coverage. - The agency filter takes a plain string agency code such as HHS-NIH11 or NSF.
- The minimum-award filter uses awardCeiling with an estimatedFunding fallback, because Grants.gov often reports a zero ceiling; estimated values are labelled in the output.
- The award and eligibility filters fetch per-opportunity details, so they are slower.
Benchmark awarded funding for a topic:
grants-pp-cli nih "gut microbiome" --year 2025 --min-amount 1000000
grants-pp-cli nih "gut microbiome" --year 2025 --include-centers
grants-pp-cli nsf "quantum computing" --rows 25 --min-amount 500000
Notes on the NIH benchmark:
- Results cover research project grants, high-risk awards and career transition awards — the types an individual investigator applies for. Procurement contracts and NIH intramural projects are excluded: neither is open to an outside applicant, and both are large enough to dominate a size-sorted list.
include-centerswidens the search to center, program and consortium awards. These are competable but fund the running of a research center rather than a single research idea, and they are one to two orders of magnitude larger.- The listing is sorted by award size, so it shows the largest awards. Read the median line beneath it for what a typical award actually looks like — the two routinely differ by a factor of five or more.
- The keyword is matched against project title and abstract only. RePORTER also indexes a machine-generated concept tag list, but those tags are attached independently of a project's subject and match facility and administrative awards.
JSON output for scripting, and a health check before a session:
grants-pp-cli search cancer --rows 5 --json
grants-pp-cli nih cancer --json
grants-pp-cli doctor
The nih JSON payload carries a typical_award object alongside the projects, holding the median, the bracket it was located in, and the population it describes.
Notes for agents
- NIH/NSF results are awarded (historical) grants; open calls come only from the
searchcommand. - NSF results are pooled across several pages, deduplicated by title, matched on word stems and ranked with title hits first — a single upstream page is neither relevance-ordered nor complete.
- Grants.gov dates in results are MM/DD/YYYY; the deadline filter takes YYYY-MM-DD.
- Exit codes: 0 success, 1 upstream/API error, 2 usage error.