🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

paper-search-cli

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

paper-search-cli

Agent-friendly CLI for searching and downloading academic papers from multiple sources.

latest
Source
npmnpm
Version
0.3.4
Version published
Weekly downloads
121
-64.2%
Maintainers
1
Weekly downloads
 
Created
Source

Paper Search CLI

简体中文 | English

Paper Search CLI is an agent-facing Skill + CLI package built on a standalone Node.js command line tool for academic literature work. It gives AI agents, terminal users, and scripts one reproducible command layer with agent-friendly JSON output for literature metadata search, citation expansion, journal metrics lookup, PDF discovery/download, and paper body snippet search.

Node.js TypeScript License Platforms Version LinuxDo

Quick Start | Architecture | Configuration | Agent Skill | Supported Platforms | Commands | Troubleshooting

Core Workflows

WorkflowPrimary commandsWhat it returns
Literature metadata searchpaper-search search, paper-search run search_*Paper title, authors, year, journal, DOI, PMID/PMCID, arXiv ID, URL, abstract, and source metadata
Citation expansionpaper-search run get_paper_citations, paper-search run get_paper_referencesCiting papers and cited references for a known Semantic Scholar paper ID, DOI, or arXiv ID
Journal metrics lookuppaper-search journal-metrics, paper-search run query_journal_metricsImpact factor, 5-year IF, JCR/SSCI quartile, CAS zone, JCI, ESI, warning flags, and rank fields
PDF discovery and downloadpaper-search download, paper-search run download_with_fallbackVerified PDF download paths through native sources, open access, configured entitlement, and Sci-Hub fallback when enabled
Body snippet searchpaper-search run search_semantic_snippetsSemantic Scholar Open Access body snippets for methods, parameters, and wording clues

Architecture

paper-search is not an MCP server. It is a normal CLI that AI agents can call through the bundled Skill, while terminal users and scripts can call the same paper-search command directly.

LayerResponsibility
CLI package bodyExecutes literature search, citation expansion, journal metrics lookup, PDF discovery/download, body snippet search, and stable JSON output
Bundled SkillShips skills/paper-search with agent routing rules and focused references; it does not store API keys, cookies, or account credentials
Friendly Management LayerProvides doctor, smoke, skills, config, and tools around the five main capabilities: metadata_search, citation_expansion, journal_metrics, pdf_discovery, and body_snippet_search. doctor health reports include masked configuration, Capability Profile, platform/source status, and missing or degraded items; smoke checks command wiring and live readiness; skills syncs the bundled Skill

The five main capabilities are executed by the CLI package body and reported by the management layer. The Capability Profile also reports entitled_access so users can see whether publisher API keys, database keys, TDM tokens, or institutional entitlements are configured. Missing or degraded configuration for one workflow does not make unrelated workflows unavailable.

Quick Start

Requires Node.js >= 18.0.0 and npm.

npm install -g paper-search-cli
paper-search setup
paper-search doctor --pretty

Try the five main workflows:

paper-search search "machine learning clinical prediction" --platform crossref --max-results 3 --pretty
paper-search run get_paper_citations --arg doi="10.1038/nature12373" --arg limit=5 --pretty
paper-search journal-metrics "Nature" "BMJ" --pretty
paper-search download 10.48550/arxiv.1201.0490 --platform arxiv --save-path ./downloads
paper-search run search_semantic_snippets --arg query="propensity score matching" --arg limit=3 --pretty

Useful checks:

paper-search tools --pretty
paper-search doctor --format text
paper-search smoke --mock --pretty
paper-search skills status --pretty

Supported Platforms

The quick group table helps choose a source family. The capability matrix below is the clearer source of truth for what each platform can actually do.

Platform Groups

FamilyPlatformsMain use
General scholarly metadataCrossref, OpenAlex, Semantic Scholar, Google ScholarBroad discovery, DOI metadata, citation clues, first-pass screening
Journal metricsEasyScholarImpact factor, JCR/SSCI quartile, CAS zone, JCI, ESI, warning flags
Biomedical and life sciencesPubMed, PubMed Central, Europe PMCBiomedical metadata, PMID/PMCID verification, open full text
Preprints and conference papersarXiv, bioRxiv, medRxiv, OpenReview, IACR ePrintPreprints, AI/ML submissions, cryptography ePrints
Computer science and engineeringDBLP, ACM metadata, IEEE Xplore, USENIXCS bibliography, engineering metadata, conference proceedings
Open access and repositoriesCORE, OpenAIRE, UnpaywallRepository discovery and open-access PDF fallback
Citation indexes and publishersWeb of Science, Scopus, ScienceDirect, Springer Nature/SpringerLink, WileyInstitution-backed metadata, publisher records, entitled access
DOI-targeted fallbackSci-HubDOI-based PDF fallback when enabled

Capability Matrix

General Scholarly Metadata

