MIT License / Early Development
Turn any website into an installable CLI for AI agents.
webctl runs one LLM pass during recon. After that, your agent runs the generated CLI with zero tokens at runtime.
Built on agent-browser. Emits just-bash ExecutorConfigs. Composable, not competing.
Install
$ cargo install webctlThe bet
One recon pass. Forever free.
Most agent runtimes
- Browser UseCalls LLM on every page load
- StagehandLLM-driven DOM extraction per visit
- OperatorContinuous vision + reasoning loop
Cost: tokens on every invocation
webctl
- reconOne LLM pass to map the site into an IR
- emitCompile IR into a typed CLI binary + just-bash ExecutorConfig
- runAgent calls the CLI, zero LLM calls, zero DOM parsing
Cost: tokens once. Runtime: zero.
How it works
Website in. CLI out.
In practice
From URL to structured output.
Step 1 of 2 - reconnaissance + emit
$ webctl recon https://news.ycombinator.com --autoLaunching agent-browser...Crawling: https://news.ycombinator.comClassifying DOM structure...Detected: news-listing, pagination, story-metadataRunning LLM pass (1 call)...Writing IR to ~/.webctl/news-ycombinator-com.ir.jsonEmitting CLI binary...Installing to ~/.cargo/bin/news-ycombinator-comDone in 4.2s. LLM calls: 1.
LLM calls: 1 total. Tokens spent once, never again.
Architecture
Crate breakdown.
webctl-irIntermediate representation. JSON schema for site actions, params, selectors, and types.
webctl-probeRecon engine. Drives agent-browser, runs the single LLM pass, writes the IR.
webctl-classifierDOM classifier. Labels page regions as listing, form, detail, pagination, etc.
webctl-emit-cliCode generator. Reads IR, emits a typed Clap CLI binary and a just-bash ExecutorConfig.
webctl-installInstaller. Compiles the emitted CLI and places it on PATH via cargo install.
Status:early development, all crates unstable|License:MIT|Language:Rust