Websearch CLI
Fetch URLs and search the web from your terminal. Fast, simple, and extensible.
Fetch web pages and search the internet - all from your command line.
Why Websearch CLI?
- Fast - Async HTTP powered by httpx
- Smart caching - Local cache with TTL and automatic eviction
- Clean output - HTML to Markdown conversion with XSS protection
- Type-safe - 100% type-annotated Python
Features
- Fetch URLs and convert to Markdown
- Web search via Brave Search API
- Local caching with TTL and size limits
- XSS protection and HTML sanitization
- SPA (Single Page App) detection
- Retry with exponential backoff
Quick Start
# Install
uv add websearch
# Fetch a URL as Markdown
websearch fetch https://example.com
# Search the web
websearch search "python async tutorial"
# Fetch with options
websearch fetch https://example.com --no-cache --verbose
websearch search "python" -n 20 -t news
Command Overview
| Command | Description |
|---|---|
websearch fetch <url> |
Fetch URL and convert to Markdown |
websearch search <query> |
Search the web |
websearch ping |
Check if CLI is working |
Fetch Options
--refresh, -r Skip cache and force fresh fetch
--no-cache Disable caching
--no-verify Skip SSL certificate verification
--output, -o PATH Output file path
--verbose, -v Show verbose output
Search Options
--count, -n <n> Number of results (1-50, default: 10)
--type, -t <type> Result type: web, news, images, videos
--output, -o PATH Output file path
--json Output raw JSON response
--no-cache Disable caching
Configuration
Set your Brave API key:
export BRAVE_API_KEY=your_api_key_here
Get your API key at https://brave.com/search/api/
Development
# Clone and install
git clone https://github.com/AliiiBenn/websearch.git
cd websearch
uv sync --dev
# Run tests
uv run pytest
# Lint and type-check
uv run ruff check websearch/
uv run mypy websearch/
# Try it out
uv run websearch fetch https://example.com
Contributing
Contributions are welcome! Feel free to open issues or submit PRs.
License
MIT - See LICENSE for details.
Metadata
Release files for better-websearch-cli 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| better_websearch_cli-0.4.0.tar.gz | 36.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| better_websearch_cli-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 71.7 kB
Release files / better_websearch_cli-0.4.0.tar.gz
| Download URL | better_websearch_cli-0.4.0.tar.gz |
|---|---|
| Size | 36.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4b5da854fa869c48b65eaba7062de4689aeeb157595825232058acc03975f559
|
|
BLAKE2b-256 checksum How to use checksums |
fffc72baa6d1a6a26c06773c6dc2f29368fc435f5d369ddfc7da011e997620ce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / better_websearch_cli-0.4.0-py3-none-any.whl
| Download URL | better_websearch_cli-0.4.0-py3-none-any.whl |
|---|---|
| Size | 35.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ba85ee57363b6192e3d742d4c473b81747e14f0e8d66f8115e51c3e94db9941a
|
|
BLAKE2b-256 checksum How to use checksums |
589ae80243bc4c34f853ec46e027aaa26f2fe16e7baad6c9b8ac7407712cf246
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|