Introduction¶
DeepSeek Harness (DSH) uses a plugin-based architecture, allowing developers to extend functionality through Cordis plugins. Academic literature search often involves multiple databases, and full-text access channels vary. dsh-plugin-scihub is a native plugin maintained by sevastopol36, designed to address the pain points of cross-source search and full-text retrieval, providing DSH with unified academic literature processing capabilities.
Core Capabilities¶
The plugin primarily provides the following capabilities:
- Cross-source metadata search: Supports parallel search and merge/deduplication across multiple sources such as Crossref, OpenAlex, Europe PMC, PubMed, and Semantic Scholar.
- Arbitrary identifier conversion: Supports mutual conversion and resolution among DOI ⇄ PMID ⇄ PMCID ⇄ arXiv id.
- Full-text retrieval strategy: By default, preferentially attempts to retrieve full text from Sci-Hub mirrors; if unreachable, automatically falls back to open access channels such as Unpaywall and OpenAlex.
- Mirror availability diagnostics: Provides tools to test the connectivity of Sci-Hub mirrors and channels, and generate directly usable configurations.
- Zero runtime dependencies: Uses only the built-in
fetchandnode:fsin Node.js, with no additional dependencies to install. - PDF content validation: Performs magic number and content validation before downloading a PDF, preventing the saving of incorrect papers or empty files.
Installation and Activation¶
The plugin is a standard dsh bundle and can be installed with the official command.
dsh plugin --profile web add dsh-plugin-scihub
After installation, restart the current profile (for example, dsh web) to load the plugin.
Usage and Configuration¶
Available Tools¶
The plugin provides the following tool commands:
sevastopol36_scihub_search: Search paper metadata across sources.sevastopol36_scihub_resolve: Resolve an arbitrary identifier and complete the full set of IDs.sevastopol36_scihub_fetch: Download and save the full text.sevastopol36_scihub_probe: Diagnose mirror and channel availability.sevastopol36_scihub_sources: List the currently configured data sources and routes.
Configuration Example¶
Override the configuration by id in %USERPROFILE%\.dsh\profiles\web\cordis.patch.yml. The main parameters are as follows:
- id: sevastopol36-scihub
config:
# 优先开放获取渠道,避免使用 Sci-Hub
preferSciHub: false
# 开启 PDF 校验,防止保存错误文件
verifyPdf: true
# 设置 Unpaywall 邮箱(需填写真实邮箱)
email: 'you@example.com'
# 单次请求超时时间(毫秒)
timeoutMs: 30000
Notes¶
- Copyright and Use: Sci-Hub is intended only for academic and educational purposes. Comply with copyright laws and institutional policies.
- PDF Validation: PDF content validation is enabled by default (
verifyPdf: true). It extracts the DOI or title from PDF metadata for comparison to avoid saving the wrong paper. - Unpaywall Restriction: The Unpaywall feature requires a real email address; otherwise, requests may be rejected with an HTTP 422 error.
- Runtime Environment: It depends on Node.js built-in modules; ensure the runtime environment meets the requirements.