liustack/modsearch

The web search plugin for DeepSeek Harness, and the search bridge for every model without native web access. Ask the web or X, get structured JSON evidence. | 🥇 全网最强的 DeepSeek Harness 联网搜索插件🥇。为不能联网的模型补上搜索。问网页或 X,拿回结构化 JSON 证据(搜索、抓取、引用)。

Bundle 已验证 MIT TypeScript v5.4.3
Bundle 已验证

已收录

138

Browser

Bundle 已验证

版本v5.4.3
语言TypeScript
许可证MIT
在 GitHub 查看

预览

第 1 个预览,共 2 个:liustack/modsearch
第 2 个预览,共 2 个:liustack/modsearch

功能介绍

纯文本 agent 的联网搜索桥:搜索网页与 X,返回结构化 JSON 证据(search/fetch/引用)。

适合

  • 缺少原生联网能力、需要网页搜索和定向页面抓取的 Agent。
  • 需要结构化搜索结果、抓取内容和引用的研究工作流。
  • 需要搜索 X 且已具备 Grok Build 的用户。
  • 希望在已配置搜索引擎之间自动故障转移的团队。

不适合

  • 模型原生联网工具已经满足需求的工作流。
  • 离线任务或完全基于稳定本地文档的工作。
  • 没有 Grok Build 却需要搜索 X 的工作流。
  • 无法接受上游搜索引擎条款或配额的工作负载。

README

ModSearch

ModSearch

🥇 🥇

Engines: (keyless, default) · · · · · , with automatic failover

简体中文 · Troubleshooting · Configuration · Output contract · Security · ModLens (vision)

Follow @liustack on X npm Node.js License Not backed by Y Combinator Users unknown

Models like DeepSeek-V4-Flash have no web access, or a weak one. ModSearch is a plug-in that greatly strengthens the model’s web search, X search, and single-page fetch. It works the moment it lands: the default engine is Firecrawl’s keyless tier, 1,000 free credits every month with no account, no API key, and no card.

Talk to us

Something broken, or something missing? Open an issue. For everything else, come find me on X: @liustack. What you built with it, which harness you are on, what should come next. New releases land there first, and a proper community space is on the way.

Features

  • 🥇 The most powerful web search plugin for DeepSeek Harness (dsh): one command, npx -y @deepseek-ai/dsh plugin --profile web add @liustack/modsearch@5.6.0, and dsh’s built-in web_search runs on the modsearch engine chain with no API key, keeping its native citation cards. Two tools dsh does not have land beside it: x_search for X (Twitter) and read_page for focused single-page reading. Updating is the same command again. The version is named rather than @latest because pnpm 11 holds back releases published in the last 24 hours and resolves the tag against the older versions that remain. Details in harness setup.
  • Free out of the box, no signup. Search and page fetch run on Firecrawl Keyless by default: 1,000 free credits/month, no account, no API key, no card. Every fallback channel is free too: Antigravity CLI needs only a browser sign-in, and Tavily, Exa, and a free Firecrawl key each add their own monthly quota with no card required.
  • Automatic failover. When a channel fails or exhausts its quota, the next one takes over.
  • Searches X (Twitter). With Grok Build installed, ModSearch queries the corpus that web indexes cannot reach.
  • Install once, use everywhere. Works in Claude Code, Codex, Pi, and OpenCode.

Supported engines

Firecrawl works with zero setup; every other engine is one command away. Keys are stored in ~/.modsearch/config.json (0600, masked when shown):

Engine Does Free tier Turn it on
Firecrawl (default) web search + page fetch keyless: 1,000 free credits/month, no signup. A free key adds your own 1,000/month nothing, it works as installed
Antigravity CLI web search + page fetch free, browser sign-in install agy and sign in
Tavily web search 1,000 credits/month, no card modsearch config set tavily.apiKey <key>
Exa web search $10/month recurring credit (~1,400 searches), no card modsearch config set exa.apiKey <key>
Grok Build X (Twitter) search rides SuperGrok or X Premium install grok and sign in
local page fetch built in, nothing to install nothing

Keys can also come from the environment (TAVILY_API_KEY, EXA_API_KEY, FIRECRAWL_API_KEY). Multiple engines configured means automatic failover, best first. Using a Tavily-, Exa-, or Firecrawl-compatible third-party or self-hosted endpoint? Point the engine at it: modsearch config set tavily.baseURL <url>. Every knob, engine by engine, is in the configuration guide.

Installation

Step 1, hand it to your AI. Search and page fetch work as soon as the skill lands, on Firecrawl’s free keyless quota, so installation is one message:

Install and configure the modsearch skill following https://github.com/liustack/modsearch/blob/main/INSTALL.md, then run the health check and tell me the result.

Step 2 (optional), add more free engines. Antigravity CLI writes better synthesized answers, and a free Tavily, Exa, or Firecrawl key adds a personal quota on top of the keyless one. None requires a card. agy’s browser sign-in is the only step that needs your hands:

curl -fsSL https://antigravity.google/cli/install.sh | bash
agy                                                           # sign in, then exit

Chose a key instead? Send it to your AI with one line: “set my tavily key to tvly-…”.

Usage

Once installed, just chat. Ask anything that needs checking, or paste a URL, and the skill triggers on its own: it picks an engine, runs the search or fetch, and the answer comes back with sources.

See it work

Both screenshots are unedited runs from the Codex desktop app, driving a DeepSeek-V4-Flash that has no web access of its own.

Give it a blog link and ask what the post says. Twenty-five seconds later: a structured summary of the whole post, with no browser involved.

Text-only DeepSeek summarising a blog link through ModSearch

Give it no target at all, just “anything interesting in AI today?”. Thirty-six seconds later: six sourced stories, with a closing note on which details came from aggregation and deserve a second look. The note comes from the uncertainty field.

An open-ended question comes back as six sourced stories with a stated confidence caveat

Documentation

Doc Read it when
INSTALL.md Installing the skill step by step (written for an agent)
CLI manual The CLI the skill drives: flags, config, doctor
Troubleshooting A command failed and the message needs decoding
Configuration Setting a key, switching engines, fixing config
Output contract Parsing the JSON or building on it
dsh plugin Installing, configuring, verifying, and updating the native dsh bundle
Harness setup Wiring it into Codex, Claude Code, OpenCode, or Pi
Security SSRF guards, DNS-rebinding protection, untrusted input
CHANGELOG Finding what changed in a version

Contributing

ModSearch does not accept pull requests. The project is maintained by a single author who reviews every line, which is a deliberate choice for reliability. Two effective ways to contribute:

  • Open an issue. Bugs, suggestions, confusing errors, unclear docs. Issues are read and shape what gets built next.
  • Fork it. Under MIT your copy is fully yours to modify and publish.

Shameless plug

This project runs on LIUSTACK Skills: shaping before you build, coding while you build, dig when it breaks, snapshot when you hand off. Lighter than Superpowers, and stronger.

npx -y skills add liustack/liustack -g

⭐ If it helps, star ModSearch and liustack. Stars are how the next developer finds them.

Star History

Star History Chart

Disclaimer

ModSearch is MIT-licensed, so use is not restricted. The author gives no warranty and no endorsement for any particular use, commercial or otherwise. The upstream engines it drives (Antigravity CLI, Tavily, Exa, Firecrawl, Grok Build) each carry their own terms and quotas, and complying with them is the user’s responsibility.

License

MIT

常见问题常见问题

在启用了 DSH 的终端中执行已验证命令 dsh plugin --profile default add github:liustack/modsearch。命令会解析公开 package 元数据,并保持插件与本页展示的目录身份一致。