001Search + Scrape
Web search via Brave, DuckDuckGo, or SearXNG. Scrape any URL to clean markdown. Combine both in one call with --scrape.
002Agent-Native Output
YAML frontmatter + markdown body — the same format as cymbal. Agents scan metadata first, read content when needed. --json available as escape hatch.
003Operator Configures, Agent Consumes
Set your backend and API keys once in ~/.config/ketch/config.json. Agents call ketch search without knowing the infrastructure.
004Page Cache
Scraped pages cached locally with TTL-based expiry. Second fetch of the same URL returns in ~5ms instead of ~200ms. Cache follows platform conventions.
005Zero Dependencies
Single Go binary, CGO_ENABLED=0, cross-compiles everywhere. No daemon, no database, no runtime dependencies. Install and run.
006Multiple Backends
Brave Search API (free tier), DuckDuckGo HTML scraping, or self-hosted SearXNG. Switch backends with one config change.