function
markdown.ansi
Render markdown to an ANSI-colored terminal string.
Supports headings, lists, tables, inline styles, syntax-highlighted code blocks, links, images, and blockquotes. By default, enables all GFM extensions plus wikilinks, underline, and LaTeX math.
The markdown string or buffer to render
Optional theme overrides
An ANSI-colored string
const out = Bun.markdown.ansi("# Hello\n\n**bold** and *italic*\n");
process.stdout.write(out);
// Plain text, no escape codes
const plain = Bun.markdown.ansi("# Hello", { colors: false });
// Enable clickable OSC 8 hyperlinks
const linked = Bun.markdown.ansi("[docs](https://bun.com)", {
hyperlinks: true,
});
// Inline images via Kitty Graphics Protocol
const withImg = Bun.markdown.ansi("", {
kittyGraphics: true,
});
// Custom width
const wrapped = Bun.markdown.ansi(longText, { columns: 60 });Referenced types
interface AnsiTheme
Theme for ANSI terminal rendering.
- colors?: boolean
Emit ANSI color + styling escape sequences. When
false, the renderer falls back to plain ASCII chrome (no box drawing, no emoji, no escape codes). - columns?: number
Line width used for word-wrapping paragraphs and headings and for the horizontal rule. Pass
0to disable wrapping. - hyperlinks?: boolean
Emit OSC 8 hyperlinks (clickable links in modern terminals). When
false, links render astext (url). - kittyGraphics?: boolean
Inline images using the Kitty Graphics Protocol when the
srcresolves to a local file on disk. Falls through to the text alt for remote URLs. Supported by Kitty, WezTerm, and Ghostty. - light?: boolean
True when the terminal background is light. Affects the color palette chosen for inline code backgrounds. Defaults to detecting from the
COLORFGBGenvironment variable.