Source repo
https://github.com/1broseidon/ketch
Why selected
- 531 stars (mid-popular band), MIT licensed, Go, pushed within hours (very active: recent commits same day).
- ketch is a stateless CLI for agent web search — its entire purpose is federating web-search providers behind one
Searcher interface. It has an explicit, documented provider abstraction with 9 existing backends (brave, ddg, searxng, exa, firecrawl, keenable, tavily, parallel, serpbase); the last two releases each added a keyed backend through the identical pattern (see CHANGELOG 0.14.0).
- Ships its own agent skill (
skills/ketch/SKILL.md, skills.sh-compatible) and an MCP server (ketch mcp serve) — landing a youcom backend in the provider registry gives You.com visibility to the maintainer and every ketch user/agent.
- Clean implementation path: mirror the Tavily backend (keyed, Bearer/X-API-Key header auth, keyPool rotation, doctor probe, config set/discovery, multi/random federation). Tests use httptest servers — fully runnable offline.
- Not previously touched by this workflow (checked against all tracking issues + authored PRs).
Candidate evaluation summary
| Candidate |
Stars |
Distribution surface |
Activity |
Verdict |
| 1broseidon/ketch |
531 |
Provider registry (Searcher iface) + agent skill + MCP server |
same-day pushes |
selected |
| ggozad/haiku.rag |
586 |
MCP client config, agentic RAG |
same-day |
good, but search is a smaller part of its surface; ketch is search-native |
| szczyglis-dev/py-gpt |
1898 |
plugin system |
12 days |
license NOASSERTION + large desktop app, higher risk |
Proposed integration type
Provider adapter — new youcom web-search backend in ketch's existing provider registry (repo-native equivalent of a plugin listing).
Distribution surface leveraged
ketch's search.Searcher provider abstraction (search.NewFromConfig owns the backend switch; every backend is wired through config set/discovery, --multi/--random federation, the MCP search tool, and ketch doctor).
Planned setup / env vars
ketch config set youcom_api_key <key> (get a key at https://you.com/platform/api-keys)
- Multi-key rotation:
youcom_api_keys JSON array / KETCH_YOUCOM_API_KEY comma-separated env override
- Select:
ketch search "q" -b youcom or ketch config set backend youcom; joins --multi=all federation automatically when a key is set
- API:
POST https://ydc-index.io/v1/search with X-API-Key header auth (verified against You.com docs via the Docs MCP searchDocs tool)
Expected usage example
ketch config set youcom_api_key <key>
ketch search "golang generics" -b youcom
ketch search "golang generics" --multi=brave,youcom
Validation plan
go test ./... (new search/youcom_test.go + updated config/cmd tests, httptest-based)
golangci-lint run (repo standard, gocyclo max 15)
- Live check documented:
ketch config set youcom_api_key <key> && ketch search "test" -b youcom
- Default behavior unchanged: brave stays default; youcom is inert unless explicitly selected or keyed
Branch / PR
- Branch: (pending)
- PR: (pending)
Source repo
https://github.com/1broseidon/ketch
Why selected
Searcherinterface. It has an explicit, documented provider abstraction with 9 existing backends (brave, ddg, searxng, exa, firecrawl, keenable, tavily, parallel, serpbase); the last two releases each added a keyed backend through the identical pattern (see CHANGELOG 0.14.0).skills/ketch/SKILL.md, skills.sh-compatible) and an MCP server (ketch mcp serve) — landing ayoucombackend in the provider registry gives You.com visibility to the maintainer and every ketch user/agent.Candidate evaluation summary
Searcheriface) + agent skill + MCP serverProposed integration type
Provider adapter — new
youcomweb-search backend in ketch's existing provider registry (repo-native equivalent of a plugin listing).Distribution surface leveraged
ketch's
search.Searcherprovider abstraction (search.NewFromConfigowns the backend switch; every backend is wired through config set/discovery,--multi/--randomfederation, the MCPsearchtool, andketch doctor).Planned setup / env vars
ketch config set youcom_api_key <key>(get a key at https://you.com/platform/api-keys)youcom_api_keysJSON array /KETCH_YOUCOM_API_KEYcomma-separated env overrideketch search "q" -b youcomorketch config set backend youcom; joins--multi=allfederation automatically when a key is setPOST https://ydc-index.io/v1/searchwithX-API-Keyheader auth (verified against You.com docs via the Docs MCPsearchDocstool)Expected usage example
Validation plan
go test ./...(newsearch/youcom_test.go+ updatedconfig/cmdtests, httptest-based)golangci-lint run(repo standard, gocyclo max 15)ketch config set youcom_api_key <key> && ketch search "test" -b youcomBranch / PR