Apps instructions refer to nonexistent `tools_search` tool name

Open 💬 1 comment Opened Aug 4, 2026 by bek91

Summary

The Codex Apps/Connectors instruction fragment refers to tools_search (plural), although the actual Codex tool is tool_search (singular).

Evidence

In codex-rs/core/src/context/apps_instructions.rs, the generated developer text says:

An installed app's MCP tools are either provided to you already, or can be lazy-loaded through the `tool_search` tool. If `tool_search` is available, the apps that are searchable by `tools_search` will be listed by it.

The Codex implementation and handler are named tool_search, including:

  • codex-rs/tools/src/tool_search.rs
  • codex-rs/core/src/tools/handlers/tool_search.rs
  • codex-rs/core/src/tools/handlers/tool_search_spec.rs

The same typo is present in the Apps instructions snapshot tests, so the current test fixture preserves it.

Impact

This is primarily a model-facing documentation/prompt defect. It introduces a reference to a tool name that does not match the actual tool name and may cause the model to look for or attempt to invoke tools_search. It also makes the Apps tool-discovery instructions internally inconsistent.

Expected behavior

The Apps instructions should use the actual tool name consistently:

If `tool_search` is available, the apps that are searchable by `tool_search` will be listed by it.

Suggested fix

  1. Replace tools_search with tool_search in codex-rs/core/src/context/apps_instructions.rs.
  2. Update the corresponding snapshot fixture.
  3. Add or retain a test that checks the generated Apps instructions use the canonical tool name.

Reproduction

  1. Run Codex with Apps/Connectors instructions enabled.
  2. Inspect the generated <apps_instructions> developer block.
  3. Observe tool_search in the first reference and tools_search in the second reference.

View original on GitHub ↗

1 Comment

ded-furby · 23 days ago

I can confirm the mismatch between tools_search and tool_search is still present in the Apps instructions snippet. Given this repo’s invitation-only contribution policy, I can help prepare a focused patch or test update once an invite is available.