# Term package

The Term package provides support for building text-based user
interfaces in ANSI terminals.

Terminal raw mode is opt-in: programs that use `Stdin` directly get
normal cooked-mode input. To enable raw mode for keystroke-at-a-time
input, construct an `ANSITerm` with a `TerminalAuth` (derived from
`AmbientAuth`). Raw mode is restored automatically after a
suspend/resume (SIGCONT) and reverted to the original mode when the
`ANSITerm` is disposed.

For programs that need raw mode without `ANSITerm`, use
`TerminalMode.set_raw()` and `TerminalMode.restore()` directly.


## Public Types

* [primitive ANSI](term-ANSI.md)
* [interface ANSINotify](term-ANSINotify.md)
* [actor ANSITerm](term-ANSITerm.md)
* [primitive EraseLeft](term-EraseLeft.md)
* [primitive EraseLine](term-EraseLine.md)
* [primitive EraseRight](term-EraseRight.md)
* [class Readline](term-Readline.md)
* [interface ReadlineNotify](term-ReadlineNotify.md)
* [primitive TerminalAuth](term-TerminalAuth.md)
* [primitive TerminalMode](term-TerminalMode.md)
