← Reference

Rich rendering

What the GPU chat renders beyond plain text.

Full notes from the app

The agent's Markdown reply is parsed and drawn by Wingman's rich-text renderer — prose/headings/lists, syntax-highlighted fenced code, unified diff blocks, inline/display LaTeX math, inline images, chart blocks, mermaid diagrams, and tree file listings — each mounted as its own atom and cached so a long transcript stays smooth. GPU only — the Mission Control window is the sole frontend.

8 entries · kcode 0.4.0

8 shown
KindDescription
Markdown proseHeadings, paragraphs, lists, inline emphasis, and links — streamed incrementally as the reply arrives, with settled blocks reused so only the tail re-parses.
Syntax-highlighted codeFenced code blocks highlighted per language via tree-sitter, coloured by a fixed multi-colour syntax palette (distinct hues for keyword / string / number / comment / function / type / … — dark or light variant chosen by the theme background luminance, not collapsed onto the theme accent, so highlighting is never monochrome). Grammars: Rust, Python, JS, TS, C, C++, Go, Java, Lua, Ruby, Bash, JSON, YAML, TOML, CSS, HTML, Markdown; common aliases resolve (ts, py, rs, c++, sh, …). An unknown or untagged language falls back to plain monospace. Runs carry font attributes as well as colour — comments render italic, markdown headings bold, URLs underlined — and 100 tree-sitter capture scopes are recognised (the dotted families plus the older per-kind names several grammars still emit), so Lua control flow, TOML/YAML booleans, string escapes, shell interpolation and loop labels are coloured instead of falling through to plain text. Two extra hues beyond the shared set: builtin (a language's own names — self/this/None/primitive types — held louder than user identifiers) and escape (a \n set apart from its quotes).
DiffsA fenced diff block renders as a coloured unified diff: added/removed/context/hunk lines classified and tinted, the +/-/line-number gutter kept as chrome.
Math (LaTeX)Inline $…$ and display $$…$$ LaTeX typeset to a texture via math-view; the LaTeX source stays selectable so a copy yields the markup, not a hole.
ImagesInline Markdown images — data: URIs decoded in-process, http(s) fetched host-side — drawn at a fit size; alt text is the fallback and the selectable text.
ChartsA fenced chart block whose body is a small JSON spec (kind: bar/line/pie, a series list of values, optional labels/title) renders inline as a bar/line/pie image via chart-view (headless plotters → texture), cached per source/theme/scale. The model learns the schema from its system prompt; a malformed spec falls back to the raw JSON so it is never lost.
Diagrams (Mermaid)A fenced mermaid block renders inline as a diagram image via diagram-view (the pure-Rust merman renderer → texture), cached per source/scale. Flowcharts, sequence/class/state diagrams, and the rest — the model emits standard Mermaid syntax it already knows, so no schema is taught; an unparseable diagram falls back to the raw source so it is never lost.
File treesA fenced tree block renders a file/directory listing as a styled tree via ui-primitives' tree renderer (native elements — indent guides + folder/file-type icons, not a texture). The model writes classic tree output (├──/└──) or plain indentation; a trailing / marks a directory. A trailing status word — (modified)/(added)/(deleted)/(untracked)/(renamed) — renders a change badge (✏️ modified, added, 🗑️ deleted, untracked, ➡️ renamed) over a faint status-coloured row tint. An empty or unparseable block falls back to its raw text so it is never lost.