# searchts

> Keyless web reader for AI agents, built because Claude's own fetch kept coming back empty. Fetch a URL or admit you can't. One read path (`unlocker.fetch`). Fail loud on thin pages, challenges, and login walls.

PyPI: https://pypi.org/project/searchts/ · Repo: https://github.com/capad-xyz/searchts

## Install

- **Keep:** `pipx install "searchts[mcp]"`
- **Try / Claude MCP (no PATH):** `claude mcp add searchts -- uvx --from "searchts[mcp]" searchts mcp serve`
- **venv only:** `pip install "searchts[mcp]"` — not the recommended CLI path

Do **not** `pip install searchts` onto Homebrew/PEP 668 Python. Do **not** invent `searchts search-twitter` or `searchts install --env=auto` as the product.

## Demo

```
uvx --from "searchts[mcp]" searchts -v read https://en.wikipedia.org/wiki/Ada_Lovelace
```

`example.com` reads as one short paragraph: that is the whole page. Reddit/LinkedIn often **fail loud** — that is success of honesty, not a broken install.

## Commands

- `searchts read <url>` — the page, or a plain failure. Share links are reads whose HTML is empty. A player page comes back as its captions, or the failure names `transcribe`
- `searchts search "<query>"` — URLs to read. A snippet is not the page
- `searchts transcribe <url>` — the audio, when a read found no captions, or a local file
- `searchts login signin <url>` — sign in once for a site that is behind a login (also `login keep`, `kill`, `list`)
- `searchts get <url>` — one file a read named. `searchts grab` saves the set when the files are the deliverable
- `searchts update` — latest release for the copy that is running (`searchts upgrade` is the same command). Does not kill `searchts.exe`
- `searchts doctor` — **read-only** health (does not install skills)
- `searchts mcp serve` / `searchts skill install`

MCP tools: `read_url`, `web_search`, `fetch_asset`, `grab_site`, `get_status`, `transcribe`, `login_status`, `login_signin`, `login_kill`.

## Not this product

No channel router (`if host==reddit`). No default paid proxies. No cookie Twitter as the core. Doctor probes optional CLIs (`gh`, …) — they are not how `read` works.

Full docs: https://github.com/capad-xyz/searchts/blob/main/README.md
