Search, scrape, crawl, and answer with sources.
From your own machine. A CLI and MCP server with one optional key: Jev.
Terminal
Your agent
curl --proto '=https' --tlsv1.2 -fsSL \
https://webular.dev/install.sh
| shDownloads the webular build that matches your machine (OS, CPU, and libc), checks it against SHA256SUMS, and puts it in ~/.webular/bin. View the script.
irm https://webular.dev/install.ps1 | iexChecks the download against SHA256SUMS and puts it in $HOME\.webular\bin. View the script.
npm i -g webularInstalls only the native build for your OS, CPU, and libc.
First install webular with a Terminal tab. Then run:
claude mcp add webular -- webular mcpIf the script says to add ~/.webular/bin to your PATH, do that. Then open a new terminal and run webular doctor.
That search ran with no key.
Command samples
$ webular search "bun javascript runtime" --limit 2
1. Bun: Fast JavaScript runtime, bundler, transpiler and package manager
https://github.com/Jarred-Sumner/bun
https://news.ycombinator.com/item?id=31993622
2. Bun: Fast JavaScript runtime, transpiler, and NPM client written in Zig
https://bun.sh/?launch
https://news.ycombinator.com/item?id=31993429$ webular scrape https://example.com
# Example Domain
This domain is for use in documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes.$ webular summarize --text "Bun is a fast runtime. It runs TypeScript." --sentences 1 --json
{"figures":[],"picks":[{"end":22,"index":0,"source_url":null,"start":0,"text":"Bun is a fast runtime."}],"sentences":["Bun is a fast runtime."],"source_url":null,"summary":"Bun is a fast runtime."}Add --json to any command for the same JSON shape every time.
Your machine, your data
- No paid API. Every feature runs on open-source parts, on your machine, with no webular server in the middle.
- Your searches go straight from your machine to DuckDuckGo, or to Wikipedia, Hacker News, or arXiv when you pick one. Jev calls go to TypeSafe only when you set a key.
- One optional key. Jev makes the judgment calls sharper. Without it, each one uses a rule-based fallback.
- Polite by default. It follows robots.txt unless you opt out for one page.
Give your agent the web
webular mcp serves 24 tools over stdio. Install webular first, so webular is on your PATH.
Your client
claude mcp add webular -- webular mcpInstall webular with `curl --proto '=https' --tlsv1.2 -fsSL https://webular.dev/install.sh | sh`. Ask me before you run it. Then add it as an MCP server that runs `webular mcp`. Read https://webular.dev/llms.txt first.codex mcp add webular -- webular mcpPut this in ~/.cursor/mcp.json:
{ "mcpServers": { "webular": { "command": "webular", "args": ["mcp"] } } }Put this in .vscode/mcp.json:
{ "servers": { "webular": { "type": "stdio", "command": "webular", "args": ["mcp"] } } }The plugin bundles an MCP server and four skills: research, interview, plain language, and Markdown. The plugin's own server runs with Bun and has the 19 command tools. webular mcp has those 19 plus five more, for 24.
One tool, twenty commands
Find
search, map, feed
search: Searches the web with no key, or one keyless source.webular search "bun runtime" --source wikipediamap: Finds all URLs for a domain.webular map https://example.comfeed: Reads an RSS 2.0 or Atom 1.0 feed and lists its items.webular feed https://hnrss.org/frontpage --limit 5
Read
scrape, crawl, batch, parse, media
scrape: Reads one URL as clean markdown or JSON.webular scrape https://example.com --jsoncrawl: Reads a site page by page on the same host.webular crawl https://example.combatch: Scrapes many URLs at once.webular batch --helpparse: Turns local docs into markdown.webular parse --helpmedia: Downloads media; takes a screenshot or PDF in a real browser.webular media --help
Think
extract, summarize, answer, research
extract: Pulls fields with CSS selectors or a schema.webular extract --helpsummarize: Picks the key sentences (no model).webular summarize --text "..." --sentences 1answer: Answers from sources.webular answer --helpresearch: Runs a multi-step research loop and writes a cited markdown report.webular research "web scraping in 2026" --depth 3 -o report.md
Watch and act
monitor, act
monitor: Tracks changes to a URL over time.webular monitor --helpact: Drives a real browser.webular act --help
Tools and setup
doctor, mcp, tasks, diagram, audit, jev
doctor: Checks your setup and toolchain.webular doctor --jsonmcp: Serves webular's features as an MCP server.webular mcptasks: Lists the mise task graph that defines the commands.webular tasksdiagram: Lists the XState machines that model the CLI flows.webular diagramaudit: Reports whether deepsec is there, plus a scan plan.webular auditjev: Learns from recorded Jev calls, or labels one as an eval case.webular jev --help
No key needed
Every command runs with no key. Add a Jev key to make the judgment calls sharper.
Set TYPESAFE_API_KEY. On macOS, webular also reads the Keychain item typesafe-ai-api-key. WEBULAR_JEV=off turns Jev off.
macOS Keychain
security add-generic-password -a "$USER" -s typesafe-ai-api-key -wbash or zsh, this shell only
read -rs TYPESAFE_API_KEY && export TYPESAFE_API_KEYHow it compares
| Tool | Key needed | Runs | Peer run |
|---|---|---|---|
| webular | None (Jev is optional) | Your machine | Scored |
| Exa | Yes | Hosted API with its own search index | Scored |
| Firecrawl | Yes | Hosted API | Scored |
| Tavily | Yes | Hosted API | No scored calls; its calls had no recorded answers to grade |
| Perplexity | Yes | Hosted API | No scored calls; its calls were unsupported or had no recorded answers |
In the peer run of Oct. 22, 2026, all three scored tools tied on search: webular, Exa, and Firecrawl each scored 1.000 on 4 tasks. A score of 1 means every answer was right. The task sets are small, so treat a difference as a sign, not as proof.
Where others lead: Exa, Brave, and Google run their own search indexes, and Exa reports citation precision, which this run does not measure. Brave and Google are not in this table.
Agent tests: 18 of 75 scored. Each one is one tool used by one AI agent model, across 3 models. The rest were skipped for lack of a key or an agent adapter.
Other ways to install
npm, Bun, or pnpm work on every supported system.
npm i -g webular
bun add -g webular
pnpm add -g webularFrom source, with Bun:
git clone https://github.com/srinitude/webular.git
cd webular
bun install --frozen-lockfile
bun bin/webular.ts --helpPrebuilt for macOS (arm64, x64), Linux (x64 and arm64, glibc or musl), and Windows (x64, arm64). Anything else: run from source.
Pin a release:
curl --proto '=https' --tlsv1.2 -fsSL https://webular.dev/v0.3.0/install.sh | shDocs
Every page here has a Markdown copy. Add .md to the address.
Check what you run
The install script checks the download against SHA256SUMS. Set WEBULAR_VERIFY_ATTESTATION=1 with gh installed to also check the build attestation.
webular mcp and the plugin run in agent mode. Agent mode blocks requests to your own network and keeps file writes inside one folder.
Found a flaw? Report it privately on GitHub.
Install webular
Terminal
curl --proto '=https' --tlsv1.2 -fsSL \
https://webular.dev/install.sh
| shDownloads the webular build that matches your machine (OS, CPU, and libc), checks it against SHA256SUMS, and puts it in ~/.webular/bin. View the script.
irm https://webular.dev/install.ps1 | iexChecks the download against SHA256SUMS and puts it in $HOME\.webular\bin. View the script.
npm i -g webularInstalls only the native build for your OS, CPU, and libc.
If the script says to add ~/.webular/bin to your PATH, do that. Then open a new terminal and run webular doctor.