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.3.4.tar.gz (35.8 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.3.4-py3-none-any.whl (34.8 kB view details)

Uploaded Python 3

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

Hashes for better_websearch_cli-0.3.4.tar.gz
Algorithm Hash digest
SHA256 f8ee32577d9030b9a0c9872d5ab65f9afec421a2c007e1889d86f3925293b4af
MD5 f1c6eb8783615cfc62dcd5cec4aeeead
BLAKE2b-256 3bdbb43f742ffdd74fe1cb0c218212407405afed7fa9921937980f98c5c7a7a6

See more details on using hashes here.

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

Hashes for better_websearch_cli-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 fc81a19afa84e3a9f619513cead71ac1e2ef34356b1742a21e5b7845b18aa7e4
MD5 d89f3ee681fe214ee788ebfdfdcb5699
BLAKE2b-256 5f39ec7f6a55d8fc4bd57653d47e4474b5427adad651fb1e7981154c73bc40b0

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