Summary
Fix markdown table border rendering where box-drawing characters appear disconnected/broken instead of forming clean connected lines.
Problem
Currently, OpenCode renders markdown tables with box-drawing characters (┌│┐─┼) via Glamour. However, these characters render as disconnected segments in many terminal environments, making tables very difficult to read.
Current Rendering (Broken/Disconnected)

The box-drawing characters appear as separate fragments:
┌ ─ ─ ─ ┬ ─ ─ ─ ┐
│ │ │
├ ─ ─ ─ ┼ ─ ─ ─ ┤
Instead of properly connected lines like this:
┌───────┬───────┐
│ │ │
├───────┼───────┤
Desired: Rich-style Connected Borders
Python's Rich library renders tables with properly connected borders that look clean:
┌─────────┬──────┬─────────┐
│ Name │ Age │ Status │
├─────────┼──────┼─────────┤
│ Alice │ 30 │ Active │
│ Bob │ 25 │ Pending │
└─────────┴──────┴─────────┘
Root Cause Analysis
This appears to be related to how Glamour renders table borders - possibly:
- Character spacing issues between box-drawing characters
- Font rendering inconsistencies with Unicode box-drawing
- ANSI escape sequence handling that breaks character connections
Proposed Solutions
Option 1: Fix Glamour Integration
Ensure box-drawing characters are rendered adjacently without spacing issues.
Option 2: Alternative Table Renderer
Consider using a table rendering approach similar to:
- Rich (Python) - uses
rich.table.Table with proper border handling
- Lipgloss tables - Charm's Go library with proper border rendering
Option 3: Configuration Option
Add a tui.table_renderer option:
{
"$schema": "https://opencode.ai/config.json",
"tui": {
"table_renderer": "rich" // or "glamour", "lipgloss"
}
}
Use Cases
- Data-heavy workflows: DevOps/SA work involves many comparison tables
- Readability: Connected borders are essential for distinguishing columns
- Professional output: Current broken rendering looks unprofessional
Environment
- OpenCode version: Latest
- OS: macOS
- Terminal: Various (WezTerm, iTerm2, etc.)
- The issue persists across different terminal emulators
References
Additional Context
This significantly impacts user experience when working with LLM outputs containing structured data tables. The disconnected borders make it hard to follow rows and columns, especially in multi-column tables.
Summary
Fix markdown table border rendering where box-drawing characters appear disconnected/broken instead of forming clean connected lines.
Problem
Currently, OpenCode renders markdown tables with box-drawing characters (
┌│┐─┼) via Glamour. However, these characters render as disconnected segments in many terminal environments, making tables very difficult to read.Current Rendering (Broken/Disconnected)
The box-drawing characters appear as separate fragments:
Instead of properly connected lines like this:
Desired: Rich-style Connected Borders
Python's Rich library renders tables with properly connected borders that look clean:
Root Cause Analysis
This appears to be related to how Glamour renders table borders - possibly:
Proposed Solutions
Option 1: Fix Glamour Integration
Ensure box-drawing characters are rendered adjacently without spacing issues.
Option 2: Alternative Table Renderer
Consider using a table rendering approach similar to:
rich.table.Tablewith proper border handlingOption 3: Configuration Option
Add a
tui.table_rendereroption:{ "$schema": "https://opencode.ai/config.json", "tui": { "table_renderer": "rich" // or "glamour", "lipgloss" } }Use Cases
Environment
References
Additional Context
This significantly impacts user experience when working with LLM outputs containing structured data tables. The disconnected borders make it hard to follow rows and columns, especially in multi-column tables.