Skip to content

Markdown Rendering

Assistant messages render with full markdown support — structured, readable output instead of plain text.

Supported Syntax

  • Bold and italic text
  • inline code spans
  • Fenced code blocks with syntax highlighting
  • Ordered and unordered lists
  • Links (tappable, opens in browser)
  • Blockquotes
  • Tables
  • Horizontal rules
  • Headings (levels 1-6)

Code Blocks

Code blocks include:

  • Syntax highlighting — language-aware coloring via the Highlights library with Atom theme (auto-switches between dark and light mode)
  • Language label when specified in the fence
  • Monospace font for readability
  • Horizontal scrolling for long lines

Rich Cards

When an agent or skill has something structured to show — an approval prompt, a link preview, a calendar entry, a weather snapshot — the phone renders it as an inline card instead of plain markdown. Cards appear between the assistant's prose and any attached files, with:

  • A colored accent stripe on the leading edge (blue = info, green = success, amber = warning, red = danger)
  • A type icon (shield for approvals, globe for links, calendar, sun, sparkle for generic skill output)
  • Title, subtitle, markdown body, and label/value fields — the body supports the same markdown syntax as message bubbles
  • Action buttons you can tap to respond (for example, an approval_request card asking "Run shell command?" shows Allow in primary style and Deny in danger style)

After you tap an action the button row collapses into a "Chose: Allow" confirmation, so a session reload from history doesn't re-prompt you. Unknown card types — ones added after your phone build — still render cleanly via a generic fallback (title + body + fields + actions), so updates to the agent side never break your scrollback.

How It Works

The app uses Multiplatform Markdown Renderer — a Compose-native renderer that maps markdown elements to Compose text styles and layouts. User messages render as plain text.

Settings

Markdown rendering is always enabled for assistant messages. There is no toggle — plain text would make most responses harder to read.