📈 GH Trending Explorer 🎲 Surprise me

← all repos

dorkitude / webctl

git clone https://github.com/dorkitude/webctl.git v0.1.9 · 4d ago

Smart web search CLI for agents, backed by Jev. Saves a lot of tokens.

+1
stars, 24h · #9,223
+~7
stars, 7 days · #9,871
+~30
stars, 30 days · #15,817
161
★ total · +5% this week
16
forks · 0 open issues

Star history (as recorded here)

2026-10-20 · 160 ★ 2026-10-22 · 161 ★
LanguageGo
LicenseMIT
Created2026-09-20 (1mo ago)
Last pushtoday
Watchers0
OwnerUser

Links

README excerpt
# webctl
Smart web search CLI for agents, backed by Jev. Saves a lot of tokens.
 [code] 
...or, more likely:
 [code] 
- Quick start
- Installation
- Schematics
- Usage
I originally built this to give my Pi/Kimi K3 chat stack something akin to what Claude/Codex already have out of the box, but now I have Claude/Codex using it too... and it's pretty freaking dope. It really saves a lot of the context window. So now it's free for all!
### How it works:
By default, `webctl` will try 3 web search backends. Each result set is passed (with the original query and goal) to Jev for scoring; the high-scoring subset is then deduped by some fancy math (plus Jev). This means your Claude (or whatever) doesn't have to read as much junk, which saves you $$ (sorry, Anthropic!).
The snippets are usually enough. When they are not, and the agent would otherwise read a whole page, `--scrape --filter-chunks` is the cheaper move: webctl fetches the top results, parses out the textual content, divides it into chunks, and sends those chunks (plus the original query and goal) to Jev for scoring. Only the relevant chunks come back, so that is all that lands in the agent's context. For long PDFs, Reddit/StackOverflow comment threads, earnings transcripts, and entire Wikipedia articles, this saves an *enormous* number of tokens compared to reading the page; for a short fact it adds nothing (see benchmarks/README.md).
Feel free to submit a PR if I missed something! And if I miss the PR, hit me up @dorkitude and I'll get to it ASAP.
## Quick start
1. Install: Homebrew, apt, npm, or go install.
2. Get a Jev key from typesafe.ai.
3. Run:
 [code] 
Searching does not strictly require a key: with none configured, webctl calls the keyless Exa, Parallel, Keenable, You.com, and Firecrawl endpoints directly, then DuckDuckGo. Those throttle by IP after a few dozen searches a day, and webctl backs off with a cooldown ladder, so expect thin results without a key.
The author prefers Brave Search: 5,000 free searches a month, requires an API key. It is the first choice in `webctl setup`; once any search key is configured, only your keyed providers are used. (docs/providers.md)
## Schematics
Filter search engine results to save tokens:
 [code] 
Filter chunks of scraped webpages to save even more tokens (`--scrape --filter-chunks`):
 [code] 
Deduplicate results:
 [code] 
Respect rate limits with automatic cooldowns:
 [code] 
## Installation
Prebuilt binaries for macOS and Linux (amd64 and arm64) are attached to every release.
### Homebrew (macOS and Linux)
 [code] 
### apt (Debian and Ubuntu)
 [code] 
### npm
 [code] 
The package downloads the release binary for your platform and checks it
against the release's `checksums.txt`. If npm skips install scripts
(`--ignore-scripts`, or a policy that blocks them), the first `webctl` run
downloads it instead, to `~/.cache/webctl/ /` (or
`$XDG_CACHE_HOME/webctl/ /`). Each version is published from CI with
npm provenance.
### go install
 [code] 
## Usag