Metadata-Version: 2.4
Name: search-smith
Version: 0.1.0
Summary: A small provider-neutral web search abstraction with Brave Search support.
Project-URL: Homepage, https://github.com/yeiichi/search-smith
Project-URL: Documentation, https://search-smith.readthedocs.io/
Project-URL: Repository, https://github.com/yeiichi/search-smith
Project-URL: Issues, https://github.com/yeiichi/search-smith/issues
Author-email: Eiichi YAMAMOTO <info@yeiichi.com>
License-Expression: MIT
License-File: LICENSE
Keywords: brave,fact-checking,retrieval,search,web-search
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: httpx<1,>=0.27
Provides-Extra: dev
Requires-Dist: build<2,>=1.2; extra == 'dev'
Requires-Dist: pytest<9,>=8; extra == 'dev'
Requires-Dist: python-semantic-release<10,>=9; extra == 'dev'
Requires-Dist: ruff<1,>=0.6; extra == 'dev'
Provides-Extra: docs
Requires-Dist: furo>=2025.7.19; extra == 'docs'
Requires-Dist: sphinx<9,>=8; extra == 'docs'
Description-Content-Type: text/markdown

# search-smith

`search-smith` is a small, reusable web-search abstraction package. Version
0.1.0 supports Brave Search as the only functional provider while keeping the
public API provider-neutral.

## Background

Programmatic web search is often a small but important part of evidence
collection, fact-checking, and retrieval workflows. As older APIs such as
Google's Custom Search JSON API become harder to rely on for new projects,
applications need a thin layer that can normalize results without tying the
rest of the codebase to one provider. `search-smith` starts with Brave Search,
which provides public web results from Brave's independent search index, and
keeps the provider boundary small enough for future alternatives.

## Quick start

```bash
uv add search-smith
export BRAVE_SEARCH_API_KEY="..."
```

```python
from search_smith import search

results = search("Python semantic release", count=10)

for result in results:
    print(result.title)
    print(result.url)
```

You can also use the explicit Brave client:

```python
from search_smith import BraveSearch

client = BraveSearch()
results = client.search("Python semantic release")
```

The CLI is available as `search-smith`:

```bash
search-smith "Brave Search API" --count 5
search-smith "Brave Search API" --format json
```

Full documentation is in `docs/` and is intended to be published by Read the
Docs at <https://search-smith.readthedocs.io/>.
