# roundel > The colours a CLI carries. One output policy, semantic tokens, a theme, and a chalk migration path lighter than chalk. Zero dependencies. ## Documentation - [roundel/chalk](https://roundel.interlace.tools/docs/api/chalk): Every export of roundel/chalk, with its signature and doc comment: modifierNames, foregroundColorNames, backgroundColorNames, underlineColorNames, colorNames, supportsColor and 3 more, plus 16 types. - [roundel/contrast](https://roundel.interlace.tools/docs/api/contrast): Every export of roundel/contrast, with its signature and doc comment: channels, luminance, contrast, reportTheme, AA, AAA and 2 more, plus 2 types. - [roundel/import](https://roundel.interlace.tools/docs/api/import): Every export of roundel/import, with its signature and doc comment: fromBase16, fromITerm, ImportError, BASE16_SLOTS, ITERM_SLOTS, plus 3 types. - [roundel](https://roundel.interlace.tools/docs/api): Every export of roundel, with its signature and doc comment: channels, luminance, contrast, reportTheme, AA, AAA and 30 more, plus 18 types. - [roundel/plugin](https://roundel.interlace.tools/docs/api/plugin): Every export of roundel/plugin, with its signature and doc comment: validate, register, reset, theme, contributions, registered and 2 more, plus 3 types. - [roundel/policy](https://roundel.interlace.tools/docs/api/policy): Every export of roundel/policy, with its signature and doc comment: colorLevel, outputMode, flown, plus 7 types. - [roundel/terminal](https://roundel.interlace.tools/docs/api/terminal): Every export of roundel/terminal, with its signature and doc comment: unicode, AGENTS, interactive, plus 2 types. - [roundel/theme](https://roundel.interlace.tools/docs/api/theme): Every export of roundel/theme, with its signature and doc comment: rgb256, toOklab, audit, fly, plus 3 types. - [roundel/tokens](https://roundel.interlace.tools/docs/api/tokens): Every export of roundel/tokens, with its signature and doc comment: painted, sgr, UNPAINTED, painter, error, warn and 7 more, plus 3 types. - [Changelog](https://roundel.interlace.tools/docs/changelog): Every release of roundel, newest first, from its CHANGELOG.md — what changed and the pull request it came from. - [Coming from chalk](https://roundel.interlace.tools/docs/coming-from/chalk): A chalk alternative with a drop-in path: import chalk from roundel/chalk, graded 59 / 59 by chalk's own test suite — then semantic tokens that go plain on a pipe, under NO_COLOR and under --json. - [Compatibility](https://roundel.interlace.tools/docs/drop-ins): How roundel/chalk is graded — chalk 6.0.1's own test suite, unedited — the current grade, and the differences that remain. - [FAQ](https://roundel.interlace.tools/docs/faq): Short answers about roundel — why nothing is coloured, NO_COLOR, FORCE_COLOR, --no-color, CI logs, screen readers, contrast, chalk and CommonJS — each with where to read more. - [Getting started](https://roundel.interlace.tools/docs/getting-started): Install roundel, fly a theme once at startup, and see the same tokens in a pipe, under FORCE_COLOR, under --json, in CI and in screen-reader mode. - [Colour levels](https://roundel.interlace.tools/docs/guides/colour-levels): colorLevel() decides 0, 16, 256 or truecolor: NO_COLOR first, then FORCE_COLOR=0, the --color flags and FORCE_COLOR, then what the terminal or the CI vendor reports. - [The output policy](https://roundel.interlace.tools/docs/guides/output-policy): outputMode() answers json, accessible, tty, ci or pipe from a runtime, first match wins — the one rule every package in the family asks before it redraws. - [Theme plugins](https://roundel.interlace.tools/docs/guides/plugins): A plugin contributes tokens as #rrggbb colours under the family's one plugin shape; register() validates it, theme() merges it, later wins, and fly() holds it to the same contrast gate. - [Theme gallery](https://roundel.interlace.tools/docs/guides/theme-gallery): Base16 schemes and iTerm2 presets read by roundel/import: the colour each token takes, its contrast on the scheme's own background, and whether roundel flies it. - [Themes and contrast](https://roundel.interlace.tools/docs/guides/themes): fly() sets what each token paints: format names from the terminal's palette, or a hex checked against WCAG 4.5:1 on the declared background, at every colour level. - [Tokens](https://roundel.interlace.tools/docs/guides/tokens): Nine semantic tokens — error, warn, ok, hint, muted, command, flag, value, heading — each the identity until fly() decides a level, so a program that never flies prints plain text. - [roundel](https://roundel.interlace.tools/docs): The colours a CLI carries. One output policy, semantic tokens, a theme, and a chalk migration path lighter than chalk. Zero dependencies. - [Incremental migration](https://roundel.interlace.tools/docs/recipes/incremental-migration): Move from chalk to roundel/chalk with one import, then to semantic tokens a file at a time, with both reading the same policy throughout. - [A theme for light terminals](https://roundel.interlace.tools/docs/recipes/light-terminals): Declare the background your users read on, let roundel pick the brand shade that reads on it, and check the result before it ships. - [Plain output for agents and CI](https://roundel.interlace.tools/docs/recipes/plain-output-for-agents): Wire --json and --no-color through the runtime so an agent, a CI log and a user who opts out all get plain text, from one fly() at startup. - [Testing coloured output](https://roundel.interlace.tools/docs/recipes/testing-colour): Assert what your CLI prints at each colour level by flying a literal runtime — no environment patching, no fake terminal. - [Why roundel](https://roundel.interlace.tools/docs/why-roundel): roundel against chalk, one capability per row, every cell linked to the test, grade or source that proves it. ## Family - [burgee](https://burgee.interlace.tools): the family front door - [Compatibility](https://burgee.interlace.tools/docs/compatibility): Every drop-in path in the family, graded by the incumbent’s own test suite. - [Gallery](https://burgee.interlace.tools/docs/gallery): Every glyph, spinner and border the family has registered, rendered. - [Comparison](https://burgee.interlace.tools/docs/comparison): The family against its incumbents: weight, speed and surface.