内容
# 学术搜索工具
**用于学术论文的终端原生CLI工具**。在终端中搜索arXiv、阅读摘要和追踪引用 - 采用本地SQLite镜像,实现即时、离线重复查找。
以 [Printing Press](https://printingpress.dev/) 风格构建:高效的输出、本地数据镜像、配套的 Claude Code 技能和 MCP 服务器。不需要 API 密钥;不需要第三方 Python 依赖。
## 安装
```bash
# 独立安装(推荐)- 提供 `scholar` 和 `scholar-mcp`
pipx install "git+https://github.com/saakshigupta2002/scholar-cli"
# 或者,从克隆仓库:
pip install -e .
# 或者,直接从源代码运行,无需安装:
python3 -m scholar search "图神经网络"
```
## 用法
```bash
scholar search "扩散模型 蛋白质设计" # 搜索 arXiv
scholar get 1706.03762 # 获取一篇论文和摘要
scholar cites 1706.03762 # 查看谁引用了它
scholar cites 1706.03762 --references # 查看它引用了什么
scholar list # 查看缓存的论文(离线)
```
### 适合代理的标志
```bash
scholar --json search "专家混合" --max 5 # 结构化输出
scholar --json --select id,title search "rag" --max 10 # 只需要需要的字段
```
| 标志 | 目的 |
|------|---------|
| `--json` | 为代理/脚本提供结构化 JSON |
| `--select a,b,c` | 只保留这些字段(节省令牌) |
| `--max N` | 结果数量 |
| `--cat cs.LG` | 将搜索限制在某个类别 |
| `--sort relevance\|submitted\|updated` | 结果排序 |
退出代码:`0` ok · `2` 用法 · `3` 未找到 · `4` 上游/网络错误。
## 构建方式
| 组件 | 任务 |
|-------|-----|
| `scholar/arxiv.py` | arXiv 客户端(搜索 + 按 ID 获取) |
| `scholar/semscholar.py` | Semantic Scholar 客户端(引用) |
| `scholar/db.py` | 本地 SQLite 镜像(`~/.scholar/scholar.db`) |
| `scholar/output.py` | 人类表格 vs `--json` / `--select` |
| `scholar/cli.py` | 命令解析和调度 |
| `scholar/mcp_server.py` | MCP 服务器(stdio)暴露相同的工具 |
| `cli-skills/pp-scholar/SKILL.md` | 驱动 CLI 的 Claude Code 技能 |
## MCP
相同的操作可通过 MCP 为偏好它的代理提供:
```json
{ "mcpServers": { "scholar": { "command": "scholar-mcp" } } }
```
## 数据源
- [arXiv API](https://info.arxiv.org/help/api/) — 搜索和元数据(免费、开放)。
- [Semantic Scholar Graph API](https://api.semanticscholar.org/api-docs/graph) — 引用(免费)。
请对这两个 API 保持礼貌(它们是免费的,并且有速率限制)。
## 许可证
Apache-2.0。