Skip to main content
Search provider CowAgent is an open-source AI assistant that plans tasks, runs Skills, and works from a web console and the major IM platforms. Keenable is one of the backends of its built-in web_search tool. Turn it on with an empty key field and searches go to Keenable’s public endpoint, no account needed. → The Keenable provider in CowAgent
Keenable ships with CowAgent 2.1.8 and later. Install CowAgent with the quick start, or bring an existing install up to date with cow update (upgrade guide).

Turn it on

1

Open the search settings

In the web console (http://localhost:9899 by default), open Config, switch to the Models tab, and find the Web Search card.
2

Add Keenable

Click Add provider and pick Keenable. Leave API Key empty and click Save. The card now lists Keenable · anonymous.
3

Ask the agent

Ask something that needs the web. The agent calls its web_search tool, which answers from Keenable when no other search provider is set up.
The console saves this to config.json (~/CowAgent/config.json for a script install, ~/.cow/config.json for the desktop app). To set it by hand, add this block and run cow restart:

Which provider answers

The search strategy defaults to auto, which uses the first configured provider in this order: Bocha, Baidu Qianfan, Zhipu, LinkAI, AnySearch, Serply, Tavily, SearXNG, Keenable. Keenable comes last, so a provider you already set up keeps answering; with two or more configured, the agent can still pick Keenable for a single call. To always search with Keenable, set Strategy to Pinned and Provider to Keenable in the same card and click Save, or in config.json:

What the tool returns

Each call returns up to 50 results (10 by default), each with a title, url, snippet, and datePublished. Snippets run about 300 characters, or about 1,000 when the agent asks for summaries. The tool’s freshness filter (oneDay, oneWeek, oneMonth, oneYear, or a range such as 2025-01-01..2025-02-01) limits results by publish date.

Use your API key

Paste your key (keen_<your_key>, from the console) into API Key in the same dialog, or set tools.web_search.keenable_api_key in config.json. When that value is empty, CowAgent reads the KEENABLE_API_KEY environment variable instead. With a key, Keenable counts as configured without keenable_anonymous.
Without a key, searches run on the shared public tier at lower rate limits. A key moves them to the authenticated endpoint and your organization’s limits, and removes the hourly cap.