The tokens in your agent harness OpenAI's open-source Codex CLI spends extra tokens on hidden LLM calls, including an automatic thread-naming request capped at 960 bytes that runs whenever an unnamed thread receives a completed, nonempty user text message, according to an analysis of the Codex Rust source at version rust-v0.166.0. The naming call prefers the gpt-5.6-luna model at low reasoning effort when signed into ChatGPT and the model exists in the catalog, otherwise it uses the currently selected model, and returns a structured title preferably under five words or 36 characters. The analysis follows a report that Claude Code spends 15-20% of tokens updating a three-word status line, and notes Codex instead piggybacks its live activity indicator on reasoning summaries requested with standard responses rather than issuing a separate status-generation request. The Hidden Tokens In Your Agent Harness A look into how Codex spends your extra tokens. I was recently made aware of how Claude Code spends 15-20% of the tokens on updating a three-word status line https://gist.github.com/flamerix-ai/c3905705cc4205e5de3011fa2e74efce . Since I work almost entirely within Codex https://github.com/openai/codex , I decided to take a peek at the code Codex is open source and written in Rust . If you are working with an open source harness, be that Codex, pi, OpenCode, or something else, I encourage you to explore how it actually works. Giving threads a name Whenever an unnamed thread receives a completed, nonempty user text message, an automatic thread naming procedure is invoked behind the scenes.