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.1.3.tar.gz (29.5 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.1.3-py3-none-any.whl (26.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: better_websearch_cli-0.1.3.tar.gz
  • Upload date:
  • Size: 29.5 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.1.3.tar.gz
Algorithm Hash digest
SHA256 b2835944d7a5a4975e67dbce19386dffd521bd6f8a1397d96b747ff3988483d2
MD5 d440c2693a5c30836c91b10ea2428f8e
BLAKE2b-256 5162f999bf30efafef9fe1e428620b51fee5b23e74d92e88875f8b58591420ea

See more details on using hashes here.

File details

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

File metadata

  • Download URL: better_websearch_cli-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 26.5 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.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3fd0f0a29b5c2d110c288cc7be3b7e247e769babaccddf61938d27790adeebd5
MD5 da782549d30208784dad45c38019e091
BLAKE2b-256 54ecab77b57cdcda1dfde5d9d5a6d5f73eb8706841eaf08d4a28581d3226de49

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