Skip to the page

PicoClaw

Set PicoClaw's SearXNG base_url to SpecStream's address, with your key in it, and the web_search tool searches through SpecStream's Search API. There is no SearXNG instance to host or keep unblocked.

SpecStream for PicoClawAI assistants

What you need

  • PicoClaw with its config at ~/.picoclaw/config.json. picoclaw onboard creates it.
  • A SpecStream API key. New accounts get $10 of credit on sign up, no card. Get your key on the Search API screen of your workspace.
  1. 1. Put your key in the address

    PicoClaw's SearXNG settings have no key field, so the key goes in the address. PicoClaw adds /search to base_url by itself, so the address ends with the key. Put your key in place of YOUR_SPECSTREAM_KEY:

    base_url
    https://api.specstream.ai/searxng/YOUR_SPECSTREAM_KEY
  2. 2. Set it in config.json

    Under tools.web in ~/.picoclaw/config.json, turn on searxng with that address, and set provider to searxng. Without provider, PicoClaw picks the first ready provider in the order Perplexity, Brave, Kagi, SearXNG, Tavily, Gemini, so a Brave or Perplexity key you already set would win.

    Set prefer_native to false. It is true by default, and then a model with its own search uses that instead of the web_search tool. PicoClaw returns at most 10 results per search, whatever max_results says.

    ~/.picoclaw/config.json
    {
    "tools": {
    "web": {
    "provider": "searxng",
    "prefer_native": false,
    "searxng": {
    "enabled": true,
    "base_url": "https://api.specstream.ai/searxng/YOUR_SPECSTREAM_KEY",
    "max_results": 10
    }
    }
    }
    }
  3. 3. Or set it in the WebUI

    Open Tools, then the Web Search tab. Under General, set Primary Provider to SearXNG and turn off Prefer Native Search. Under Integrations, open SearXNG, switch it on, paste the address into Base URL, and select Save Changes.

  4. 4. Restart and ask

    Restart PicoClaw, for example picoclaw gateway, and ask about something from this week. The search result the agent reads starts with (via SearXNG), and each result carries its title, link and text.

Keep the key out of config.json

base_url is stored in config.json, not in .security.yml, so the file holds your key. Keep it private, or set the address in the environment PicoClaw runs in instead. Each setting has its own variable:

What PicoClaw sends, and what comes back

PicoClaw sendsSpecStream
GET {base_url}/searchhttps://api.specstream.ai/searxng/<key>/search, with the key read from the address
q, the agent's querySearched as written
format=jsonSearXNG's JSON: results[] with title, url and content
categories=generalAccepted with no error. It does not change the search

Or use the Tavily address

PicoClaw's Tavily provider takes a whole search address in base_url and keeps its key in .security.yml. Point it at SpecStream to keep the key out of config.json. In config.json:

The Tavily key

Then put your SpecStream key in ~/.picoclaw/.security.yml. PicoClaw sends it as api_key in the request body, which SpecStream reads:

If search fails

SearXNG returned status 401 means SpecStream got no valid key. Check that the whole key is in the address and that the key can search: a key made with no scopes can read and cannot search. Keys made on the Search API screen can search. If the agent answers without searching, check that prefer_native is false.

Cost

Each search PicoClaw sends through the SearXNG address is one Search API call on the fast tier, which costs a fifth of the default search's $5 per 1,000 searches of up to 10 results. A search through the Tavily address is one Search API call too, as Search API lists. Both come out of your balance, with no quote and no approval. PicoClaw reads pages itself with web_fetch, so there is no page reading charge. New accounts start with $10 of credit, no card. Questions go to [email protected].

More

SpecStream for PicoClaw covers what it does in PicoClaw on one page. Every other tool has its guide in Connect your tools. You see the most a request can cost before it starts, and the matches are paid from your balance. Billing has the details. For help, email [email protected].