Feature: full-grid table borders (row separators) in TUI markdown renderer
What variant of Codex are you using?
CLI (TUI), version 0.131.0-alpha.9, macOS arm64
What feature would you like to see?
Add an option to draw a horizontal separator between every row in TUI markdown tables, not only between the header and the body.
Today render_table_lines() in codex-rs/tui/src/markdown_render.rs emits:
┌─────┬─────┐
│ H1 │ H2 │
├─────┼─────┤ ← only separator
│ a │ b │
│ c │ d │
│ e │ f │
└─────┴─────┘
I would like a "full grid" mode where each row is separated:
┌─────┬─────┐
│ H1 │ H2 │
├─────┼─────┤
│ a │ b │
├─────┼─────┤
│ c │ d │
├─────┼─────┤
│ e │ f │
└─────┴─────┘
Why this matters
- When cells contain multi-line content (wrapped links,
<br>, long inline code), it becomes hard to tell where one row ends and the next begins without a divider. - Many readers (Claude Code TUI,
tabulate(..., tablefmt="grid"), most SQL CLIs in "grid" mode,tty-table) draw per-row dividers by default, so users coming from those tools expect the same. - It's a pure rendering choice — the underlying data parsing in PR #22052 already supports it; only the border emission loop needs to add
├─┼─┤after each body row.
Suggested API
A new [tui] config key in ~/.codex/config.toml:
[tui]
table_row_separator = "header_only" # default, current behavior
# or
table_row_separator = "always" # full-grid style
Three values would also be reasonable: "none" (ASCII-only), "header_only", "always".
Scope
- Touch only
render_table_lines()and add a config field. - Narrow-pane vertical fallback path is unaffected.
- Fenced code blocks with
|are unaffected (they don't go through this renderer).
Additional information
Related PR: #22052 (responsive markdown tables in TUI, merged 2026-05-10).
Related closed issues: #22015, #15449, #14308, #8259, #1246.
Happy to send a PR if the team is open to this — the change is ~10 lines plus a config field and a snapshot test.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