Codex desktop pre-injects too much skill/plugin/tool metadata into every new chat
Codex desktop starts fresh chats with very high fixed context usage even when the first user message is trivial, for example just hello.
After local investigation, the main issue appears to be prompt assembly at chat startup:
- Runtime includes a
skills_instructionsblock with## Skills,### Available skills, and### How to use skills. - Skill metadata for many local, bundled, and plugin-provided skills appears to be injected into every chat.
- Tool schemas for many unused capabilities also appear to be injected by default, including heavy app/tool bundles unrelated to the current task.
- Project
AGENTS.mdand local custom skills matter, but they are not the primary source of the fixed overhead.
What I verified locally:
- Removing many low-frequency local skills reduced fresh-chat usage only from about
31kto28k. - Disabling several plugins also helped only slightly.
- This suggests the dominant cost is still host-level prompt and tool injection, not repo instructions alone.
Evidence sources:
- Archived local sessions contain a developer prompt block with
skills_instructionsandAvailable skills. - Public issues already suggest runtime has a distinct
Available skillsinjection path: - #15136
- #20629
- Official docs confirm plugins can include skills and workflow guidance, which likely contributes to runtime metadata injection:
- https://openai.com/academy/codex-plugins-and-skills/
- https://help.openai.com/nl-nl/articles/20001256-plugins-in-codex
Requested improvements:
- Do not pre-inject the full skill list into every chat.
Use lazy discovery via tool_search or a runtime index when needed.
- Do not expose heavy tool schemas by default in coding-only chats.
Especially app/tool bundles unrelated to the current task.
- Add runtime profiles such as:
coding-lightcoding-fullresearchdesign
- Shorten injected skill metadata aggressively.
If full lazy loading is not possible yet, reduce descriptions to minimal summaries.
- Show a context usage breakdown in the app.
For example: system prompt, developer prompt, tools, skills, and project instructions.
Expected outcome:
A fresh coding chat with a trivial first message should not start with such a large fixed context cost. Most of this appears avoidable through lazy loading and profile-based capability exposure.