Skip to content

Repository files navigation

webtools

License: MIT

A unified, token-efficient web fetch + search CLI for LLM agents, built around reference-style URL preservation. One small, fast binary that works with no API keys and no backend — and takes them when you want better search.

webtools fetch  --url https://docs.example.com/api   # page → compact text + refs
webtools search --query "rust async runtime"          # web search → results + refs

Links become inline [N] markers with the full URLs collected into a trailing reference block — the agent sees [1] (≈1 token) but can still recover the exact URL. --max-tokens caps the whole output, references included.

Every result also says whether it worked: a blocked search, a page that needs JavaScript, and a page that is genuinely empty are three different outcomes, not one silent empty answer.

Search backends

DuckDuckGo needs no key and is the default. When search reliability matters, point webtools at Brave, Tavily, or your own SearXNG — keys come from the environment or ~/.hoocode/settings.json, never from the command line:

webtools search --query "rust async runtime" --provider brave

See Search providers and Configuration.

Behind a proxy?

webtools trusts the OS certificate store (plus SSL_CERT_FILE), so it works through TLS-intercepting corporate proxies out of the box. Add a custom root CA with --ca-cert <PATH>, or, as a last resort, skip verification with --insecure. See TLS, proxies, and custom CAs.

Docs

Related

A small set of offline-first tools for agents:

  • hoocode — deterministic terminal coding agent (TypeScript, on npm)
  • embeddingsearchtools — semantic + BM25 retrieval, HNSW from scratch (Rust)
  • voicetools — offline speech recognition, mic to stdout (Rust)

Built by Sachin Koli.

License

MIT

About

Token-efficient web fetch and search for LLM agents. Preserves reference-style URLs as single-token markers so a page fits inside a context budget.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages