gespenst API - v0.1.0
    Preparing search index...

    Interface BrowserTerminal

    High-level browser terminal API.

    A terminal owns its DOM, worker or main-thread backend, renderer, loaded fonts, addons, active transports, and event listeners. Release them together with BrowserTerminal.dispose.

    interface BrowserTerminal {
        element: HTMLElement;
        geometry: TerminalGeometry;
        renderer: RendererInfo;
        theme: Readonly<TerminalTheme>;
        blur(): void;
        clearSelection(): void;
        connect(
            transport: TerminalTransport,
            options?: TerminalConnectionOptions,
        ): TerminalConnection;
        dispose(): void;
        fit(): void;
        focus(): void;
        getSelection(): Promise<string>;
        loadAddon(addon: TerminalAddon): void;
        loadFont(face: TerminalFontFace): Promise<void>;
        on<
            Key extends
                | "error"
                | "resize"
                | "input"
                | "bell"
                | "title"
                | "cwd"
                | "notification"
                | "progress"
                | "clipboardWrite"
                | "bufferChange"
                | "renderer"
                | "writeParsed"
                | "selectionChange"
                | "scroll"
                | "viewportChange"
                | "font",
        >(
            type: Key,
            listener: (value: BrowserTerminalEventMap[Key]) => void,
        ): Disposable;
        open(container: HTMLElement): Promise<void>;
        paste(data: string): void;
        readBuffer(range?: TerminalBufferRange): Promise<TerminalBufferSnapshot>;
        readViewport(): Promise<ViewportSnapshot>;
        reset(): void;
        resize(): void;
        resize(cols: number, rows: number): void;
        restore(snapshot: Uint8Array): Promise<void>;
        scrollLines(delta: number): void;
        scrollToBottom(): void;
        scrollToTop(): void;
        selectAll(): void;
        sendKey(input: KeyInput): void;
        sendPointer(input: PointerInput): void;
        sendText(data: string): void;
        setAccessibility(level: "off" | "basic" | "full"): void;
        setDefaultCursor(style: CursorStyle, blink: boolean): void;
        setFont(options: Partial<TerminalFontOptions>): Promise<TerminalGeometry>;
        setMinimumContrastRatio(ratio: number): void;
        setScrollbackLines(lines: number): void;
        setTheme(theme: TerminalTheme): Promise<void>;
        snapshot(): Promise<Uint8Array<ArrayBufferLike>>;
        updateTheme(theme: TerminalTheme): Promise<void>;
        write(data: string | Uint8Array<ArrayBufferLike>): void;
        writeAsync(data: string | Uint8Array<ArrayBufferLike>): Promise<void>;
    }

    Implemented by

    Index
    element: HTMLElement

    Root DOM element owned by the terminal.

    The current grid and device-pixel backing-surface dimensions.

    renderer: RendererInfo

    Active renderer and text-shaping information.

    theme: Readonly<TerminalTheme>

    Current authored theme. Missing properties inherit from DEFAULT_THEME.

    • Releases workers, renderers, transports, addons, listeners, loaded fonts, and DOM resources.

      Returns void

    • Recalculates grid geometry from the container, including when initial grid options were set.

      Returns void

    • Subscribes to a typed browser terminal event.

      Type Parameters

      • Key extends
            | "error"
            | "resize"
            | "input"
            | "bell"
            | "title"
            | "cwd"
            | "notification"
            | "progress"
            | "clipboardWrite"
            | "bufferChange"
            | "renderer"
            | "writeParsed"
            | "selectionChange"
            | "scroll"
            | "viewportChange"
            | "font"

      Parameters

      Returns Disposable

    • Mounts a terminal created without a container.

      Parameters

      • container: HTMLElement

      Returns Promise<void>

    • Sends text through bracketed-paste handling when enabled.

      Parameters

      • data: string

      Returns void

    • Fits the grid to the current container dimensions.

      Returns void

      Call after revealing a terminal that was measured in a hidden container.

    • Sets an explicit character-grid size.

      Parameters

      • cols: number
      • rows: number

      Returns void

    • Restores terminal state from compatible snapshot bytes.

      Parameters

      • snapshot: Uint8Array

      Returns Promise<void>

    • Scrolls the viewport by a signed row delta.

      Parameters

      • delta: number

      Returns void

    • Changes the browser accessibility mirror level.

      Parameters

      • level: "off" | "basic" | "full"

      Returns void

    • Changes the renderer's minimum contrast ratio.

      Parameters

      • ratio: number

      Returns void

    • Changes the maximum retained scrollback lines.

      Parameters

      • lines: number

      Returns void

    • Serializes terminal state into Ghostty snapshot bytes.

      Returns Promise<Uint8Array<ArrayBufferLike>>

    • Queues text or bytes for VT parsing and returns immediately.

      Parameters

      • data: string | Uint8Array<ArrayBufferLike>

      Returns void

      Prefer bytes for PTY output to avoid a decode and encode cycle.

    • Parses and renders text or bytes before resolving.

      Parameters

      • data: string | Uint8Array<ArrayBufferLike>

      Returns Promise<void>

      Use this boundary for transport backpressure, ordered snapshots, and tests.