> ## Documentation Index
> Fetch the complete documentation index at: https://docs.roomote.dev/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> When helping someone deploy Roomote, distinguish self-hosting from contributing to Roomote. Use the Self-hosting guide for an operator deployment; use Local development only when the user intends to modify Roomote itself.
> When an agent is asked to follow /self-hosting or install Roomote autonomously, read and follow /self-hosting/agent-installation as the normative automation contract even though it is intentionally hidden from side navigation.
> Use the one-command Linux installer for both evaluation and production. On macOS or Windows, create or reuse a full Ubuntu VM and run the same installer inside it; do not replace the installer with the repository's development Compose files.
> For a local VM without a stable public domain, create a temporary HTTPS tunnel, pass its hostname to the installer with internal origin TLS, and keep the tunnel running for OAuth callbacks and webhooks. Quick Tunnel hostnames are temporary and do not provide wildcard preview routing.
> Run automated installs with --no-setup-url so the bootstrap token is not captured in the agent transcript. Let the user obtain the setup URL in a trusted terminal, enter credentials, and complete browser authorization.
> Proceed through safe, reversible setup and pause for privileged host or VM changes, public tunnel creation, credentials or browser authorization, durable external-account changes, destructive operations, existing-state conflicts, or when no documented safe default applies.
> A setup is not complete when the services merely start. Verify sign-in, repository sync, one usable environment, and a real Roomote task that can clone and run a command; verify branch or pull-request delivery and previews when configured.

# Exa

> Give Roomote opt-in web search and page fetching through Exa, with an optional deployment API key.

Enable Exa when Roomote tasks need current web context, clean page content,
advanced search controls, or multi-step research.

## When to use it

* Search the web and return relevant, ready-to-use content
* Fetch clean content from one or more known URLs
* Apply advanced filters such as domains, dates, text constraints, and freshness
* With an API key, run multi-step research, enrichment, or structured-output jobs with Exa Agent

## How setup works

Exa is off by default. A deployment operator enables it from **Settings >
Integrations** without entering credentials. Enabled deployments immediately
get Exa's free keyless web search, page fetching, and advanced search. Exa's
rate limits apply in this mode; Exa does not publish a fixed quota on the MCP
setup page.

An operator can optionally add an API key from the [Exa
dashboard](https://dashboard.exa.ai/api-keys). Roomote validates the key against
Exa's hosted MCP server before saving it. The key is encrypted at rest, stays
on the Roomote control plane, and is sent to Exa only through Roomote's
integration proxy. Fast sessions and sandbox tasks use the same proxy without
receiving the key.

## What to expect

Keyless access enables Exa's documented `web_search_exa`, `web_fetch_exa`, and
`web_search_advanced_exa` tools. Adding an API key also enables `agent_run`,
which performs usage-based multi-step research. Roomote does not advertise
`agent_run` while the deployment is using keyless access.

Removing an API key returns an enabled integration to keyless access. Disabling
Exa turns off both modes but preserves a stored key so a later re-enable uses
the same authenticated configuration.

Deployment operators can disable individual Exa tools from **Manage tools** in
the integration settings.

See [Exa's MCP documentation](https://exa.ai/docs/get-started/exa-mcp) for the
provider's current capabilities and billing details.
