Skip to content

Coding agents

Telem adds web search, page reading and monitors to Muse CLI. The tools come from Telem’s hosted MCP server. A Telem hook sends your options with each search, and records why Muse searched when the model gives reasoning summaries.

Node.js 20 or later, on the PATH of the shell that runs muse. The installer checks for it and offers to install it. The hook runs on it.

Create a Telem API key

  1. Open your project
  2. API keys
  3. Issue API key

tlm_••••••••••••••••Keys start with tlm_.

Open the console

Never paste a key into a chat with Muse. Every path below sets it for you.

Connect Muse to Telem

  1. Run the installer in your terminal and pick Muse CLI. Paste your key when the installer asks. The field is masked, and the key never appears on screen. The installer also asks whether to turn off Muse’s own web search.

    Terminal window
    curl -fsSL https://docs.telem.ai/install.sh | sh
  2. Start a new Muse session. Muse reads its settings when a session starts.

  3. Check the install. telem is in the list of your skills. Then ask Muse to search the web: the search shows in the console.

    Terminal window
    muse skills list --source user
Install with no prompts, for example in CI
Terminal window
curl -fsSL https://docs.telem.ai/install.sh | sh -s -- --yes --client muse --key-env TELEM_API_KEY

With --yes, Muse’s own web search stays on. Add --muse-disable-web-search to turn it off too.

Search and read

4 tools
  • telem_search Searches the web on several providers in one call.
  • telem_fetch Reads the full text of up to 5 pages.
  • telem_providers Lists the search providers.
  • telem_session_history Lists the earlier searches in a session.

Monitors

4 tools
  • create_monitor Runs a search on a schedule and keeps only new results.
  • list_monitors Lists your monitors.
  • get_new_results Gets the new results of a monitor since the last read.
  • delete_monitor Deletes a monitor.

Muse runs the search and read tools without asking, also in muse exec. It asks before create_monitor, get_new_results and delete_monitor, because they change your monitors.

  • Options come from the file, not your shell. Muse does not give your shell’s environment to the hook, so the TELEM_* variables do not apply. Put your options in .telem/telem.json: the project file, then ~/.telem/telem.json. The hook sends them with every search and page read, the fetch keys included. providerOverrides is not sent. The hook reads the project file even in a workspace that Muse does not trust.
  • Why Muse searched. The hook sends the reasoning summary that led to each search. Some models give their reasoning only in encrypted form. Then the hook sends the text Muse wrote before the search, if there is any.
  • Muse’s own web search. If you say yes, the installer sets { "tools": { "web_search": { "mode": "off" } } } in Muse’s settings. This turns off both Muse’s web_search and its web_fetch.
  • The Muse app. The app has no installer. Ask Muse to add Telem as a custom connector, for example: “Set up the Telem MCP server at https://mcp.telem.ai/mcp as a custom connector.” When Muse asks for the API key, give it your key.
  • The tool names in Muse are mcp__telem__telem_search, mcp__telem__telem_fetch and so on.
If something goes wrong
  • 401 on every call: the server’s Authorization header is missing or has an old key. Run the installer again, or edit the header. Muse reports “authentication failed” for any refused connection. With a valid key, the telem entry needs a User-Agent header, such as "User-Agent": "telem-muse"; the installer writes one.
  • Searches show without their session or reasoning: node is not on the PATH of the shell that runs muse. The search still runs, without lineage.
  • No Telem tools, or no MCP tools at all: a header that names an unset variable, such as "Bearer ${TELEM_API_KEY}", turns off every MCP server with no error. Write the key itself. A settings file with both an mcpServers and an mcp_servers block also runs with no MCP servers: keep mcpServers.
  • Muse stops the whole run when Telem cannot be reached: the telem entry is missing "mode": "optional".

To update, run the installer again. It rewrites the hook and the skill when they changed. You can keep the key you already have.

To remove Telem, take these out of ~/.config/muse/settings.json:

  • the telem entry under mcpServers;
  • the Telem handler under hooks.PreToolUse (its command runs telem-muse.mjs);
  • tools.web_search.mode, if the installer set it and you want Muse’s own web search back.

Then delete the telem and skills/telem folders in ~/.config/muse/, and start a new Muse session. Muse then has no Telem tools or skill, and its own web search is back if you removed the setting.

What the installer changed outside Muse’s settings
File What it holds To undo
~/.telem/credentials.json Your key Delete it if no other Telem integration uses it.
~/.telem/telem.json Your Telem options Delete it if no other Telem integration uses it.
Configuration

Set the tier, the providers and auto-routing in one file, for Muse and your other agents.

Parameters

Every option, the values it takes, and which setting wins.

Search parameters

What each search option does, from tiers to date windows.

Fetch parameters

Choose the fetch provider and tier, or read pages live.

Was this page helpful?