Skip to main content

CLI tool to fetch URLs and search the web

Project description

Websearch CLI Logo

Websearch CLI

Fetch URLs and search the web from your terminal. Fast, simple, and extensible.

PyPI Version License Tests Python

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

better_websearch_cli-0.4.0.tar.gz (36.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

better_websearch_cli-0.4.0-py3-none-any.whl (35.4 kB view details)

Uploaded Python 3

File details

Details for the file better_websearch_cli-0.4.0.tar.gz.

File metadata

  • Download URL: better_websearch_cli-0.4.0.tar.gz
  • Upload date:
  • Size: 36.3 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

Hashes for better_websearch_cli-0.4.0.tar.gz
Algorithm Hash digest
SHA256 4b5da854fa869c48b65eaba7062de4689aeeb157595825232058acc03975f559
MD5 2cd2d6c7a9b2cc3fc3d4b977f0a740dd
BLAKE2b-256 fffc72baa6d1a6a26c06773c6dc2f29368fc435f5d369ddfc7da011e997620ce

See more details on using hashes here.

File details

Details for the file better_websearch_cli-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: better_websearch_cli-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 35.4 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

Hashes for better_websearch_cli-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ba85ee57363b6192e3d742d4c473b81747e14f0e8d66f8115e51c3e94db9941a
MD5 6cdc7214e584d29a7cb34d733a38bfce
BLAKE2b-256 589ae80243bc4c34f853ec46e027aaa26f2fe16e7baad6c9b8ac7407712cf246

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page