# paratext > Hyperlinks, inline images, the window title, the clipboard, notifications and the bell, each with a static fallback for a terminal, pipe or agent that cannot show it. Zero dependencies. Drop-in paths for ansi-escapes, terminal-link and term-img. ## Documentation - [paratext/csi](https://paratext.interlace.tools/docs/api/csi): Every export of paratext/csi, with its signature and doc comment: kittyKeyboardPop, kittyKeyboardPush, kittyKeyboardQuery, cursorTo, cursorMove, cursorUp and 28 more. - [paratext](https://paratext.interlace.tools/docs/api): Every export of paratext, with its signature and doc comment: _default, ansiEscapesFor, beep, beginSynchronizedOutput, clearScreen, clearTerminal and 54 more, plus 7 types. - [paratext/link](https://paratext.interlace.tools/docs/api/link): Every export of paratext/link, with its signature and doc comment: LINK, supportsLink, linkFor, link. - [paratext/plugin](https://paratext.interlace.tools/docs/api/plugin): Every export of paratext/plugin, with its signature and doc comment: validate, register, reset, registered, contributions, attach and 2 more, plus 5 types. - [paratext/term-img](https://paratext.interlace.tools/docs/api/term-img): Every export of paratext/term-img, with its signature and doc comment: supportsInlineImage, terminalImageFor, UnsupportedTerminalError, terminalImage, plus 3 types. - [paratext/terminal-link](https://paratext.interlace.tools/docs/api/terminal-link): Every export of paratext/terminal-link, with its signature and doc comment: terminalLinkFor, terminalLink, plus 4 types. - [Changelog](https://paratext.interlace.tools/docs/changelog): Every release of paratext, newest first, from its CHANGELOG.md — what changed and the pull request it came from. - [Coming from ansi-escapes](https://paratext.interlace.tools/docs/coming-from/ansi-escapes): An ansi-escapes alternative with a drop-in path: import ansiEscapes from paratext, graded 4 / 4 by ansi-escapes' own test suite — then hyperlinks, images and the working directory that project to plain text for pipes and agents instead of raw escape bytes. - [Coming from term-img](https://paratext.interlace.tools/docs/coming-from/term-img): A term-img alternative you adopt by changing one import: import terminalImage from paratext/term-img, graded 18 / 18 by term-img's own test suite, level with term-img itself — file paths and bytes alike, with zero dependencies. - [Coming from terminal-link](https://paratext.interlace.tools/docs/coming-from/terminal-link): A terminal-link alternative with a drop-in path: import terminalLink from paratext/terminal-link, graded 8 / 8 by terminal-link's own test suite, with two cases excluded by name — then zero dependencies, and hyperlinks that project to plain text for pipes and agents. - [Compatibility](https://paratext.interlace.tools/docs/drop-ins): How paratext's three drop-ins are graded — each incumbent's own test suite, unedited — the current grades, and the differences that remain. - [FAQ](https://paratext.interlace.tools/docs/faq): Short answers about paratext — why a pipe gets text, detecting support, tmux, adding a capability, images from files, and the drop-ins — each with where to read more. - [Getting started](https://paratext.interlace.tools/docs/getting-started): Install paratext, emit a hyperlink, a notification, a title and an image, and see what a supporting terminal gets and what a pipe gets instead. - [The ansi-escapes surface](https://paratext.interlace.tools/docs/guides/ansi-escapes): paratext's root is ansi-escapes 7.3.0's API: the CSI half byte-exact, the four OSC members through emit(), so a link or an image on a pipe is its text rather than raw bytes. - [Detecting support](https://paratext.interlace.tools/docs/guides/detection): A capability's when clause says which terminals are believed to understand it — tty, TERM, TERM_PROGRAM or an announcing variable — and supports() answers from a runtime, never from process. - [Links and images](https://paratext.interlace.tools/docs/guides/links-and-images): paratext/link for one hyperlink without the registry, paratext/terminal-link for terminal-link's API and detection, and paratext/term-img for term-img's API over a file path or image bytes. - [Capabilities as data](https://paratext.interlace.tools/docs/guides/registry): Register a capability as a plain object — encode, fallback and when — validate it against the family schema with check(), ship it as a plugin, and check the plugin with npx paratext check. - [The static projection](https://paratext.interlace.tools/docs/guides/static-projection): Every capability carries a fallback template, and emit() returns it whenever support is absent or unknown — so a pipe gets Docs (url), a caption or a line, never OSC bytes. - [paratext](https://paratext.interlace.tools/docs): Hyperlinks, inline images, the window title, the clipboard, notifications and the bell, each with a static fallback for a terminal, pipe or agent that cannot show it. Zero dependencies. Drop-in paths for ansi-escapes, terminal-link and term-img. - [Images with captions](https://paratext.interlace.tools/docs/recipes/images-with-captions): Read an image yourself, pass the bytes with a caption, and get an inline image on iTerm2 and the caption in a pipe, a CI log or an agent's transcript. - [Incremental migration](https://paratext.interlace.tools/docs/recipes/incremental-migration): Move from ansi-escapes, terminal-link and term-img one import at a time — each is one changed specifier, file paths included. - [Links in help output](https://paratext.interlace.tools/docs/recipes/links-in-help): Print a clickable command name where the terminal understands OSC 8, and a separate URL column only where it does not, deciding the layout with supportsLink(). - [A notification when a long task ends](https://paratext.interlace.tools/docs/recipes/notify-when-done): Send an OSC 9 desktop notification on terminals that show one, and print the same message as a line everywhere else — with no native binaries. - [Testing escape output](https://paratext.interlace.tools/docs/recipes/testing-escapes): Assert what your CLI writes on a supporting terminal and on a pipe by passing a literal runtime to emit() — no environment patching. - [Why paratext](https://paratext.interlace.tools/docs/why-paratext): paratext against ansi-escapes, terminal-link and term-img, 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.