Skip to content
Effect Days 2026 Get your ticket

Terminal

6 exports Added in v1.0.0 Source

Model

Key interface

Added in v1.0.0 Source

Signature

interface Key {
readonly ctrl: boolean;
readonly meta: boolean;
readonly name: string;
readonly shift: boolean;
}

A QuitException represents an exception that occurs when a user attempts to quit out of a Terminal prompt for input (usually by entering ctrl+c).

Signature

declare class QuitException extends YieldableError<this> & {
readonly _tag: "QuitException";
} & Readonly<{}> {
constructor(args: void);
}

UserInput interface

Added in v1.0.0 Source

Signature

interface UserInput {
readonly input: Option<string>;
readonly key: Key;
}

Models

Terminal interface

Added in v1.0.0 Source

A Terminal represents a command-line interface which can read input from a user and display messages to a user.

Signature

interface Terminal {
readonly columns: Effect<number>;
readonly display: (text: string) => Effect<void, PlatformError>;
readonly isTTY: Effect<boolean>;
readonly readInput: Effect<ReadonlyMailbox<UserInput>, never, Scope>;
readonly readLine: Effect<string, QuitException>;
readonly rows: Effect<number>;
}

Refinements

Signature

declare function isQuitException(u: unknown): u is QuitException

Tag

Terminal

Added in v1.0.0 Source

Signature

declare const Terminal: Tag<Terminal, Terminal>