Skip to content

Terminal

Host operations keep their return convention across execution actors.

Mode extends "sync" | "async" = "sync"

get appearance(): TerminalAppearance

TerminalAppearance

TerminalApi.appearance


get canvas(): HTMLCanvasElement | undefined

HTMLCanvasElement | undefined

TerminalApi.canvas


get diagnostics(): GhosttyWebGpuTerminalDiagnostics

GhosttyWebGpuTerminalDiagnostics

TerminalApi.diagnostics


get element(): HTMLDivElement | undefined

HTMLDivElement | undefined

TerminalApi.element


get hasPendingFrame(): boolean

boolean

TerminalApi.hasPendingFrame


get hasPendingLinkResolution(): boolean

boolean

TerminalApi.hasPendingLinkResolution


get hasPendingTimer(): boolean

boolean

TerminalApi.hasPendingTimer


get inputModes(): TerminalInputModes

TerminalInputModes

TerminalApi.inputModes


get lifecycle(): GhosttyWebGpuTerminalLifecycle

GhosttyWebGpuTerminalLifecycle

TerminalApi.lifecycle


get submittedFrame(): TerminalSubmittedFrame | undefined

TerminalSubmittedFrame | undefined

TerminalApi.submittedFrame


get textarea(): HTMLTextAreaElement | undefined

HTMLTextAreaElement | undefined

TerminalApi.textarea

attachOutputPort(port): Promise<void>

MessagePort

Promise<void>


blur(): void

void

TerminalApi.blur


captureViewport(): TerminalResult<Mode, string | undefined>

TerminalResult<Mode, string | undefined>

TerminalApi.captureViewport


clearSelection(): TerminalResult<Mode, boolean>

TerminalResult<Mode, boolean>

TerminalApi.clearSelection


clearTextureAtlas(): TerminalResult<Mode, void>

TerminalResult<Mode, void>

TerminalApi.clearTextureAtlas


connectInput(handler): TerminalResult<Mode, TerminalInputConnection>

TerminalInputHandler

TerminalResult<Mode, TerminalInputConnection>

TerminalApi.connectInput


dispose(): TerminalResult<Mode, void>

TerminalResult<Mode, void>

TerminalApi.dispose


fenceOutput(sequence): Promise<void>

number

Promise<void>


focus(): void

void

TerminalApi.focus


focusNextLink(): Promise<boolean>

Promise<boolean>

TerminalApi.focusNextLink


frameSnapshot(): TerminalResult<Mode, RendererFrameSnapshot | undefined>

TerminalResult<Mode, RendererFrameSnapshot | undefined>

TerminalApi.frameSnapshot


geometry(): TerminalResult<Mode, TerminalGeometry>

TerminalResult<Mode, TerminalGeometry>

TerminalApi.geometry


getSelection(options?): TerminalResult<Mode, string | undefined>

TerminalSelectionFormatOptions

TerminalResult<Mode, string | undefined>

TerminalApi.getSelection


key(input): TerminalResult<Mode, TerminalInputResult>

TerminalKeyInput

TerminalResult<Mode, TerminalInputResult>

TerminalApi.key


lineCount(): TerminalResult<Mode, number>

Count retained scrollback and visible rows on the active screen.

TerminalResult<Mode, number>

TerminalApi.lineCount


measure(text): TerminalResult<Mode, number>

string

TerminalResult<Mode, number>

TerminalApi.measure


measureTexts(texts): TerminalResult<Mode, TerminalTextMeasurement>

readonly string[]

TerminalResult<Mode, TerminalTextMeasurement>

TerminalApi.measureTexts


on<TType>(type, listener): EventSubscription

TType extends keyof GhosttyWebGpuTerminalEventMap

TType

GhosttyWebGpuTerminalListener<TType>

EventSubscription

TerminalApi.on


onData(listener): EventSubscription

GhosttyWebGpuTerminalListener<"data">

EventSubscription

TerminalApi.onData


onFrame(listener): EventSubscription

GhosttyWebGpuTerminalListener<"frame">

EventSubscription

TerminalApi.onFrame


onResize(listener): EventSubscription

GhosttyWebGpuTerminalListener<"resize">

EventSubscription

TerminalApi.onResize


onText(listener): EventSubscription

(text) => void

EventSubscription

TerminalApi.onText


open(parent): Promise<void>

HTMLElement

Promise<void>

TerminalApi.open


paste(data): TerminalResult<Mode, TerminalInputResult>

TerminalInputData

TerminalResult<Mode, TerminalInputResult>

TerminalApi.paste


readLines(start, end, options?): TerminalResult<Mode, readonly TerminalLine[]>

Read clamped, oldest-first active-screen rows [start, end), capped at TERMINAL_READ_LINES_MAX_ROWS. trimRight defaults to true. Upstream has no inactive-screen selector.

number

number

ReadLinesOptions

TerminalResult<Mode, readonly TerminalLine[]>

TerminalApi.readLines


refresh(startRow, endRow): TerminalResult<Mode, void>

number

number

TerminalResult<Mode, void>

TerminalApi.refresh


registerLinkProvider(provider): LinkProviderRegistration

LinkProvider<Event>

LinkProviderRegistration

TerminalApi.registerLinkProvider


reset(): TerminalResult<Mode, TerminalMutationResult>

TerminalResult<Mode, TerminalMutationResult>

TerminalApi.reset


scrollBy(delta): TerminalResult<Mode, TerminalMutationResult>

number

TerminalResult<Mode, TerminalMutationResult>

TerminalApi.scrollBy


scrollToBottom(): TerminalResult<Mode, TerminalMutationResult>

TerminalResult<Mode, TerminalMutationResult>

TerminalApi.scrollToBottom


scrollToRow(row): TerminalResult<Mode, TerminalMutationResult>

number

TerminalResult<Mode, TerminalMutationResult>

TerminalApi.scrollToRow


scrollToTop(): TerminalResult<Mode, TerminalMutationResult>

TerminalResult<Mode, TerminalMutationResult>

TerminalApi.scrollToTop


selectAll(): TerminalResult<Mode, boolean>

TerminalResult<Mode, boolean>

TerminalApi.selectAll


selectionCoordinates(): TerminalResult<Mode, Readonly<SelectionCoordinates> | undefined>

TerminalResult<Mode, Readonly<SelectionCoordinates> | undefined>

TerminalApi.selectionCoordinates


selectLines(startRow, endRow): TerminalResult<Mode, boolean>

number

number

TerminalResult<Mode, boolean>

TerminalApi.selectLines


selectRange(start, end): TerminalResult<Mode, boolean>

SelectionPoint

SelectionPoint

TerminalResult<Mode, boolean>

TerminalApi.selectRange


sendGeneratedInput(input): TerminalResult<Mode, TerminalInputResult>

TerminalGeneratedInput

TerminalResult<Mode, TerminalInputResult>

TerminalApi.sendGeneratedInput


sendInput(data): TerminalResult<Mode, TerminalInputResult>

TerminalInputData

TerminalResult<Mode, TerminalInputResult>

TerminalApi.sendInput


setAccessibilityEnabled(enabled): boolean

boolean

boolean

TerminalApi.setAccessibilityEnabled


setAppearance(options): TerminalResult<Mode, TerminalMutationResult>

TerminalAppearanceOptions

TerminalResult<Mode, TerminalMutationResult>

TerminalApi.setAppearance


setColorScheme(colorScheme): TerminalResult<Mode, TerminalMutationResult>

TerminalColorScheme

TerminalResult<Mode, TerminalMutationResult>

TerminalApi.setColorScheme


setCursor(cursor): TerminalResult<Mode, TerminalMutationResult>

Partial<TerminalCursorSettings>

TerminalResult<Mode, TerminalMutationResult>

TerminalApi.setCursor


setCursorInactiveStyle(style): TerminalResult<Mode, boolean>

InactiveCursorStyle | undefined

TerminalResult<Mode, boolean>

TerminalApi.setCursorInactiveStyle


setFont(font): TerminalResult<Mode, TerminalMutationResult>

Partial<TerminalFontSettings>

TerminalResult<Mode, TerminalMutationResult>

TerminalApi.setFont


setTheme(theme): TerminalResult<Mode, TerminalMutationResult>

TerminalTheme

TerminalResult<Mode, TerminalMutationResult>

TerminalApi.setTheme


use<Api>(extension): TerminalResult<Mode, ExtensionHandle<Api>>

Api = void

Extension<Api>

TerminalResult<Mode, ExtensionHandle<Api>>

TerminalApi.use


visibleLines(): readonly string[]

readonly string[]

TerminalApi.visibleLines


write(data): TerminalResult<Mode, TerminalMutationResult>

TerminalInputData

TerminalResult<Mode, TerminalMutationResult>

TerminalApi.write


writeAndReadGeometry(data): TerminalResult<Mode, TerminalGeometry>

TerminalInputData

TerminalResult<Mode, TerminalGeometry>

TerminalApi.writeAndReadGeometry


writeln(data): TerminalResult<Mode, TerminalMutationResult>

TerminalInputData

TerminalResult<Mode, TerminalMutationResult>

TerminalApi.writeln


static [createFromSessionInternal](session, options?): Terminal

TerminalSession<Event>

GhosttyWebGpuTerminalFromSessionOptions

Terminal


static create(options?): Promise<Terminal<"sync">>

GhosttyWebGpuTerminalOptions

Promise<Terminal<"sync">>


static fromWorker(execution, options): Terminal<"async">

WorkerTerminalExecution

GhosttyWebGpuTerminalFromSessionOptions

Terminal<"async">