Copy Research
VKirill/claude-lane-stack
Dispatch copy-lead helpers: Tavily, Codex luna/terra, grok/X, OpenCode DeepSeek, Cursor Grok 4.6 medium-fast.
Plug-in web search, X (Twitter) search, and page fetch for models without native web access.
$ npx skills add liustack/modsearch --skill modsearch -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install liustack/modsearch modsearch --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/liustack/modsearch.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/modsearch .claude/skills/modsearch && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "modsearch" agent skill from https://github.com/liustack/modsearch/tree/main/skills/modsearch into .claude/skills/modsearch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "modsearch", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/liustack/modsearch/tree/main/skills/modsearchType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add liustack/modsearch --skill modsearch -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install liustack/modsearch modsearch --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/liustack/modsearch.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/modsearch .agents/skills/modsearch && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "modsearch" agent skill from https://github.com/liustack/modsearch/tree/main/skills/modsearch into .agents/skills/modsearch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "modsearch", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add liustack/modsearch --skill modsearch -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install liustack/modsearch modsearch --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/liustack/modsearch.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/modsearch .cursor/skills/modsearch && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "modsearch" agent skill from https://github.com/liustack/modsearch/tree/main/skills/modsearch into .cursor/skills/modsearch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "modsearch", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/liustack/modsearch.git --path skills/modsearch--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add liustack/modsearch --skill modsearch -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install liustack/modsearch modsearch --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/liustack/modsearch.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/modsearch .gemini/skills/modsearch && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "modsearch" agent skill from https://github.com/liustack/modsearch/tree/main/skills/modsearch into .gemini/skills/modsearch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "modsearch", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install liustack/modsearch modsearchInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add liustack/modsearch --skill modsearch -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/liustack/modsearch.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/modsearch .github/skills/modsearch && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "modsearch" agent skill from https://github.com/liustack/modsearch/tree/main/skills/modsearch into .github/skills/modsearch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "modsearch", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add liustack/modsearch --skill modsearch -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install liustack/modsearch modsearch --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/liustack/modsearch.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/modsearch .opencode/skills/modsearch && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "modsearch" agent skill from https://github.com/liustack/modsearch/tree/main/skills/modsearch into .opencode/skills/modsearch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "modsearch", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
modsearchPlug-in web search, X (Twitter) search, and page fetch for models without native web access.
Modsearch is an agent skill from liustack/modsearch. Plug-in web search, X (Twitter) search, and page fetch for models without native web access. Use whenever the task needs current information, external facts, source links, posts from X, or the content of a specific URL, and the active model/harness has no native search or fetch tool. Runs the modsearch CLI to return structured JSON evidence. Also use when the user asks how to install or configure modsearch, or wants to switch engines or add a key.
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 12 other files, including scripts and reference files (for example `references/cli.md`, `references/cli.zh-CN.md` and `references/configure.md`). Compatibility notes: Requires network access and one of node 22+/npx, bun/bunx, or a preinstalled modsearch binary on PATH.
It sits in Productivity & Automation, covering Web search. It works with X (Twitter), DeepSeek and Bun. The repository describes itself as: 🥇 The strongest free web search plugin for DeepSeek Harness, and the search bridge for every model without native web access. Free, no signup, no API key. Ask the web or X, get… The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit beb3498. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BashFrom allowed-tools in the SKILL.md frontmatter.
Ships 2 files in scripts/ (PowerShell and Shell), which the agent can run.
Shell commands in SKILL.md call:
bashnpxbunxFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
nodejs.orgbun.shFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Requires network access and one of node 22+/npx, bun/bunx, or a preinstalled modsearch binary on PATH.
From compatibility in the SKILL.md frontmatter.
Modsearch loads about 2.6k tokens when it runs, and up to ~20k if it reads all its reference files. Until then it costs about 115 tokens; SKILL.md has 1,332 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: BashAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from liustack/modsearch at commit beb3498, republished under its MIT licence (© liustack). 1,332 words, ~2,587 tokens.
.claude/skills/modsearch/SKILL.md (or your agent's skills folder). This skill also uses 10 other files; get the full folder from GitHub.Use this skill when:
Do not use this skill for:
modlens)Run every modsearch command through the launcher bundled with this skill.
Replace <skill-dir> with the directory this SKILL.md lives in:
bash <skill-dir>/scripts/run.sh -q "test" # macOS / Linux
powershell -ExecutionPolicy Bypass -File <skill-dir>\scripts\run.ps1 -q "test" # WindowsThe launcher finds a working way to run modsearch and forwards your arguments to it unchanged. It tries, in order: a compatible modsearch already on PATH, then npx, then bunx. If none of those exists it prints a JSON diagnosis to stderr and exits 78, with a nextSteps list for the user. Relay those steps instead of retrying. To see the full diagnosis, run bash <skill-dir>/scripts/run.sh doctor --json (on a machine that can launch the CLI it also chains modsearch's own engine/config doctor).
Nothing else needs setting up first: modsearch works with no config file. Web search and page fetch run out of the box on Firecrawl's keyless free quota (no signup, no key), and a configured engine or API key takes precedence when present.
Some harnesses forbid running scripts. Reason through the same order by hand and run the first line that works (the pinned version is 5.10.6):
modsearch on PATH whose major version is 5 and is at least 5.10.6: modsearch <args>.npx exists: npx --yes --package @liustack/modsearch@5.10.6 modsearch <args>.bunx exists: bunx --bun @liustack/modsearch@5.10.6 <args>.references/runtime.md documents the version pin, the compatibility rule, and the diagnostic fields.
In the examples below, modsearch means the command run through the launcher above (bash <skill-dir>/scripts/run.sh ..., or the PowerShell form on Windows).
modsearch -q "<query>" # search the web
modsearch -q "<query>" --source x # search X instead
modsearch -q "<query>" --source web,x # both, kept separate in the output
modsearch -u "<url>" # fetch one page
modsearch -u "<url>" -q "<focus>" # fetch with an extraction focusOptional flags: -o <file> also writes the JSON, --timeout <ms> raises the time budget, and -e <engine> forces exactly one engine with no fallback, so leave it off unless the user wants one specific engine. The full flag table, with defaults and the config commands, is in references/cli.md.
An X-flavored query (twitter, tweet, 推特, 推文, x.com, "on X") goes to X on its own, and only to X, because a web index cannot see inside X. Pass --source web,x when the user wants both.
A run takes 10-30 seconds on the agent-loop engines and 2-3 seconds on the direct API ones. Do not treat silence as a hang before the timeout.
Three jobs, each with its own engines:
| Role | Engines (best first) | Notes |
|---|---|---|
| search the web | firecrawl, antigravity-cli, tavily, exa | Firecrawl works keyless with no signup (1,000 free credits/month). agy is free with a browser sign-in. Tavily, Exa, and a free Firecrawl key add personal quotas. |
| fetch a page | firecrawl, antigravity-cli, local | Firecrawl runs a cloud browser, keyless by default (firecrawl.keylessFetch false opts out). local needs nothing and is the default floor. |
| search X | grok-cli | Needs Grok Build with SuperGrok or X Premium. |
modsearch picks per role from what is installed and falls through on failure, so do not probe first: run the command and read results[].engine to see who answered.
local engine as its zero-setup floor unless the user explicitly disabled it with local.enabled false, or forced a different engine with -e. It returns the page as served, with no summary and no focus narrowing, so pick out the relevant parts yourself. Very little text back means the page is JavaScript-rendered, which that engine does not run: it says so in uncertainty, so say the same rather than claiming the page is empty.status: "degraded", requestedSource: "x", source: "web", with the reason in warnings. Relay that caveat instead of presenting it as X coverage. On a --source web,x run where X is unreachable, the X slot comes back as a separate entry with status: "unavailable" and empty items, so the gap is explicit: report that X could not be reached rather than treating the web entry as if it covered X.warnings. A cooling engine is never dropped, only tried last, so it still answers when everything else fails. modsearch state clear forgets the cooldowns, modsearch config set cooldown off disables the behavior, and modsearch doctor shows what is cooling.references/configure.md and run the commands for the user.-q to get candidate sources.results is always an array, one entry per source.-u <url>.items[].url in your answer. Surface the two caveat lists separately: uncertainty is the engine's doubt about the facts (gaps, conflicts, staleness, a thin page), so it qualifies the answer. warnings is about how the answer was routed (a fallback, a degrade to the web for an X question, a config typo, redirects), so it qualifies how far to trust the source. A degraded or unavailable status always comes with a warnings line worth relaying.{
"mode": "search",
"query": "...",
"url": null,
"results": [
{
"source": "web",
"requestedSource": "web",
"engine": "antigravity-cli",
"status": "ok",
"summary": "synthesis of the findings",
"items": [{ "title": "...", "url": "...", "snippet": "...", "source": "example.com" }],
"uncertainty": ["gaps, conflicts, staleness"],
"warnings": ["how the answer was routed: fallbacks, degrades, config typos"],
"attempts": [{ "engine": "antigravity-cli", "ok": true, "durationSeconds": 5.5 }],
"durationSeconds": 5.5
}
],
"meta": { "generatedAt": "...", "durationSeconds": 5.6 }
}results is always an array, even for a single source, so the shape never changes. source is the corpus the evidence actually came from, requestedSource is what was asked for, engine names who answered, and status is ok, degraded, or unavailable. Read status before trusting a source: a degraded entry means a web engine stood in for X, so its source is web even though requestedSource is x. uncertainty is the engine's doubt about the facts, warnings is routing and runtime notices (see step 4), and attempts records each engine tried and whether it worked.
Fetch mode replaces items with content (the page as text or markdown) and links (useful outbound links). Full schema: references/output-schema.md.
Every error this CLI prints names its cause, and most already name the fix, so read the message first. When setup is the suspect, run modsearch doctor (spends no quota): it reports each engine's readiness per role and the config in effect, with a fix command for anything missing. --json gives a machine-readable report.
Every engine for the web source failed: read the attempt list. A bare install includes keyless Firecrawl, so this means runtime failures such as no network, timeout, or exhausted limits rather than missing setup.Every engine for the <source> source failed: each engine's failure is listed, and attempts in a returned entry carries the same per-engine errors. Act on the first fixable one.exa/firecrawl out of credits): not fatal when another search engine is set up, since search falls through on its own and cooldown moves the spent engine to the back. Otherwise relay the reset time from the message.--timeout 300000. If it still fails, report the exact error instead of answering from stale memory.references/cli.md: the full CLI manual, every flag with its default, config commands, doctor, state.references/configure.md: adding keys, switching engines, config troubleshooting.references/output-schema.md: the complete JSON schema for search and fetch.references/runtime.md: the launcher's version pin, compatibility rule, and diagnostic fields.© liustack, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 10 other files (scripts, references) in skills/modsearch of liustack/modsearch.
Open the folder on GitHubat commit beb3498
Modsearch next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Modsearch this skillliustack/modsearch | 601 | — | ~2.6k | Automated safety check: Notes | MIT | |
| Copy ResearchVKirill/claude-lane-stack | 122 | — | ~827 | Automated safety check: Pass | MIT | |
| Agent ReachEdisonChenAI/agent-reach | 104 | 1 repos | ~1.3k | Automated safety check: Pass | MIT | |
| Web Accessitwanger/PaiCLI-Python | 102 | — | ~183 | Automated safety check: Pass | MIT | |
| Yichen Grok Consultmcncarl/yichen-skills | 4.3k | — | ~2.1k | Automated safety check: Pass | Custom licence | |
| Grok Searchsundial-org/awesome-openclaw-skills | 663 | — | ~620 | Automated safety check: Pass | None |
VKirill/claude-lane-stack
Dispatch copy-lead helpers: Tavily, Codex luna/terra, grok/X, OpenCode DeepSeek, Cursor Grok 4.6 medium-fast.
EdisonChenAI/agent-reach
Use the internet: search, read, and interact with 13+ platforms including Twitter/X, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu (小红书), Douyin (抖音), WeChat Articles (微信公众号), LinkedIn, Boss直聘…
itwanger/PaiCLI-Python
A skill your agent uses for live web research, webpage fetching, login-state browsing, dynamic pages, social sites, and tasks that need current internet evidence.
mcncarl/yichen-skills
Consult or search with xAI Grok from a GPT-led Codex conversation without switching the main model.
sundial-org/awesome-openclaw-skills
Search the web or X/Twitter using xAI Grok server-side tools (websearch, xsearch) via the xAI Responses API.
davepoon/buildwithclaude
Search and inspect current public X posts, trends, profiles, profile posts, media, and replies through AgentBody.
Works with
Categories
Plug-in web search, X (Twitter) search, and page fetch for models without native web access. Modsearch is an agent skill from liustack/modsearch. Plug-in web search, X (Twitter) search, and page fetch for models without native web access.
Modsearch fits situations like: the task needs current information; the content of a specific URL; the active model/harness has no native search; the user asks how to install.
Run `npx skills add liustack/modsearch --skill modsearch -a claude-code`. Or copy the skill folder (skills/modsearch in liustack/modsearch) into .claude/skills/modsearch in your project. Claude Code loads it when a task matches its description.
Run `npx skills add liustack/modsearch --skill modsearch -a codex`. Or copy the skill folder (skills/modsearch in liustack/modsearch) into .agents/skills/modsearch in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add liustack/modsearch --skill modsearch -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/modsearch, .gemini/skills/modsearch, .github/skills/modsearch and .opencode/skills/modsearch in your project.
Going by SKILL.md and its folder, Modsearch needs PowerShell and a shell for the scripts in its folder and the command-line tools its instructions call (bash, npx and bunx). Our summary lists: Node.js; A Bash shell; PowerShell. Its frontmatter pre-approves these tools: Bash. Compatibility (from SKILL.md): Requires network access and one of node 22+/npx, bun/bunx, or a preinstalled modsearch binary on PATH..
SKILL.md names 2 domains. As links in the text: nodejs.org and bun.sh. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Modsearch is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 17k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Modsearch: Copy Research (VKirill/claude-lane-stack, 122 stars), Agent Reach (EdisonChenAI/agent-reach, 104 stars), Web Access (itwanger/PaiCLI-Python, 102 stars) and Yichen Grok Consult (mcncarl/yichen-skills, 4.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
liustack (a GitHub user) maintains it in liustack/modsearch, which has 601 GitHub stars. The repository was last updated on October 4, 2026.
Source: liustack/modsearch on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.