Obscure Tool / Agent Install Lookup
Overview
Users often ask "how do I install X?" for tools that are too new, too niche, or
too vaguely named for a normal web search to surface authoritative
instructions. This is especially common for AI "agent" projects that have a
fan-facing name (e.g. "picoding agent") which does not match the canonical
package name on npm/GitHub.
The trap: web_search is unavailable in many Hermes deployments, and the
browser route through Google/DuckDuckGo frequently hits CAPTCHA or
"verification" walls. The npm registry website is behind Cloudflare and also
blocks automated browsers. You must reach the same facts through endpoints that
are NOT bot-walled.
This skill documents the reliable fallback chain that resolves install
instructions end-to-end without a working search engine.
When to Use
- User asks to install/use a tool, CLI, or agent whose exact package name is
unknown or ambiguous.
- A web search engine (Google/DuckDuckGo/Bing) returns a CAPTCHA or
verification page instead of results.
- npmjs.com / registries block the browser with "Just a moment..." (Cloudflare).
- You need the canonical install command, not a blog post reproducing it.
Don't use for: widely-known packages (just run npm i/read the well-known
docs), or tasks that need live web data rather than install steps.
The Primary Recipe (ordered)
Work the chain top to bottom. Stop as soon as you have a verified install
command from an authoritative source.
Name disambiguation via GitHub repo search (not web search).
browser_navigate to https://github.com/search?q=<name>&type=repositories
- Scan the result list for a repo whose name/description matches the tool.
Fan names rarely equal package names — look for the description and the
actual code (is it npm/Nix/PyPI?).
- Completion: you have 1–3 candidate repos with owner/name.
Open the most promising repo and read its README.
browser_navigate to https://github.com/<owner>/<repo>.
- If the README is truncated in the snapshot, fetch the raw file directly:
https://raw.githubusercontent.com/<owner>/<repo>/<branch>/README.md
(branch is usually main or master; the repo page shows it).
- Completion: you understand what the package actually is and where it
installs from (npm scope, PyPI, cargo, etc.).
Decode "wrapper" / repackaging repos.
- Some repos are NOT the upstream project — they just repackage it (common
patterns: a Nix flake, a Homebrew formula, a Dockerfile). The REAL install
command lives in the upstream it points to.
- Tell-tale signs: tiny repo, 100% Nix/Shell/Dockerfile, a
fetchFromGitHub
/ src block with a different owner/repo. Open that file
(e.g. pi-coding-agent.nix) and read the src declaration — it names the
true upstream repo and often the npm package + homepage.
- Completion: you have the upstream repo URL and/or npm package name.
Fetch the upstream package's raw README for the install command.
- Go to
raw.githubusercontent.com/<upstream-owner>/<upstream-repo>/<branch>/README.md
or the package-specific README (monorepos put it under
packages/<name>/README.md).
- These raw endpoints return clean text — no JS, no bot wall.
- Completion: you have the literal install command(s).
Confirm against the official docs site (preferred over README).
- Most mature projects have a docs site (e.g.
pi.dev/docs/latest).
browser_navigate there and read the Quickstart/Install page. Docs are
usually lighter and less bot-walled than npm.
- Completion: install command corroborated by the canonical docs site.
Avoid the npm website; use the registry JSON or docs instead.
https://registry.npmjs.org/@scope/name/latest returns JSON (may render
as a near-empty form in the browser snapshot — that's fine, the data is
there). Prefer the docs site for the human-readable command.
- Completion: you did not waste a turn on the Cloudflare-walled npm page.
Report. Give the user: the canonical install command, the --ignore-scripts
/ supply-chain caveat if the project recommends it, the run command, and the
auth/env step. Offer to run it.
Tiered Fallback When Search Itself Is Blocked
If even GitHub search is slow, the order of reliability is:
- GitHub repo search (rarely bot-walled) — best for name disambiguation.
raw.githubusercontent.com READMEs — clean, never bot-walled.
- Official docs site
/docs path — usually light, often readable.
- npm registry JSON (
registry.npmjs.org/.../latest) — data-only fallback.
- Last resort:
curl the docs/README from the terminal (use terminal, not
the browser) — curl -fsSL https://raw.githubusercontent.com/.../README.md.
Never rely on Google/DuckDuckGo HTML in this environment; they return CAPTCHA
or verification iframes within 1–2 attempts.
Common Pitfalls
- Trusting the fan name. "picoding agent" → actual package
@earendil-works/pi-coding-agent, run as pi. Always resolve to the real
package name before giving a command.
- Stopping at a wrapper repo. A Nix flake repo with 0 stars is almost
never the upstream. Read its packaging file to find the true source.
- Hitting npmjs.com in the browser. It shows "Just a moment..." (Cloudflare).
Use the registry JSON or the project's own docs site instead.
- Giving a blog/medium command as canonical. Only report commands sourced
from the upstream README or official docs.
- Forgetting the supply-chain caveat. Many modern CLIs recommend
npm install -g --ignore-scripts to skip dependency lifecycle scripts.
State it when the docs do.
Verification Checklist
Worked Example
See references/worked-example-picoding-agent.md for the full trace that
produced this skill (resolving "picoding agent" → Pi Coding Agent →
@earendil-works/pi-coding-agent), including the exact URLs and the Nix-flake
decode that revealed the upstream.
1---2name: obscure-tool-install-lookup3description: Use when a user asks how to install or use an obscure CLI tool, agent, or package and search engines are blocked, CAPTCHA-walled, or unhelpful. Resolves canonical install commands via GitHub repo search, raw README fetches, and official docs — without relying on web_search or bot-walled search engines.4license: MIT5---67# Obscure Tool / Agent Install Lookup89## Overview1011Users often ask "how do I install X?" for tools that are too new, too niche, or12too vaguely named for a normal web search to surface authoritative13instructions. This is especially common for AI "agent" projects that have a14fan-facing name (e.g. "picoding agent") which does not match the canonical15package name on npm/GitHub.1617The trap: `web_search` is unavailable in many Hermes deployments, and the18browser route through Google/DuckDuckGo frequently hits CAPTCHA or19"verification" walls. The npm registry website is behind Cloudflare and also20blocks automated browsers. You must reach the same facts through endpoints that21are NOT bot-walled.2223This skill documents the reliable fallback chain that resolves install24instructions end-to-end without a working search engine.2526## When to Use2728- User asks to install/use a tool, CLI, or agent whose exact package name is29 unknown or ambiguous.30- A web search engine (Google/DuckDuckGo/Bing) returns a CAPTCHA or31 verification page instead of results.32- npmjs.com / registries block the browser with "Just a moment..." (Cloudflare).33- You need the *canonical* install command, not a blog post reproducing it.3435**Don't use for:** widely-known packages (just run `npm i`/read the well-known36docs), or tasks that need live web data rather than install steps.3738## The Primary Recipe (ordered)3940Work the chain top to bottom. Stop as soon as you have a verified install41command from an authoritative source.42431. **Name disambiguation via GitHub repo search (not web search).**44 - `browser_navigate` to `https://github.com/search?q=<name>&type=repositories`45 - Scan the result list for a repo whose name/description matches the tool.46 Fan names rarely equal package names — look for the *description* and the47 actual code (is it npm/Nix/PyPI?).48 - *Completion:* you have 1–3 candidate repos with owner/name.49502. **Open the most promising repo and read its README.**51 - `browser_navigate` to `https://github.com/<owner>/<repo>`.52 - If the README is truncated in the snapshot, fetch the raw file directly:53 `https://raw.githubusercontent.com/<owner>/<repo>/<branch>/README.md`54 (branch is usually `main` or `master`; the repo page shows it).55 - *Completion:* you understand what the package actually is and where it56 installs from (npm scope, PyPI, cargo, etc.).57583. **Decode "wrapper" / repackaging repos.**59 - Some repos are NOT the upstream project — they just repackage it (common60 patterns: a Nix flake, a Homebrew formula, a Dockerfile). The REAL install61 command lives in the upstream it points to.62 - Tell-tale signs: tiny repo, 100% Nix/Shell/Dockerfile, a `fetchFromGitHub`63 / `src` block with a different `owner`/`repo`. Open that file64 (e.g. `pi-coding-agent.nix`) and read the `src` declaration — it names the65 true upstream repo and often the npm package + `homepage`.66 - *Completion:* you have the upstream repo URL and/or npm package name.67684. **Fetch the upstream package's raw README for the install command.**69 - Go to `raw.githubusercontent.com/<upstream-owner>/<upstream-repo>/<branch>/README.md`70 or the package-specific README (monorepos put it under71 `packages/<name>/README.md`).72 - These raw endpoints return clean text — no JS, no bot wall.73 - *Completion:* you have the literal install command(s).74755. **Confirm against the official docs site (preferred over README).**76 - Most mature projects have a docs site (e.g. `pi.dev/docs/latest`).77 `browser_navigate` there and read the Quickstart/Install page. Docs are78 usually lighter and less bot-walled than npm.79 - *Completion:* install command corroborated by the canonical docs site.80816. **Avoid the npm *website*; use the registry JSON or docs instead.**82 - `https://registry.npmjs.org/@scope/name/latest` returns JSON (may render83 as a near-empty form in the browser snapshot — that's fine, the data is84 there). Prefer the docs site for the human-readable command.85 - *Completion:* you did not waste a turn on the Cloudflare-walled npm page.86877. **Report.** Give the user: the canonical install command, the `--ignore-scripts`88 / supply-chain caveat if the project recommends it, the run command, and the89 auth/env step. Offer to run it.9091## Tiered Fallback When Search Itself Is Blocked9293If even GitHub search is slow, the order of reliability is:94951. GitHub repo search (rarely bot-walled) — best for name disambiguation.962. `raw.githubusercontent.com` READMEs — clean, never bot-walled.973. Official docs site `/docs` path — usually light, often readable.984. npm registry JSON (`registry.npmjs.org/.../latest`) — data-only fallback.995. Last resort: `curl` the docs/README from the terminal (use `terminal`, not100 the browser) — `curl -fsSL https://raw.githubusercontent.com/.../README.md`.101102Never rely on Google/DuckDuckGo HTML in this environment; they return CAPTCHA103or verification iframes within 1–2 attempts.104105## Common Pitfalls1061071. **Trusting the fan name.** "picoding agent" → actual package108 `@earendil-works/pi-coding-agent`, run as `pi`. Always resolve to the real109 package name before giving a command.1102. **Stopping at a wrapper repo.** A Nix flake repo with 0 stars is almost111 never the upstream. Read its packaging file to find the true source.1123. **Hitting npmjs.com in the browser.** It shows "Just a moment..." (Cloudflare).113 Use the registry JSON or the project's own docs site instead.1144. **Giving a blog/medium command as canonical.** Only report commands sourced115 from the upstream README or official docs.1165. **Forgetting the supply-chain caveat.** Many modern CLIs recommend117 `npm install -g --ignore-scripts` to skip dependency lifecycle scripts.118 State it when the docs do.119120## Verification Checklist121122- [ ] Resolved the *real* package/repo name (not just the user's phrasing).123- [ ] Install command comes from upstream README or official docs, not a third party.124- [ ] If a wrapper repo was found, the upstream it points to was identified.125- [ ] Supply-chain flags (`--ignore-scripts`, etc.) included when the docs recommend them.126- [ ] Run command + auth/env setup step included in the answer.127- [ ] Offered to actually execute the install.128129## Worked Example130131See `references/worked-example-picoding-agent.md` for the full trace that132produced this skill (resolving "picoding agent" → Pi Coding Agent →133`@earendil-works/pi-coding-agent`), including the exact URLs and the Nix-flake134decode that revealed the upstream.