CLI tool to fetch URLs and search the web
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file better_websearch_cli-0.3.4.tar.gz.
File metadata
- Download URL: better_websearch_cli-0.3.4.tar.gz
- Upload date:
- Size: 35.8 kB
- Tags: Source
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8ee32577d9030b9a0c9872d5ab65f9afec421a2c007e1889d86f3925293b4af
|
|
| MD5 |
f1c6eb8783615cfc62dcd5cec4aeeead
|
|
| BLAKE2b-256 |
3bdbb43f742ffdd74fe1cb0c218212407405afed7fa9921937980f98c5c7a7a6
|
File details
Details for the file better_websearch_cli-0.3.4-py3-none-any.whl.
File metadata
- Download URL: better_websearch_cli-0.3.4-py3-none-any.whl
- Upload date:
- Size: 34.8 kB
- Tags: Python 3
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc81a19afa84e3a9f619513cead71ac1e2ef34356b1742a21e5b7845b18aa7e4
|
|
| MD5 |
d89f3ee681fe214ee788ebfdfdcb5699
|
|
| BLAKE2b-256 |
5f39ec7f6a55d8fc4bd57653d47e4474b5427adad651fb1e7981154c73bc40b0
|