PlatformMetadata searchPDF pathBody/full textCitation signalConfigNotes
Crossref✅ Yes❌ No❌ No✅ Yes❌ NoneDefault broad metadata source
OpenAlex✅ Yes🟡 Conditional❌ No✅ Yes❌ NoneFree metadata; OA links can help PDF fallback
Semantic Scholar✅ Yes🟡 Conditional✅ Body snippets✅ Yes🟡 Optional; snippets require SEMANTIC_SCHOLAR_API_KEYGood for AI/CS, citation expansion, and body snippet clues
Google Scholar✅ Yes❌ No❌ No✅ Yes❌ NoneBroad discovery through page parsing

Journal Metrics

PlatformMetadata searchPDF pathBody/full textCitation signalConfigNotes
EasyScholar🟡 Journal metrics only❌ No❌ No❌ No✅ Required EASYSCHOLAR_KEYImpact factor, JCR/SSCI quartile, CAS zone, JCI, ESI, warnings, rank fields

Biomedical and Life Sciences

PlatformMetadata searchPDF pathBody/full textCitation signalConfigNotes
PubMed✅ Yes❌ No❌ No❌ No🟡 Optional PUBMED_API_KEY, NCBI_EMAIL, NCBI_TOOLNCBI E-utilities biomedical metadata
PubMed Central✅ Yes✅ Yes✅ Yes❌ No❌ NoneOpen biomedical full text and PMC PDFs
Europe PMC✅ Yes🟡 Conditional🟡 Conditional❌ No❌ NoneBiomedical metadata and open full-text links

Preprints and Conference Papers

PlatformMetadata searchPDF pathBody/full textCitation signalConfigNotes
arXiv✅ Yes✅ Yes✅ Yes❌ No❌ NonePhysics, CS, math, quantitative preprints
bioRxiv✅ Yes✅ Yes✅ Yes❌ No❌ NoneBiology preprints
medRxiv✅ Yes✅ Yes✅ Yes❌ No❌ NoneMedical preprints
OpenReview✅ Yes❌ No❌ No❌ No❌ NonePublic OpenReview notes, reviews, and submissions
IACR ePrint✅ Yes✅ Yes✅ Yes❌ No❌ NoneCryptography ePrint papers

Computer Science and Engineering

PlatformMetadata searchPDF pathBody/full textCitation signalConfigNotes
DBLP✅ Yes❌ No❌ No❌ No❌ NoneOfficial DBLP computer-science bibliography
ACM metadata✅ Yes❌ No❌ No✅ Yes❌ NoneUses Crossref ACM DOI-prefix metadata; does not scrape ACM pages
USENIX✅ Yes❌ No❌ No❌ No❌ NoneUses DBLP-backed USENIX metadata; does not scrape USENIX search pages
IEEE Xplore✅ Yes❌ No❌ No✅ Yes✅ Required IEEE_API_KEYOfficial IEEE Xplore Metadata API

Open Access and Repositories

PlatformMetadata searchPDF pathBody/full textCitation signalConfigNotes
CORE✅ Yes🟡 Conditional🟡 Conditional❌ No🟡 Optional CORE_API_KEYRepository records may expose PDF or full-text links
OpenAIRE✅ Yes🟡 Conditional❌ No❌ No🟡 Optional OPENAIRE_API_KEYPublic search usually works without a key
Unpaywall🟡 DOI lookup only🟡 Conditional❌ No❌ No✅ Required UNPAYWALL_EMAIL or PAPER_SEARCH_UNPAYWALL_EMAILFinds DOI-based open-access PDF locations; email, not API key

Citation Indexes and Publishers

PlatformMetadata searchPDF pathBody/full textCitation signalConfigNotes
Web of Science✅ Yes❌ No❌ No✅ Yes✅ Required WOS_API_KEYCitation database metadata, date sorting, year ranges
ScienceDirect✅ Yes🟡 Conditional❌ No✅ Yes✅ Required ELSEVIER_API_KEYElsevier metadata; product permission is separate from Scopus
Springer Nature / SpringerLink✅ Yes🟡 Conditional❌ No❌ No✅ Required SPRINGER_API_KEY; 🟡 Optional SPRINGER_OPENACCESS_API_KEYspringerlink is an alias for the Springer integration
Wiley❌ No keyword search✅ DOI download✅ Yes❌ No✅ Required WILEY_TDM_TOKENTDM API; use a DOI found from another metadata source
Scopus✅ Yes🟡 Conditional metadata❌ No✅ Yes✅ Required ELSEVIER_API_KEYAbstract and citation database; product permission is separate from ScienceDirect

DOI-Targeted Fallback

PlatformMetadata searchPDF pathBody/full textCitation signalConfigNotes
Sci-Hub❌ No✅ Yes❌ No❌ No❌ NoneDOI/URL-targeted lookup and final PDF fallback when enabled

Notes:

  • Metadata search means finding and screening papers; it is not the same as PDF download or body evidence.
  • pdf_discovery separates open-access sources, configured entitlement sources, and Sci-Hub as a separately identified final fallback.
  • EasyScholar is a journal metrics source, not a paper search source.
  • Sci-Hub is not part of metadata_search; it is DOI/URL-targeted PDF fallback.
  • 🟡 Conditional means the platform can help only when the record exposes a DOI, open-access link, PDF URL, or configured entitlement.
  • API keys are only required when you use the corresponding key-backed source or workflow.

