Integrations
Configuration
Every Telem integration takes the same options. This page shows where each agent, SDK and the MCP server reads them, and in what order.
Set the same options, auto-routing included, and every integration sends the same request to Telem. Only the place where you set them is different. There are two exceptions:
- If no file, variable or header sets
autoRouting, the MCP server routes (accuracy), and so Claude Code and Codex do too. The other integrations do not. - On the MCP server, and so in Claude Code and Codex, a fetch tier above
extendedis lowered toextended.
The options
Section titled “The options”Most integrations read the same keys, from a file or from environment variables. The MCP server reads them from headers on the connection.
| Option | In .telem/telem.json |
Environment variable | MCP server header |
|---|---|---|---|
| Search tier | tier |
TELEM_TIER |
X-Telem-Tier |
| Only these providers | providersInclude |
TELEM_PROVIDERS_INCLUDE |
X-Telem-Providers-Include |
| Never these providers | providersExclude |
TELEM_PROVIDERS_EXCLUDE |
X-Telem-Providers-Exclude |
| Auto-routing | autoRouting |
TELEM_AUTO_ROUTING |
X-Telem-Auto-Routing |
| Fetch providers | fetchProviders |
TELEM_FETCH_PROVIDERS |
X-Telem-Fetch-Providers |
| Fetch tier | fetchTier |
TELEM_FETCH_TIER |
X-Telem-Fetch-Tier |
| Read pages live | fetchNoCache |
TELEM_FETCH_NO_CACHE |
X-Telem-Fetch-No-Cache (1) |
When a provider is in both lists, it is left out. If no provider is left, the search is refused (on the MCP server, the connection is). Every key, and what each one does, is on Parameters.
The shared file
Section titled “The shared file”Most integrations read .telem/telem.json. Put one in your project to share options
with everyone who works on it, and one in your home folder for yourself:
{ "tier": "extended", "autoRouting": "accuracy", "fetchTier": "extended"}For each key, the project file wins over ~/.telem/telem.json, and the file wins over
the environment variable. TELEM_AUTO_ROUTING is the one exception: it wins over both
files, and over the OpenCode options object, the DeepSeek Harness row config and the
OpenClaw plugin config. An edit to a .telem/telem.json file takes effect on the next
call, with no restart. An SDK client reads the variables when you create it. See
Precedence.
Where each integration reads them
Section titled “Where each integration reads them”The first place listed wins, except for TELEM_AUTO_ROUTING (above).
| Integration | Reads options from | Different here |
|---|---|---|
| Claude Code, Codex | The project file, ~/.telem/telem.json, then variables. The plugin’s hook sends them with each call. |
No providerOverrides. Set options in a file: it is not yet confirmed that these hosts pass your shell’s variables to the hook. In Codex, the installer also sets X-Telem-Auto-Routing in ~/.codex/config.toml; a file or variable wins over it. |
| Grok Build | The project file, ~/.telem/telem.json, then variables. The hook sends them with each call. |
Only in a folder you trust: in other folders the hook does not run, so no options are sent. No providerOverrides. The installer also sets X-Telem-Auto-Routing in ~/.grok/config.toml; a file or variable wins over it. |
| Muse | The project file, then ~/.telem/telem.json. The hook sends them with each call. |
No TELEM_* variables: Muse does not give your shell’s environment to the hook. No providerOverrides. |
| VS Code | The project file, ~/.telem/telem.json, then variables. The plugin’s hook sends them with each call. |
No providerOverrides. Set options in a file: it is not yet confirmed that Copilot passes your shell’s variables to the hook. The installer also sets X-Telem-Auto-Routing in ~/.copilot/mcp-config.json; a file or variable wins over it. |
| Cursor | The project file, ~/.telem/telem.json, then variables. The hook sends them with each call. |
The project file is the one in the first folder open in Cursor. No providerOverrides. Set options in a file: it is not yet confirmed that Cursor passes your shell’s variables to the hook. Cursor’s cloud agents do not run the hook. The installer also sets X-Telem-Auto-Routing in ~/.cursor/mcp.json; a file or variable wins over it. |
| Devin Desktop | The project file, ~/.telem/telem.json, then variables. The hook sends them with each call. |
Only in a folder you trust: in Restricted Mode the hook does not run. No providerOverrides. Set options in a file: it is not yet confirmed that Devin passes your shell’s variables to the hook. The installer also sets X-Telem-Auto-Routing in ~/.config/devin/mcp_config.json; a file or variable wins over it. |
| OpenCode | The options object in your OpenCode config (opencode.json or opencode.jsonc), the project file, ~/.telem/telem.json, then variables. |
Restart OpenCode after you change the options object. Two older files, .opencode/telem.json and ~/.config/opencode/telem.json, are still read, after the project file and before ~/.telem/telem.json. |
| Pi | The project file, ~/.telem/telem.json, then variables. |
The extension reads the project’s files only in a trusted project. It still reads two older files, .pi/telem.json and ~/.config/pi/telem.json, after the project file and before ~/.telem/telem.json. The skill’s scripts read the project file in any folder. |
| OpenClaw | The OpenClaw plugin config, then variables. | No .telem/telem.json and no providerOverrides. TELEM_AUTO_ROUTING wins over the plugin config. |
| DeepSeek Harness | The plugin’s row config, the project file, ~/.telem/telem.json, then variables. |
The row config is read when DeepSeek Harness loads the plugin. |
| Hermes | The project file, ~/.telem/telem.json, then variables. |
The project is the Hermes terminal’s working folder. If that is not set or no longer exists, it is the folder Hermes runs in. |
| MCP server | Headers on the connection. | The settings apply to the whole connection, not to a project. |
| Python SDK | Call arguments, client options (search only), then variables. | Reads .telem/telem.json only when you call telem.resolve_search_options() or telem.resolve_fetch_options(). |
| JavaScript SDK | Call options, client options (search only), then variables. | Never reads .telem/telem.json. |
| Agent skill | The request that the agent writes. | No options file. |
No tool has a parameter for these options, so the model does not choose them. On the
MCP server, the tools carry a telem_bridge field for the plugin hooks, and its
description tells the model never to set it.
Next steps
Section titled “Next steps”- Parameters: every key, its variable and how the levels combine
- Auto-routing: let Telem choose the providers for each search
- Fetch parameters: what each fetch option does