@fbraza/pi-cite

Pi extension with PubMed, Zotero, and literature search tools.

Packages

Package details

extensionskill

Install @fbraza/pi-cite from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@fbraza/pi-cite
Package
@fbraza/pi-cite
Version
2.0.0
Published
Oct 4, 2026
Downloads
432/mo · 23/wk
Author
fbraza
License
MIT
Types
extension, skill
Size
214.3 KB
Dependencies
0 dependencies · 3 peers
Pi manifest JSON
{
  "skills": [
    "./skills"
  ],
  "extensions": [
    "./src/index.ts"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

@fbraza/pi-cite

A Pi extension and bundled skill for literature research. It searches PubMed and Zotero, retrieves open-access article sections from Europe PMC, and helps turn evidence into structured reviews.

Install

Requires Pi 1.0.1 or later within v1 and Node.js 22.19.0 or later.

Install for Pi with:

pi install npm:@fbraza/pi-cite

Or load it for one session without changing your settings:

pi -e npm:@fbraza/pi-cite

Set NCBI_API_KEY for PubMed rate limits. Set ZOTERO_API_KEY to search your Zotero library and flag PubMed results you already own; Zotero access is read-only.

Features

  • PubMed search with MeSH, title/abstract, publication-type, and Boolean queries.
  • Zotero search by title, creator, year, or indexed full text.
  • Europe PMC full text for open-access articles, addressed by DOI, PMID, or PMCID. Returns structured section excerpts with licensing, source, and truncation details.
  • Literature skill for focused searches, citation verification, experiment extraction, and evidence-based synthesis. Full-text use is opt-in.

Example

After installing, ask Pi:

Find recent preclinical studies of NLRP3 inhibition in Alzheimer’s disease. Search PubMed, check which papers are in my Zotero library, and retrieve Europe PMC sections for the most relevant open-access papers.

The extension provides literature_search, pubmed_search, zotero_search, and europe_pmc_fulltext tools for this workflow.

Codemode (optional)

Tools work directly by default. When Pi's codemode is active, default literature tools are available to scripts under the literature namespace. Registered-but-inactive codemode does not change this behavior. Explicit tool selections are preserved; the extension never enables codemode for you.

To enable codemode without restricting the tool registry, use Pi settings:

{
  "defaultTools": ["+codemode"]
}

Codemode search calls return structured objects; access result.papers directly. Full-text calls return status: "full_text" with sections or status: "unavailable" with a fallback recommendation (not an automatically fetched abstract).

const result = await tools.literature_search({
  pubmed_query: 'NLRP3[tiab] AND "Alzheimer Disease"[mh]',
  max_results: 10,
});
text(result.papers.map(paper => ({ title: paper.title, pmid: paper.pmid })));

Large direct results provide evidence previews and a path to complete JSON. Follow that path with read or bash before relying on omitted evidence; copy the file into your review folder if you need to keep it.

Development

npm ci
npm test
npm run typecheck
npm run pack:check

The test suite also requires python3 for the bundled literature scripts.

See CHANGELOG.md for changes and migration notes.