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.2.1.tar.gz (34.6 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.2.1-py3-none-any.whl (33.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: better_websearch_cli-0.2.1.tar.gz
  • Upload date:
  • Size: 34.6 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.2.1.tar.gz
Algorithm Hash digest
SHA256 41c3f59a28c93cd44a0e3f8fca5715fe35d315db4724ca163051c4df8aca0386
MD5 510e3fb6e0e5384d17097f1ecee6fc15
BLAKE2b-256 16d31f5b8f17d2df29a64402ab40bf08983c8dc8144415882223a0835972db18

See more details on using hashes here.

File details

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

File metadata

  • Download URL: better_websearch_cli-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 33.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.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2d1307d8486459496eafc4d4285f9a9e4a04312330b0cf78bfc4a80cd98d9b5a
MD5 38612688d5ebbe83af91aee8394195d1
BLAKE2b-256 de1ef2cc55a743ea7fa0706a17724e60d6a8014db4fcc1cd88b8bcc39a329519

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