Skip to content

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 extended is lowered to extended.

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.

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:

.telem/telem.json
{
"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.

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.

Was this page helpful?