<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/setting-the-status-line-for-all-projects-in-codex-e97wwe5c4" -->

---
title: Setting the status line for all projects in Codex
description: Comparing how Claude Code, Codex, and opencode let you customize the terminal status line, focusing on Codex's config.toml approach. Codex only accepts an...
canonical: https://daily.dev/posts/setting-the-status-line-for-all-projects-in-codex-e97wwe5c4
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Setting the status line for all projects in Codex | daily.dev
og:description: Comparing how Claude Code, Codex, and opencode let you customize the terminal status line, focusing on Codex's config.toml approach. Codex only accepts an...
og:url: https://daily.dev/posts/setting-the-status-line-for-all-projects-in-codex-e97wwe5c4
og:image: https://api.daily.dev/og/posts/e97Wwe5C4.png
og:image:alt: Setting the status line for all projects in Codex
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Setting the status line for all projects in Codex

**[RUBYLAND](https://daily.dev/sources/rubyla)** · 3 min read · 0 upvotes · 0 comments

## Summary

Comparing how Claude Code, Codex, and opencode let you customize the terminal status line, focusing on Codex's config.toml approach. Codex only accepts an ordered list of built-in item identifiers rather than a custom script or command, unlike Claude Code which accepts any executable. The 26 valid identifiers (like model-with-reasoning, git-branch, context-used) are undocumented in the official config reference and were found by digging through Codex's Rust source code at version 0.146.1. Testing showed that codex doctor does not validate these identifiers - a made-up name like totally-bogus-item passes the config check without error, so the only reliable verification is visually checking the rendered status line.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://allaboutcoding.ghinda.com/setting-the-status-line-for-all-projects-in-codex>

## Questions this post answers

### What are the valid status_line item names for Codex's config.toml in version 0.146.1?

Codex version 0.146.1 supports 26 built-in status line identifiers found in its source code: approval-mode, branch-changes, codex-version, context-remaining, context-used, context-window-size, current-dir, fast-mode, five-hour-limit, git-branch, model, model-with-reasoning, permissions, project-name, pull-request-number, raw-output, reasoning, run-state, task-progress, thread-id, thread-title, total-input-tokens, total-output-tokens, used-tokens, weekly-limit, and workspace-headline. These are not listed in the official config documentation.

_Track undocumented CLI config details like these Codex status-line identifiers by following coding-agent tooling on daily.dev._

### Does codex doctor validate the status_line item names in config.toml?

No, running codex doctor --summary does not catch invalid status_line identifiers. Setting status_line to include a made-up name like totally-bogus-item in config.toml still causes the doctor command's configuration check to report the config as loaded successfully, with no error flagged for the unrecognized item. Verify status line entries visually instead of relying on the doctor command.

_Developers debugging Codex TUI configs can compare notes on quirks like this via daily.dev._

### Can I use a custom script or command for the status line in Codex like I can in Claude Code?

No, Codex only lets you choose from a fixed, ordered list of built-in status line item identifiers set under [tui] status_line in config.toml, with no option to run a custom script or command. Claude Code, by contrast, accepts any executable command via the statusLine setting in ~/.claude/settings.json, allowing arbitrary processing such as reading session data.

_Comparing CLI coding agent customization options like this is easier when following vibes-focused updates on daily.dev._

## Similar posts on daily.dev

- [You can use Ruby to set the status line in Claude Code](https://daily.dev/posts/you-can-use-ruby-to-set-the-status-line-in-claude-code-sfrwkngnq) · Random Thoughts about Building Software · 0 upvotes · 0 comments
- [Your Claude Code limits are hidden until they're not, and this script surfaces them on every message](https://daily.dev/posts/your-claude-code-limits-are-hidden-until-they-re-not-and-this-script-surfaces-them-on-every-message-dsisjwjut) · XDA Developers · 1 upvotes · 0 comments
- [Getting More Out of Claude Code in the Terminal](https://daily.dev/posts/getting-more-out-of-claude-code-in-the-terminal-o7xasutw7) · marmelab · 2 upvotes · 0 comments

---

Tags: [#cli](https://daily.dev/tags/cli), [#claude-code](https://daily.dev/tags/claude-code), [#openai-codex](https://daily.dev/tags/openai-codex), [#opencode](https://daily.dev/tags/opencode)

[View this post on daily.dev](https://daily.dev/posts/setting-the-status-line-for-all-projects-in-codex-e97wwe5c4)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Setting the status line for all projects in Codex","url":"https://daily.dev/posts/setting-the-status-line-for-all-projects-in-codex-e97wwe5c4","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/setting-the-status-line-for-all-projects-in-codex-e97wwe5c4"},"datePublished":"2026-08-20T10:55:48.602Z","dateModified":"2026-08-20T10:56:14.778Z","description":"Comparing how Claude Code, Codex, and opencode let you customize the terminal status line, focusing on Codex's config.toml approach. Codex only accepts an...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/fdb7a91eab1a43e50b273100ff8bcd5f?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/fdb7a91eab1a43e50b273100ff8bcd5f?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"RUBYLAND","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"RUBYLAND","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/rubyla","url":"https://daily.dev/sources/rubyla"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/setting-the-status-line-for-all-projects-in-codex-e97wwe5c4","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"cli,claude-code,openai-codex,opencode","timeRequired":"PT3M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"RUBYLAND","item":"https://daily.dev/sources/rubyla"},{"@type":"ListItem","position":3,"name":"Setting the status line for all projects in Codex"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/setting-the-status-line-for-all-projects-in-codex-e97wwe5c4#faq","mainEntity":[{"@type":"Question","name":"What are the valid status_line item names for Codex's config.toml in version 0.146.1?","acceptedAnswer":{"@type":"Answer","text":"Codex version 0.146.1 supports 26 built-in status line identifiers found in its source code: approval-mode, branch-changes, codex-version, context-remaining, context-used, context-window-size, current-dir, fast-mode, five-hour-limit, git-branch, model, model-with-reasoning, permissions, project-name, pull-request-number, raw-output, reasoning, run-state, task-progress, thread-id, thread-title, total-input-tokens, total-output-tokens, used-tokens, weekly-limit, and workspace-headline. These are not listed in the official config documentation. Track undocumented CLI config details like these Codex status-line identifiers by following coding-agent tooling on daily.dev."}},{"@type":"Question","name":"Does codex doctor validate the status_line item names in config.toml?","acceptedAnswer":{"@type":"Answer","text":"No, running codex doctor --summary does not catch invalid status_line identifiers. Setting status_line to include a made-up name like totally-bogus-item in config.toml still causes the doctor command's configuration check to report the config as loaded successfully, with no error flagged for the unrecognized item. Verify status line entries visually instead of relying on the doctor command. Developers debugging Codex TUI configs can compare notes on quirks like this via daily.dev."}},{"@type":"Question","name":"Can I use a custom script or command for the status line in Codex like I can in Claude Code?","acceptedAnswer":{"@type":"Answer","text":"No, Codex only lets you choose from a fixed, ordered list of built-in status line item identifiers set under [tui] status_line in config.toml, with no option to run a custom script or command. Claude Code, by contrast, accepts any executable command via the statusLine setting in ~/.claude/settings.json, allowing arbitrary processing such as reading session data. Comparing CLI coding agent customization options like this is easier when following vibes-focused updates on daily.dev."}}]}
```

