Enabling Web Search for a Message
The web search toggle lives in the input toolbar — the row of icons just above the text field.Tap the search toggle
Tap the globe or search icon in the toolbar to enable web search. The icon highlights to indicate it is active.
Type your message
Write your question or prompt as normal. You do not need to phrase it differently — Rikka extracts the search query automatically.
Send the message
Tap send. Rikka calls the search service, retrieves results, and injects them as context before asking the model to respond. You will see a brief processing indicator while the search is in progress.
Web search is powered by a tool call injected into the conversation. The model decides when to invoke the
search_web tool based on your prompt. If the model determines that search is unnecessary for a given question, it may skip the web call and answer from its training data.Supported Search Services
Rikka supports a wide range of search providers. Configure one or more and select which one to use as the active service.- General purpose
- AI-powered
- Scraping & crawling
- Specialised
| Service | Notes |
|---|---|
| Bing | Uses the Microsoft Bing Search API. No additional configuration required beyond an API key. |
| Brave | Privacy-focused search via the Brave Search API. |
| RikkaHub | Rikka’s own search API. Requires a RikkaHub API key and supports configurable search depth and AI-generated answers. |
| SearXNG | Self-hosted meta-search engine. Provide your instance URL, optional credentials, and preferred search engines. |
| Bocha (博查) | Chinese-language search service with optional AI-generated summaries. |
| Metaso (秘塔) | Chinese AI-powered search service. |
Configuring a Search Service
Open Settings
Tap the Settings gear icon in the history drawer (bottom-right of the drawer action row).
Add a service
Tap Add and choose a service from the list. Each service shows a description and a link to obtain an API key where required.
Enter credentials
Fill in the API key and any service-specific options (depth, language, model, custom URL, etc.).
Common Configuration Options
Different services expose different settings, but you will commonly see:| Option | Description |
|---|---|
| API Key | Your authentication key from the provider. Some services (e.g., Bing, SearXNG) may work without one or use a different auth method. |
| Result count | How many search results to fetch and inject into context. More results give the model more information but consume more tokens. |
| Depth | For services like Tavily and LinkUp, controls whether to perform a shallow or deep crawl of results. |
| Language | Restricts results to a specific language. Useful for SearXNG and some other services. |
| Include / exclude domains | Available on select services to whitelist or blacklist specific websites. |
| Safe search | Enables content filtering where supported. |
How Search Results Are Injected
When you send a message with web search enabled, Rikka follows this flow:- The
search_webtool is registered with the model alongside your message. - If the model decides to search, it emits a tool call with a
queryparameter. - Rikka calls the active search service with that query and the configured result count.
- The results — including titles, URLs, and text snippets — are returned to the model as tool output.
- Some services also support a
scrape_webtool call that lets the model fetch the full content of individual pages. - The model integrates the results into its final response.
The search step happens silently in the background. A processing status message appears briefly in the chat list while Rikka is fetching results. The tool call and its output are visible in the chain-of-thought section if your model exposes reasoning steps.
The Dedicated Search Page
In addition to per-message web search, Rikka has a full-screen Search page for research-oriented sessions. Open the history drawer and tap the Search icon (magnifying glass) in the drawer actions row. The Search page provides:- A persistent search bar that lets you type a query and retrieve web results directly.
- Result cards showing the title, a text snippet, and the source URL.
- Tap any result card to open that URL or use it as context in a new chat.
Custom JS Search Service
If none of the built-in services fit your needs, use the Custom JS option to write your own search logic.scrape(urls) function to implement custom page extraction. Rikka’s sandboxed environment provides a synchronous fetch() helper — no async/await is needed.