终端原生Web搜索CLI

qry是一个终端原生的Web搜索命令行工具,通过可交换的内置适配器路由查询并始终输出JSON格式结果。

  • by justEstif
  • Go
  • 本地部署
  • 11 星标
  • 更新于
在 GitHub 查看 justEstif/qry

使用说明

查询

justestif.github.io/zh

终端原生、代理优先的web搜索CLI。通过可交换的内置适配器路由查询,并始终输出JSON。

qry "what is the latest version of numpy"
[
  {
    "title": "NumPy 2.0 Release Notes",
    "url": "https://numpy.org/doc/stable/release/2.0.0-notes.html",
    "snippet": "NumPy 2.0.0 is the first major release since 2006..."
  }
]

安装

自制:

brew install justEstif/tap/qry

npm(可选):

npm install -g @justestif/qry

米斯:

mise cache clear
mise use -g go:github.com/justestif/qry@latest
mise reshim

适配器

适配器是执行实际搜索的内置包。它们实现了一个通用接口。

适配器 源 需要密钥
brave-api 勇敢搜索API ✓
brave-scrape 勇敢搜索(抓取) ✗
ddg-scrape DuckDuckGo精简版(刮擦) ✗
exa Exa AI(通过MCP) ✗
github GitHub搜索API ✗ (可选)
searx SearXNG(自助式) ✗
stackoverflow 堆栈交换API ✗ (可选)
wikipedia 维基百科/媒体维基API ✗

配置

创建 ~/.config/qry/config.toml:

使用 ${VAR} 适配器配置值中的语法--qry从环境中扩展它们 在运行时,机密永远不会存在于文件中:

[adapters.brave-api.config]
  api_key = "${BRAVE_API_KEY}"
[defaults]
  num     = 10
  timeout = "5s"

[routing]
  mode = "first"
  pool = ["ddg-scrape", "brave-scrape"]

代理使用

一 代理技能 可用于在任何受支持的代理中进行一行安装:

npx skills add justestif/qry -g -y

浏览技能 技能s.sh.


跑 qry --agent-info (或 -A)获取该工具的JSON描述和您当前的 配置——对于代理在进行搜索调用之前进行自我定位非常有用:

qry --agent-info

输出包括工具描述、可用标志、路由模式解释、, 以及每个配置的适配器及其可用性状态。适配器配置 地图显示 ${VAR} 模板字符串而不是解析值,因此机密永远不会暴露。

路由模式

  • first --按顺序尝试适配器,第一次成功后返回。快速,适用于大多数用例。
  • merge --同时查询所有适配器,按URL进行重复数据消除,返回组合结果。

更多

看 docs/ 有关完整文档: