Summary
After updating Codex CLI to 0.133.0, typing $ in the composer shows hundreds of unrelated ChatGPT App directory entries that are not installed or accessible. The UI makes these entries look invokable, but they are not exposed to the model as usable tools, which causes the assistant to interpret selected app mentions as ordinary text or user shorthand.
Environment
- Codex CLI:
codex-cli 0.133.0
- OS: Windows / PowerShell
- Feature state:
codex features list shows apps as stable true
- Local config did not explicitly enable
features.apps; only unrelated feature flags are set in ~/.codex/config.toml
Reproduction
- Update/restart Codex CLI.
- In the composer, type
$.
- Observe many unrelated app entries such as:
% Arabica UAE
1-2-3-Cook!
U.S. Secret Service Careers
- Select or type one of those app entries in a chat.
- The assistant does not have a usable corresponding tool/app namespace and may treat it as plain text, creating confusion.
Local evidence
Codex created a cache file at:
~/.codex/cache/codex_app_directory/5cb0a9bbb3218f231d0ee74e4c1e917d404d3dda.json
That cache contains 1251 connector/app-directory entries.
Sample cached entry:
{
"id": "asdk_app_69b205070d0c8191aeefe2b39229fb53",
"name": "U.S. Secret Service Careers",
"description": "Find U.S. Secret Service jobs",
"distributionChannel": "ECOSYSTEM_DIRECTORY",
"installUrl": "https://chatgpt.com/apps/u-s--secret-service-careers/asdk_app_69b205070d0c8191aeefe2b39229fb53",
"isAccessible": false,
"isEnabled": true
}
Counts from the same cache:
connectorsCount=1251
accessibleTrue=0
accessibleFalse=1251
ecosystemDirectory=1224
The selected app mention also appears in Codex history as an app URI, for example:
[$u-s--secret-service-careers](app://asdk_app_69b205070d0c8191aeefe2b39229fb53)
Expected behavior
The $ picker should either:
- show only installed/accessible/usable apps by default, or
- clearly separate directory suggestions from available tools/apps, or
- pass explicit metadata to the model that the selected app is a directory listing and is not installed/accessible.
Actual behavior
The composer presents inaccessible directory entries alongside usable mentions, making them appear installed/invokable. The model does not receive a usable tool for those entries, so the interaction can degrade into a confusing plain-text prompt.
Why this matters
This looks like an installed-tool surface to the user, but it behaves like a global app-directory autocomplete. It is especially confusing in Codex because $ is also used as a command/skill/app discovery affordance, and the assistant cannot reliably distinguish inaccessible app-directory selections from user text.
Summary
After updating Codex CLI to 0.133.0, typing
$in the composer shows hundreds of unrelated ChatGPT App directory entries that are not installed or accessible. The UI makes these entries look invokable, but they are not exposed to the model as usable tools, which causes the assistant to interpret selected app mentions as ordinary text or user shorthand.Environment
codex-cli 0.133.0codex features listshowsappsasstable truefeatures.apps; only unrelated feature flags are set in~/.codex/config.tomlReproduction
$.% Arabica UAE1-2-3-Cook!U.S. Secret Service CareersLocal evidence
Codex created a cache file at:
That cache contains
1251connector/app-directory entries.Sample cached entry:
{ "id": "asdk_app_69b205070d0c8191aeefe2b39229fb53", "name": "U.S. Secret Service Careers", "description": "Find U.S. Secret Service jobs", "distributionChannel": "ECOSYSTEM_DIRECTORY", "installUrl": "https://chatgpt.com/apps/u-s--secret-service-careers/asdk_app_69b205070d0c8191aeefe2b39229fb53", "isAccessible": false, "isEnabled": true }Counts from the same cache:
The selected app mention also appears in Codex history as an app URI, for example:
Expected behavior
The
$picker should either:Actual behavior
The composer presents inaccessible directory entries alongside usable mentions, making them appear installed/invokable. The model does not receive a usable tool for those entries, so the interaction can degrade into a confusing plain-text prompt.
Why this matters
This looks like an installed-tool surface to the user, but it behaves like a global app-directory autocomplete. It is especially confusing in Codex because
$is also used as a command/skill/app discovery affordance, and the assistant cannot reliably distinguish inaccessible app-directory selections from user text.