
Research
/Security News
PolinRider Spreads Through Compromised GitHub Accounts and Packagist
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.
@guanyilun/pi-ads
Advanced tools
A pi extension for querying NASA's Astrophysics Data System (ADS).
Provides three tools for searching papers, fetching paper details, and exploring citation graphs — all directly from your pi coding agent.
export ADS_API_TOKEN="your-token-here"
Add this to your ~/.bashrc, ~/.zshrc, or equivalent so it persists across sessions.
pi install npm:@guanyilun/pi-ads
Or install from the GitHub repository:
pi install git:github.com/guanyilun/pi-ads
For a quick one-shot test without installing:
pi -e /path/to/pi-ads
ads_search — Search ADS papersSearch the full ADS database with fielded queries, filters, and sorting.
Parameters:
| Parameter | Type | Description |
|---|---|---|
query | string | Required. Search query. Supports fielded syntax: title:exoplanets, author:"Spergel, D", keyword:"dark matter", year:2023, bibcode:2023ApJ...950L..12A, doi:10.3847/.... Unfielded terms search all metadata. Use quotes for phrases, +/- for inclusion/exclusion. |
database | string | Filter by database: astronomy, physics, or general. |
doctype | string | Filter by document type: article, proceedings, thesis, book, catalog, software, proposal. |
refereed | boolean | Filter to only peer-reviewed papers. |
year_from | string | Start year for date range, e.g. "2020". |
year_to | string | End year for date range, e.g. "2024". |
max_results | number | Max papers to return (default 10, max 50). |
sort_by | string | Sort order: relevance (default), date, citation_count, read_count. |
start | number | Pagination offset (default 0). |
detail | string | Output detail level: compact (default) or full. Compact shows title, first author, year, bibcode, citations — minimal context usage. Full includes abstract, all authors, keywords, DOI. |
Example prompts:
ads_paper — Fetch a specific paperLook up a paper by its ADS bibcode, DOI, or arXiv ID.
Parameters:
| Parameter | Type | Description |
|---|---|---|
id | string | Required. ADS bibcode (2023ApJ...950L..12A), DOI (10.3847/2041-8213/acb7e0), or arXiv ID (arXiv:2301.01234). |
bibtex | boolean | Include BibTeX citation in the result (default false). |
Example prompts:
ads_download_pdf — Download a paper's PDFDownload the PDF of a paper from ADS. Tries publisher → ADS → arXiv sources in fallback order.
Parameters:
| Parameter | Type | Description |
|---|---|---|
id | string | Required. ADS bibcode, DOI, or arXiv ID (same resolution as ads_paper). |
output_path | string | File path to save the PDF. Defaults to {pdfDownloadDir}/{safeName}.pdf (see config below). If a directory is given, saves as {dir}/{safeName}.pdf. |
source | string | Preferred PDF source: auto (default, tries publisher → ADS → arXiv), publisher (PUB_PDF), ads (ADS_PDF), or arxiv (EPRINT_PDF). |
Example prompts:
PDF sources:
PUB_PDF): Direct from the journal. May be behind a paywall.ADS_PDF): ADS-hosted scan. Available for many older papers.EPRINT_PDF): arXiv preprint. Usually open access but may differ from published version.Behavior notes:
2023ApJ...950L..12A → 2023ApJ___950L__12A.pdf. Since bibcodes never contain underscores, this is fully reversible.Add to ~/.pi/agent/settings.json to configure a default download folder:
{
"ads": {
"pdfDownloadDir": "~/papers"
}
}
When set, PDFs are saved to ~/papers/2023ApJ_950L_12A.pdf by default. Without this setting, the current working directory is used.
ads_citations — Explore citation graphsFind papers that cite a given paper (forward citations) or that a given paper cites (backward references).
Parameters:
| Parameter | Type | Description |
|---|---|---|
bibcode | string | Required. ADS bibcode of the paper. |
direction | string | citations (papers citing this one — default) or references (papers this one cites). |
max_results | number | Max papers to return (default 10, max 50). |
sort_by | string | Sort order: date (default), citation_count, or read_count. |
start | number | Pagination offset (default 0). |
detail | string | Output detail level: compact (default) or full. Compact shows title, first author, year, bibcode, citations — minimal context usage. Full includes abstract, all authors, keywords, DOI. |
Example prompts:
The query parameter in ads_search supports the full ADS/Solr search syntax:
title:exoplanets, author:"Hubble, E", abstract:"dark energy", keyword:"gravitational waves""black holes" (use quotes for exact phrases)"transiting exoplanets" +JWST -Kepleryear:2023, year:[2020 TO 2024], pubdate:[2023-01-00 TO *]title:exoplanet*The ADS API allows 5,000 queries per day per token. Rate limit headers (X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset) are included in API responses.
MIT
FAQs
pi extension for querying NASA's Astrophysics Data System (ADS)
The npm package @guanyilun/pi-ads receives a total of 1 weekly downloads. As such, @guanyilun/pi-ads popularity was classified as not popular.
We found that @guanyilun/pi-ads demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Research
/Security News
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.

Security News
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.

Company News
Allow myself to introduce... myself.