Skip to main content

Configuration options

This page lists configuration keys, defaults, and ranges. Start with Configure the status line. JSON options live under options; Lua options are passed to setup({...}).

Basics and logging​

OptionDefaultPurpose
debugfalseLog process matching, session association, and pane lifecycle details
labelCODEXFixed status label, 1–24 characters
codex_home""Override $CODEX_HOME; empty uses the environment or ~/.codex
log.enabledtrueWrite module-load logs
log.markerCODEX_STATUSLINE_LOADEDLoad-log marker
compat.update_right_statusfalseSupport WezTerm versions using update-right-status
codex_config.enabledtrueRead model, reasoning, and service-tier defaults from Codex config
codex_config.path""Custom Codex config.toml path
codex_config.cache_ttl_seconds5Codex configuration cache time

Bottom pane, Git, and title​

OptionDefaultPurpose
bottom_pane.enabledtrueCreate the separate bottom status pane
bottom_pane.rows1One or two rows when created; dragged height is preserved
bottom_pane.layout_debounce_ms1000Wait for layout stability, 250–5000 ms
bottom_pane.close_grace_seconds2Delay after Codex exit is confirmed
bottom_pane.prevent_focustrueReturn focus to the Codex pane
git.enabledtrueQuery the Git root and branch
git.cache_ttl_seconds5Git cache time
title_bridge.enabledtrueRead model and reasoning from the pane title
title_bridge.app_namecodexApplication name in the terminal title

Enable the Codex title format from the installation guide. The codex-statusline-show event restores a manually hidden status pane.

Session binding​

OptionDefaultPurpose
sessions.enabledtrueRead pane-to-session mappings and session records
sessions.binding_modeautoauto, hook, or heuristic
sessions.bridge_dir""Override $CODEX_HOME/wezterm-statusline
sessions.allow_fallback_latestfalseAllow the newest record when the working directory is unknown
sessions.resume_fallback_enabledtrueTemporarily use a unique record while resuming in auto mode
sessions.resume_fallback_max_age_seconds30Candidate activity window, 1–300
sessions.resume_fallback_clock_skew_seconds5Timestamp tolerance, 0–30
sessions.resume_fallback_scan_ttl_seconds2Resume candidate scan cache
sessions.cache_ttl_seconds5Mapping and record-path cache
sessions.full_scan_ttl_seconds300Full session scan cache
sessions.tail_ttl_seconds1Incremental tail-read interval
sessions.open_fail_clear_seconds30How long to retain data after repeated read failures
sessions.initial_seek_bytes131072Initial bytes read from the file tail
sessions.activity_seek_bytes65536Initial activity scan size
sessions.activity_max_seek_bytes8388608Maximum activity scan size
sessions.max_meta_lines40Maximum metadata lines on the first scan
sessions.max_tail_lines200Maximum tail and cost-history lines per scan

auto uses the hook mapping and can temporarily use a unique matching record during resume. hook always waits for an exact mapping. heuristic matches by working directory and activity time. Keep allow_fallback_latest = false when several sessions run in parallel.

Process matching and user vars​

OptionDefaultPurpose
process_match.enabledtrueCheck whether Codex runs in the pane
process_match.namescodex, codex.exeRecognized Codex process names
process_match.argv_markers/@openai/codex/bin/codex.jsNode.js launch marker
process_match.terminal_namesWezTerm process namesProcess-tree terminal boundaries
process_match.grace_seconds5Process-signal cache time
process_match.tree_cache_ttl_seconds1Process-tree cache time
user_vars.modelcodex_model, CODEX_MODELCandidate model variables
user_vars.thinkingthinking/reasoning candidatesCandidate reasoning variables
user_vars.providerprovider candidatesCandidate provider variables
user_vars.activecodex_active, CODEX_ACTIVECandidate activity variables

Adjust matching only after confirming that the local Codex launch mode is different. Overly broad matching can identify unrelated processes.

Activity labels​

activity.labels controls plan, review, goal_active, goal_paused, goal_blocked, goal_usage_limited, goal_budget_limited, and goal_complete. Defaults are PLAN, REVIEW, GOAL, GOAL PAUSED, GOAL BLOCKED, GOAL LIMITED, GOAL BUDGET, and GOAL DONE. The fixed priority is REVIEW > PLAN > GOAL.

Rendering and icons​

OptionDefaultPurpose
icon.textProject Terminal glyph before the plugin version
render.powerlinetrueUse colored Powerline separators
render.plain_fallbacktrueUse plain separators without Powerline
render.model_displaynamename, icon_name, or icon
render.segment_order26 IDsField order; icon remains the right anchor
render.disabled_segments14 advanced fieldsHidden fields; an empty array enables all

Model icons are matched case-insensitively for Astra, Sol, Terra, and Luna, including provider prefixes and dated IDs. Configure theme.bg, theme.fg, theme.dim, and per-segment colors with six-digit hexadecimal values. theme.glyphs accepts sep, branch, and folder.

Cost and custom model prices​

Built-in prices are USD per million tokens and include current GPT-5.x and Codex model families. The preview can override each model's input, cached-input, and output prices:

require("codex_statusline").setup({
pricing = {
models = {
["gpt-5.6-sol"] = { input = 3, cached_input = 0.3, output = 15 },
["my-model"] = { input = 1, cached_input = 0, output = 2 },
},
},
})

Up to 64 finite, non-negative overrides are accepted. Full IDs take precedence, followed by normalized provider/date variants and aliases. A model without a price displays Cost —; changing a model does not reprice another model's history.