Configuration

Most free metadata sources work without configuration. For stable agent workflows, run setup once and store credentials in the user config file:

paper-search setup
paper-search config list --pretty
paper-search doctor --pretty

Default config path:

~/.config/paper-search-cli/config.json

The config file is written with 0600 permissions. config list, doctor, and related commands mask secrets.

API Key Tiers

TierKeysUsed forWhen to configure
Recommended for most usersSEMANTIC_SCHOLAR_API_KEYBody snippet search and more stable Semantic Scholar requestsConfigure if you use methods/detail searches or high-frequency Semantic Scholar lookup
Recommended for most usersUNPAYWALL_EMAIL or PAPER_SEARCH_UNPAYWALL_EMAILDOI-based open-access PDF resolutionConfigure during setup; an email is required, not an API key
Recommended for most usersCROSSREF_MAILTOCrossref polite poolConfigure for long-running or frequent metadata search
Recommended for most usersCORE_API_KEYCORE repository searchConfigure if you rely on CORE or hit anonymous rate limits
Journal metricsEASYSCHOLAR_KEYEasyScholar impact factor, JCR/SSCI, CAS, JCI, ESI, warning flagsConfigure if you need journal metrics; use paper-search setup EASYSCHOLAR_KEY for hidden input
Biomedical-heavy usePUBMED_API_KEY, NCBI_EMAIL, NCBI_TOOLNCBI E-utilities stability and higher limitsConfigure if PubMed is a frequent source
Institutional or publisher accessWOS_API_KEY, IEEE_API_KEY, ELSEVIER_API_KEY, SPRINGER_API_KEY, SPRINGER_OPENACCESS_API_KEY, WILEY_TDM_TOKENWeb of Science, IEEE, Scopus, ScienceDirect, Springer, Wiley metadata or entitled accessConfigure only when you have the relevant API or institutional permission
Usually optionalOPENAIRE_API_KEYOpenAIRE account/quota useUsually unnecessary for public search

Useful key dashboards:

ServiceLink
EasyScholarEasyScholar Open API
Semantic ScholarSemantic Scholar API
UnpaywallUnpaywall API
CORECORE API
PubMedNCBI API Keys
Web of ScienceClarivate Developer Portal
IEEE XploreIEEE Xplore Metadata API
ElsevierElsevier Developer Portal
Springer NatureSpringer Nature Developers
Wiley TDMWiley Text and Data Mining
OpenAIREOpenAIRE APIs

Agent Skill

The npm package ships a bundled agent Skill at skills/paper-search/SKILL.md. Terminal users can use the CLI directly; AI agent workflows should install or sync the Skill so the agent can route the five main workflows correctly.

paper-search setup --install-skills agents
paper-search skills status --pretty
paper-search skills diff --targets agents --format text
paper-search skills update --targets agents --pretty

Supported targets include agents, codex, claude, cursor, gemini, antigravity, and all. Skill updates overwrite package-managed Skill files while preserving extra files in the installed Skill directory.

The Skill only teaches agents how to call the paper-search CLI. API keys still belong in paper-search setup, paper-search config, .env, or shell environment variables.

Commands

CommandPurpose
paper-search searchIntegrated metadata search
paper-search journal-metricsEasyScholar journal metrics lookup
paper-search downloadDirect PDF download for a verified paper ID or DOI
paper-search runPrecise tool invocation with --arg or --json-args
paper-search toolsRuntime tool names and schemas
paper-search doctorMasked config, Capability Profile, and platform status
paper-search smokeMock or live self-checks
paper-search skillsBundled Skill status, diff, and update
paper-search configUser-level configuration management

Full command and tool schema: run paper-search tools --pretty or see skills/paper-search/references/cli-contract.md.

Output

Commands return JSON by default. Use --pretty for formatted JSON and --format text only when you need a human-readable report.

paper-search search "machine learning" --platform crossref --max-results 1 --pretty
paper-search doctor --format text

Troubleshooting

ProblemFirst check
Command not foundReinstall globally with npm install -g paper-search-cli
Missing capabilityRun paper-search doctor --pretty and configure the missing key with paper-search setup
Provider rate limitsLower --max-results, configure the relevant key, or switch sources
Skill looks staleRun paper-search skills status --pretty, then paper-search skills update --targets agents --pretty
Need complete CLI detailsRun paper-search tools --pretty

Usage Boundaries

Some sources may be subject to platform terms, institutional subscriptions, or local law. Use restricted integrations only when you have the appropriate access rights and permission.

Project Origin

This project acknowledges and thanks the LinuxDo community. The CLI + Skill direction and paper-search workflow refinements were shaped by community discussions and open-source sharing.

It also references ideas from openags/paper-search-mcp while adapting the workflow to a standalone CLI.

License

MIT

Keywords

cli

FAQs

Package last updated on 22 Jun 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts