# RichFormat

The rich-answer rendering mod, a Claude Code function-hooks plugin that draws assistant...

- Repository: https://github.com/danielmiessler/LifeOS (19669 stars)
- Category: AI and agents
- License: MIT
- Last updated: 2026-10-28
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add danielmiessler/LifeOS --skill RichFormat -g -a claude-code -y`
Codex: `npx skills add danielmiessler/LifeOS --skill RichFormat -g -a codex -y`
Cursor: `npx skills add danielmiessler/LifeOS --skill RichFormat -g -a cursor -y`
Gemini CLI: `npx skills add danielmiessler/LifeOS --skill RichFormat -g -a gemini-cli -y`

## Description

The rich-answer rendering mod, a Claude Code function-hooks plugin that draws assistant replies in the terminal with boxed flow diagrams, bar charts, sparklines, trees and timelines, coloured section labels, insight and caution callout bars, red and green diffs, and green and red VERIFY marks, leaving the stored text untouched. USE WHEN rich format, RichFormat, flow diagram not drawn, chart not drawn, bar chart, sparkline, tree chart, timeline chart, diff not coloured, VERIFY marks plain, labels not coloured, turn off rich drawing, answer rendering, render mod, is the render mod loaded. NOT FOR the system prompt's marker rules (edit the Format Rules there), the status band, statusline or hook-fed lines (LifeOSHooks), or generated images and diagrams (Art).

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# RichFormat

**Contents:** Ideal State · Anti-criteria · Intent Routing · What it draws · The LifeOS rule · Tool contracts · Data & Config · Gotchas · Examples

A function-hooks plugin that makes assistant replies faster to read in the terminal. Claude Code loads it from this folder in every interactive session. It hooks two events and nothing else:

- `prompt.compose` adds one section to the system prompt that teaches the drawable conventions, in interactive terminal sessions only (Anti-criteria).
- `classic.MessageDisplay` receives each batch of finished lines while an answer streams and returns the text the terminal shows in their place, with ANSI colour. That text is the answer's first and only copy. A drawable fence is held until it closes, then drawn whole (`hooks/stream.ts`).

## Ideal State

- Every construct in What it draws that parses is drawn, never left as plain markdown: a `flow` fence as boxed nodes, a `diff` fence as numbered red and green lines, a fully marked VERIFY run as green and red marks, and a label line in its colour (the engine and pure-logic suites hold each).
- The stored message never changes. The model, the transcript file and ctrl+o all see plain markdown.
- On any doubt the lines show as written: a fence that does not parse, a fence still open at the message's last flush, a thrown error, or the option switched off.
- Every answer prints exactly once, at any length, under the full statusline.

## Anti-criteria

The rest: https://github.com/danielmiessler/LifeOS/blob/HEAD/LifeOS/install/skills/RichFormat/SKILL.md
