API and symbol index
Use this page to find every published OpenTUI entry point and named export. The tables come from the generated publish maps and source barrels. They include runtime values and type-only exports.
Support classes#
| Class | Meaning |
|---|---|
| Supported | This is a normal supported API. |
| Advanced | This API needs direct ownership, lifecycle, rendering, or integration knowledge. |
| Experimental | This API can change as its design develops. |
| Runtime-specific | This API works only in the runtime shown in its row. |
| Deprecated | Keep this API only while you move to its replacement. |
| Implementation-looking public export | The export is publicly reachable today, but OpenTUI does not endorse it for ordinary use. It is still indexed here. |
A row can have more than one class. Read Runtime and platform support for the supported Bun and Node.js versions.
Entry point index#
The runtime column describes the published target. A Node stub throws during import for each Bun-only support entry point.
| Package entry point | Runtime | Class | Canonical documentation |
|---|---|---|---|
@opentui/core |
Bun and Node.js | Supported | Renderer |
@opentui/core/testing |
Bun and Node.js | Supported | Testing |
@opentui/core/runtime-plugin |
Bun only | Runtime-specific, Advanced | Runtime module loading |
@opentui/core/runtime-plugin-support |
Bun only | Runtime-specific, Advanced | Runtime module loading |
@opentui/core/runtime-plugin-support/configure |
Bun only | Runtime-specific, Advanced | Runtime module loading |
@opentui/core/yoga |
Bun and Node.js | Advanced | Yoga API |
@opentui/core/tree-sitter/update-assets |
Build time, with Bun CLI | Runtime-specific | Tree-sitter |
@opentui/core/parser.worker |
Bun and Node.js worker | Implementation-looking public export | Tree-sitter |
@opentui/core/node-assets |
Node.js build time | Runtime-specific | Standalone executables |
@opentui/react |
Bun and Node.js | Supported | React bindings |
@opentui/react/renderer |
Bun and Node.js | Supported, Implementation-looking public export | React bindings |
@opentui/react/test-utils |
Bun and Node.js | Supported | Testing |
@opentui/react/runtime-plugin-support |
Bun only | Runtime-specific, Advanced | Runtime module loading |
@opentui/react/runtime-plugin-support/configure |
Bun only | Runtime-specific, Advanced | Runtime module loading |
@opentui/react/jsx-runtime |
Compiler selected | Supported | React bindings |
@opentui/react/jsx-dev-runtime |
Compiler selected | Supported | React bindings |
@opentui/solid |
Bun and Node.js | Supported | Solid bindings |
@opentui/solid/preload |
Bun only | Runtime-specific | Solid bindings |
@opentui/solid/bun-plugin |
Bun only | Runtime-specific, Advanced | Solid bindings |
@opentui/solid/runtime-plugin-support |
Bun only | Runtime-specific, Advanced | Runtime module loading |
@opentui/solid/runtime-plugin-support/configure |
Bun only | Runtime-specific, Advanced | Runtime module loading |
@opentui/solid/components |
Bun and Node.js | Advanced | Solid bindings |
@opentui/solid/jsx-runtime |
Compiler selected | Supported | Solid bindings |
@opentui/solid/jsx-dev-runtime |
Compiler selected | Supported | Solid bindings |
@opentui/keymap |
JavaScript runtimes | Supported | Core keymap API |
@opentui/keymap/extras |
JavaScript runtimes | Supported | Core keymap API |
@opentui/keymap/extras/graph |
JavaScript runtimes | Advanced | Core keymap API |
@opentui/keymap/addons |
JavaScript runtimes | Supported | Built-in keymap addons |
@opentui/keymap/addons/opentui |
Bun and Node.js | Supported | Built-in keymap addons |
@opentui/keymap/testing |
JavaScript test runtimes | Supported | Core keymap API |
@opentui/keymap/html |
Browser DOM | Runtime-specific | Keymap hosts |
@opentui/keymap/opentui |
Bun and Node.js | Runtime-specific | Keymap hosts |
@opentui/keymap/react |
OpenTUI React | Runtime-specific | React keymap integration |
@opentui/keymap/solid |
OpenTUI Solid | Runtime-specific | Solid keymap integration |
@opentui/keymap/runtime-modules |
Bun runtime loading | Runtime-specific, Advanced | Runtime module loading |
@opentui/qrcode |
Bun and Node.js | Supported | QR encoder |
@opentui/qrcode/react |
OpenTUI React | Runtime-specific | QR code component |
@opentui/qrcode/solid |
OpenTUI Solid | Runtime-specific | QR code component |
@opentui/ssh |
Bun 1.3.0 or Node.js 26.4.0 | Runtime-specific | SSH |
@opentui/three |
Bun only | Runtime-specific, Advanced | Three.js WebGPU |
@opentui/three/runtime-modules |
Bun only | Runtime-specific, Advanced | Runtime module loading |
See Package entry points for each entry point’s role and import constraints.
@opentui/core#
The root works in Bun and supported Node.js releases. A class in these tables applies to every symbol in its row.
Renderer and render tree#
| Area | Symbols | Class | Canonical documentation |
|---|---|---|---|
| Renderer | CliRenderer, CliRendererConfig, CliRendererErrorEvent, CliRendererExternalOutputEvent, CliRendererFrameEvent, CliRendererHandlerErrorEvent, CliRendererStats, CliRenderEvents, ConsoleMode, createCliRenderer, ExternalOutputMode, KittyKeyboardOptions, MouseButton, MouseEvent, PixelResolution, RendererControlState, ScreenMode |
Supported | Renderer |
| Scheduling and scrollback | RendererSchedulerState, ScrollbackRenderContext, ScrollbackSnapshot, ScrollbackSurface, ScrollbackSurfaceCommitOptions, ScrollbackSurfaceOptions, ScrollbackWriter, SplitFooterReplayResetOptions |
Advanced | Renderer |
| Shared renderer types | CapturedFrame, CapturedLine, CapturedSpan, CursorStyle, CursorStyleOptions, DebugOverlayCorner, ImageRenderProtocol, MousePointerStyle, RenderContext, RendererEvents, TargetChannel, TerminalCapabilities, TerminalCapabilityState, TerminalInfo, TerminalMultiplexer, ThemeMode, Timeout, ViewportBounds, WidthMethod |
Supported | Renderer and Terminal capabilities |
| Cell and highlight types | ATTRIBUTE_BASE_BITS, ATTRIBUTE_BASE_MASK, getBaseAttributes, Highlight, LineInfo, LineInfoProvider, TextAttributes |
Advanced | Text and terminal cells |
| Renderables | BaseRenderable, BaseRenderableOptions, isRenderable, LayoutEvents, LayoutOptions, Position, Renderable, RenderableEvents, RenderableOptions, RenderCommand, RootRenderable |
Supported | Renderables |
| Composition constructs | ASCIIFont, Box, Code, FrameBuffer, Generic, Input, ScrollBox, Select, TabSelect, Text, vstyles |
Implementation-looking public export | Renderables |
| Composition internals | Construct, DelegateMap, delegate, FunctionalConstruct, h, InstantiateFn, instantiate, isVNode, maybeMakeRenderable, PendingCall, ProxiedVNode, RenderableConstructor, ValidateShape, VChild, VNode, VRenderable, VRenderableOptions, wrapWithDelegates |
Implementation-looking public export | Renderables |
| Layout string parsers | AlignString, BoxSizingString, DimensionString, DirectionString, DisplayString, EdgeString, FlexDirectionString, GutterString, JustifyString, LogLevelString, MeasureModeString, OverflowString, parseAlign, parseAlignItems, parseBoxSizing, parseDimension, parseDirection, parseDisplay, parseEdge, parseFlexDirection, parseGutter, parseJustify, parseLogLevel, parseMeasureMode, parseOverflow, parsePositionType, parseUnit, parseWrap, PositionTypeString, UnitString, WrapString |
Advanced | Layout |
| Tree inspection | visualizeRenderableTree |
Advanced | Renderables |
Input and selection#
| Area | Symbols | Class | Canonical documentation |
|---|---|---|---|
| Keyboard events | KeyEvent, KeyHandler, KeyHandlerEventMap, PasteEvent |
Supported | Keyboard input |
| Keyboard implementation | buildKittyKeyboardFlags, InternalKeyHandler |
Implementation-looking public export | Keyboard input |
| Key parser | KeyEventType, nonAlphanumericKeys, ParsedKey, parseKeypress, ParseKeypressOptions, terminalNamedSingleStrokeKeys |
Advanced | Keyboard input |
| Raw input parser | StdinEvent, StdinParser, StdinParserOptions, StdinParserProtocolContext, StdinResponseProtocol |
Advanced | Keyboard input |
| Mouse parser | MouseEventType, MouseParser, RawMouseEvent, ScrollInfo |
Advanced | Interaction, focus, and selection |
| Paste decoding | decodePasteBytes, PasteKind, PasteMetadata, stripAnsiSequences |
Advanced | Keyboard input |
| Scroll acceleration | LinearScrollAccel, MacOSScrollAccel, ScrollAcceleration |
Advanced | Interaction, focus, and selection |
| Selection | ASCIIFontSelectionHelper, convertGlobalToLocalSelection, LocalSelectionBounds, Selection |
Advanced | Interaction, focus, and selection |
Text, color, links, and clipboard#
| Area | Symbols | Class | Canonical documentation |
|---|---|---|---|
| Styled text | bg, bgBlack, bgBlue, bgCyan, bgGreen, bgMagenta, bgRed, bgWhite, bgYellow, black, blink, blue, bold, brightBlack, brightBlue, brightCyan, brightGreen, brightMagenta, brightRed, brightWhite, brightYellow, Color, cyan, dim, fg, green, isStyledText, italic, link, magenta, red, reverse, strikethrough, stringToStyledText, StylableInput, StyleAttrs, StyledText, t, underline, white, yellow |
Supported | Text and terminal cells |
| Color values | ansi256IndexToRgb, ColorInput, ColorIntent, DEFAULT_BACKGROUND_RGB, DEFAULT_FOREGROUND_RGB, hexToRgb, hsvToRgb, normalizeColorValue, NormalizedColorValue, normalizeIndexedColorIndex, parseColor, RGBA, rgbToHex, RGBTriplet |
Supported | Colors |
| Attributes and links | attributesWithLink, createTextAttributes, getLinkId, detectLinks |
Advanced | Text and terminal cells |
| HAST conversion | HASTElement, HASTNode, HASTText, hastToStyledText |
Advanced | Text and terminal cells |
| Clipboard | Clipboard, ClipboardClearResult, ClipboardOptions, ClipboardReadOptions, ClipboardReadResult, ClipboardRepresentation, ClipboardSelection, ClipboardService, ClipboardTarget, ClipboardWriteDestination, ClipboardWriteOptions, ClipboardWriteResult, createClipboard, createHostClipboard, createRendererClipboardAdapter, HostClipboardBackend, HostClipboardClearResult, HostClipboardOperationOptions, HostClipboardOptions, HostClipboardReadOptions, HostClipboardService, HostClipboardWriteOptions, HostClipboardWriteResult, RendererClipboardBoundary, TerminalClipboardAdapter, TerminalClipboardOperationResult |
Supported | Clipboard |
Tree-sitter and syntax styles#
| Area | Symbols | Class | Canonical documentation |
|---|---|---|---|
| Client lifecycle | addDefaultParsers, destroyTreeSitterClient, getTreeSitterClient, TreeSitterClient |
Supported | Tree-sitter |
| File type lookup | basenameToFiletype, extensionToFiletype, extToFiletype, infoStringToFiletype, pathToFiletype |
Supported | Tree-sitter |
| Styled output | treeSitterToStyledText, TreeSitterToStyledTextOptions, treeSitterToTextChunks |
Supported | Tree-sitter |
| Parser and result types | FiletypeParserOptions, HighlightMeta, HighlightRange, HighlightResponse, InjectionMapping, SimpleHighlight, TreeSitterClientEvents, TreeSitterClientOptions |
Supported | Tree-sitter |
| Worker protocol | BufferState, Edit, ParsedBuffer, PerformanceStats, TreeSitterWorkerLogType, TreeSitterWorkerRequest, TreeSitterWorkerResponse |
Advanced | Tree-sitter |
| Syntax styles | convertThemeToStyles, MergedStyle, StyleDefinition, StyleDefinitionInput, SyntaxStyle, ThemeTokenStyle |
Supported | Tree-sitter |
Plugins, console, and process services#
| Area | Symbols | Class | Canonical documentation |
|---|---|---|---|
| Generic slots | createSlotRegistry, Plugin, PluginContext, PluginErrorEvent, PluginErrorPhase, PluginErrorReport, PluginErrorSource, ResolvedSlotRenderer, SlotMode, SlotRegistry, SlotRegistryOptions, SlotRenderer |
Supported | Plugin slots |
| Core slots | CoreManagedSlot, CorePlugin, CoreResolvedSlotRenderer, CoreSlotContribution, CoreSlotFailurePlaceholder, CoreSlotMode, CoreSlotRegistry, CoreSlotRenderer, createCoreSlotRegistry, registerCorePlugin, resolveCoreSlot, SlotRenderable, SlotRenderableOptions |
Supported | Core plugin slots |
| Console overlay | capture, ConsoleAction, ConsoleKeyBinding, ConsoleOptions, ConsolePosition, TerminalConsole |
Supported | Console overlay |
| Environment access | clearEnvCache, env, EnvVarConfig, registerEnvVar |
Advanced | Environment variables |
| Environment registry output | envRegistry, generateEnvColored, generateEnvMarkdown |
Implementation-looking public export | Environment variables |
| Terminal palette | buildTerminalPaletteSignature, createTerminalPalette, GetPaletteOptions, NormalizedTerminalPalette, normalizeTerminalPalette, OscSubscriptionSource, TerminalColors, TerminalPalette, TerminalPaletteDetector, TerminalPaletteOptions, WriteFunction |
Advanced | Terminal capabilities |
| Application paths | DataPaths, DataPathsEvents, DataPathsManager, getDataPaths |
Advanced | Application data paths |
| Clocks | Clock, SystemClock, TimerHandle |
Advanced | Animation and Timeline |
Components and component helpers#
| Component or area | Symbols | Class | Canonical documentation |
|---|---|---|---|
| ASCII font | ASCIIFontName, ASCIIFontOptions, ASCIIFontRenderable, coordinateToCharacterIndex, fonts, getCharacterPositions, measureText, renderFontToFrameBuffer |
Supported | ASCII font |
| Box and borders | BorderCharacters, BorderCharArrays, BorderChars, borderCharsToArray, BorderConfig, BorderSides, BorderSidesConfig, BorderStyle, BoxDrawOptions, BoxOptions, BoxRenderable, getBorderFromSides, getBorderSides, isValidBorderStyle, parseBorderStyle |
Supported | Box |
| Code | ChunkRenderContext, CodeOptions, CodeRenderable, HighlightContext, OnChunksCallback, OnHighlightCallback |
Supported | Code |
| Diff | DiffRenderable, DiffRenderableOptions |
Supported | Diff |
| Embedded terminal | EmbeddedTerminalDataSource, EmbeddedTerminalOptions, EmbeddedTerminalRenderable, EmbeddedTerminalScreen |
Supported | Embedded terminal |
| Editable buffer renderable | ContentChangeEvent, CursorChangeEvent, EditBufferOptions, EditBufferRenderable, EditBufferRenderableEvents, EditorCapture, EditorTraits, isEditBufferRenderable |
Advanced | Editing buffers and views |
| Frame buffer | FrameBufferOptions, FrameBufferRenderable |
Advanced | Frame buffer |
| Image display | ImageFit, ImageRenderable, ImageRenderableOptions, ImageRenderableSource, resolveImageRenderProtocol |
Supported | Image |
| Input | InputAction, InputKeyBinding, InputRenderable, InputRenderableEvents, InputRenderableOptions |
Supported | Input |
| Line number gutter | LineColorConfig, LineNumberOptions, LineNumberRenderable, LineSign |
Supported | Line number gutter |
| Markdown | BlockState, createMarkdownCodeBlockRenderer, MarkdownCodeBlockRenderer, MarkdownCodeBlockRendererMap, MarkdownOptions, MarkdownRenderable, MarkdownTableOptions, MarkdownTableStyle, RenderNodeContext |
Supported | Markdown |
| Markdown parser state | ParseState |
Implementation-looking public export | Markdown |
| Scroll bar | ArrowOptions, ArrowRenderable, ScrollBarOptions, ScrollBarRenderable, ScrollUnit |
Advanced | Scroll bar |
| Scroll box | ScrollBoxOptions, ScrollBoxRenderable |
Supported | Scroll box |
| Select | SelectAction, SelectKeyBinding, SelectOption, SelectRenderable, SelectRenderableEvents, SelectRenderableOptions |
Supported | Select |
| Slider | SliderOptions, SliderRenderable |
Supported | Slider |
| Tab select | TabSelectAction, TabSelectKeyBinding, TabSelectOption, TabSelectRenderable, TabSelectRenderableEvents, TabSelectRenderableOptions |
Supported | Tab select |
| Text | TextOptions, TextRenderable |
Supported | Text |
| Text nodes | isTextNodeRenderable, RootTextNodeRenderable, TextNodeOptions, TextNodeRenderable |
Advanced | Text and terminal cells |
| Text table | TextTableCellContent, TextTableColumnFitter, TextTableColumnWidthMode, TextTableContent, TextTableOptions, TextTableRenderable |
Supported | Text table |
| Textarea | defaultTextareaKeyBindings, KeyBinding, SubmitEvent, TextareaAction, TextareaKeyAliasMap, TextareaOptions, TextareaRenderable |
Supported | Textarea |
| Text buffer renderable | TextBufferOptions, TextBufferRenderable |
Advanced | Editing buffers and views |
| First-draw timestamp | TimeToFirstDrawOptions, TimeToFirstDrawRenderable |
Supported | Time to first draw |
Buffers, editing, animation, and effects#
| Area | Symbols | Class | Canonical documentation |
|---|---|---|---|
| Cell buffer | OptimizedBuffer |
Advanced | Buffer API |
| Text buffer | TextBuffer, TextChunk, TextBufferView |
Advanced | Editing buffers and views |
| Editing | EditBuffer, EditorView, Viewport |
Advanced | Editing buffers and views |
| Extmarks | createExtmarksController, Extmark, ExtmarkOptions, ExtmarksController |
Experimental, Advanced | Editing buffers and views |
| Timeline | AnimationOptions, createTimeline, EasingFunctions, JSAnimation, Timeline, TimelineOptions |
Supported | Animation and Timeline |
| Animation engine | engine |
Implementation-looking public export | Animation and Timeline |
| Effects | CloudsEffect, CRTRollingBarEffect, DistortionEffect, FlamesEffect, RainbowTextEffect, VignetteEffect |
Experimental, Advanced | Post-processing effects |
| Filters | applyAsciiArt, applyBrightness, applyChromaticAberration, applyGain, applyInvert, applyNoise, applySaturation, applyScanlines, BloomEffect |
Experimental, Advanced | Post-processing effects |
| Matrices | ACHROMATOPSIA_MATRIX, DEUTERANOPIA_COMP_MATRIX, DEUTERANOPIA_SIM_MATRIX, GRAYSCALE_MATRIX, GREENSCALE_MATRIX, INVERT_MATRIX, PROTANOPIA_COMP_MATRIX, PROTANOPIA_SIM_MATRIX, SEPIA_MATRIX, SOLARIZATION_MATRIX, SYNTHWAVE_MATRIX, TECHNICOLOR_MATRIX, TRITANOPIA_COMP_MATRIX, TRITANOPIA_SIM_MATRIX |
Advanced | Color matrices |
Images, audio, and native span output#
| Area | Symbols | Class | Canonical documentation |
|---|---|---|---|
NativeImage API |
BlendMode, CompositeOptions, ExtendOptions, ExtractOptions, ImageColorStatus, ImageError, ImageErrorCode, ImageFormat, imageInfo, ImageInfo, ImageLoadError, ImageLoadErrorCode, ImageLoadOptions, ImageSource, NativeImage, OwnedRawImage, PixelFormat, RawImage, ResizeKernel, ResizeOptions |
Advanced | NativeImage |
| Audio playback and mixing | Audio, AudioAction, AudioErrorContext, AudioEvents, AudioGroup, AudioInitializationAction, AudioInitializationError, AudioPlaybackDevice, AudioPlayOptions, AudioSetupOptions, AudioSound, AudioStartOptions, AudioVoice, setupAudio |
Supported | Audio |
| Streaming audio | AudioStream, AudioStreamAction, AudioStreamBody, AudioStreamBodyOptions, AudioStreamBufferOptions, AudioStreamConnectContext, AudioStreamConnection, AudioStreamConnector, AudioStreamContentTypeContext, AudioStreamContentTypePolicy, AudioStreamDemuxer, AudioStreamDemuxerFactory, AudioStreamDemuxOutput, AudioStreamError, AudioStreamErrorContext, AudioStreamEvents, AudioStreamFormat, AudioStreamMetadata, AudioStreamMetadataFormat, AudioStreamOptions, AudioStreamReconnectEvent, AudioStreamReconnectOptions, AudioStreamRetryContext, AudioStreamRetryDecision, AudioStreamRetryPhase, AudioStreamSourceOptions, AudioStreamState, AudioStreamStats, AudioStreamUrlOptions, createIcyStreamDemuxer, IcyStreamDemuxerOptions |
Supported | Streaming audio |
| Audio capture and recording | AudioCaptureDevice, AudioCaptureOptions, AudioCaptureReadResult, AudioCaptureStats, AudioCaptureStream, AudioCaptureStreamAction, AudioCaptureStreamError, AudioCaptureStreamErrorContext, AudioCaptureStreamEvents, AudioCaptureStreamOptions, AudioCaptureStreamState, AudioCaptureStreamStats, AudioRecorder, AudioRecorderAction, AudioRecorderError, AudioRecorderErrorContext, AudioRecorderEvents, AudioRecorderState, AudioRecorderStats, AudioRecordToFileOptions |
Supported | Audio capture and recording |
| Native span output | DataHandler, NativeSpanFeed |
Advanced | NativeSpanFeed |
Low-level native binding exports#
These names expose the TypeScript side of the native binding. Use the higher-level API unless a low-level guide requires one of them.
| Area | Symbols | Class | Canonical documentation |
|---|---|---|---|
| Native handles and binding types | AudioEngineHandle, AudioEngineLib, ClipboardOperationHandle, ClipboardServiceHandle, CursorState, EditBufferHandle, EditorViewHandle, EventSinkHandle, ImageHandle, LogicalCursor, LogLevel, MeasureResult, NativeAudioStreamCloseReason, NativeAudioStreamFormat, NativeAudioStreamState, NativeBufferedOutput, NativeClipboardCancelStatus, NativeClipboardCopyStatus, NativeClipboardDestroyStatus, NativeClipboardOperationStatus, NativeClipboardShutdownStatus, NativeClipboardStartStatus, NativeHandle, NativeMeasureTargetHandle, NativeMeasureTargetKind, NativeRenderableHandle, NativeRendererCreateOptions, NativeRenderOperationResult, NativeSpanFeedEventHandler, NativeYogaDirtiedCallback, NativeYogaLayout, NativeYogaMeasureCallback, OptimizedBufferHandle, RendererHandle, RenderLib, resolveRenderLib, setRenderLibPath, SyntaxStyleHandle, TextBufferHandle, TextBufferViewHandle, VisualCursor |
Implementation-looking public export | This section |
| Native result structures | AllocatorStats, AudioStreamCreateOptions, BuildOptions, GrowthPolicy, NativeAudioCaptureStats, NativeAudioStreamStats, NativeRenderStats, NativeSpanFeedOptions, NativeSpanFeedStats |
Advanced | This section |
| Bundled asset resolution | resolveBundledFilePath |
Implementation-looking public export | Standalone executables |
| Yoga namespace | Yoga |
Advanced | Yoga API |
Other @opentui/core entry points#
Testing#
@opentui/core/testing works in Bun and Node.js.
| Area | Symbols | Class | Canonical documentation |
|---|---|---|---|
| Renderer setup | createTestRenderer, MockInput, MockMouse, TestExternalOutput, TestExternalOutputCommit, TestFlushOptions, TestRenderer, TestRendererOptions, TestRendererSetup, TestVisualIdleOptions, TestWaitForOptions |
Supported | Testing |
| Keyboard and mouse | createMockKeys, createMockMouse, KeyCodes, KeyInput, MockKeysOptions, MouseButton, MouseButtons, MouseEventOptions, MouseEventType, MouseModifiers, MousePosition, pasteBytes |
Supported | Testing |
| Capabilities | createTerminalCapabilities, setRendererCapabilities, TerminalCapabilitiesOverrides |
Supported | Testing |
| Deterministic helpers | createSpy, ManualClock, MockTreeSitterClient |
Supported | Testing |
| Recording | RecordedFrame, TestRecorder |
Supported | Testing |
Runtime plugin support#
These entry points are Bun-only. Their Node.js targets are stubs that throw during import.
| Package entry point | Symbols | Class | Canonical documentation |
|---|---|---|---|
@opentui/core/runtime-plugin |
createRuntimePlugin, CreateRuntimePluginOptions, isCoreRuntimeModuleSpecifier, RuntimeModuleEntry, RuntimeModuleExports, runtimeModuleIdForSpecifier, RuntimeModuleLoader, RuntimePluginRewriteOptions |
Runtime-specific, Advanced | Runtime module loading |
@opentui/core/runtime-plugin-support |
createRuntimePlugin, CreateRuntimePluginOptions, ensureRuntimePluginSupport, RuntimeModuleEntry, RuntimeModuleExports, runtimeModuleIdForSpecifier, RuntimeModuleLoader |
Runtime-specific, Advanced | Runtime module loading |
@opentui/core/runtime-plugin-support/configure |
createRuntimePlugin, CreateRuntimePluginOptions, ensureRuntimePluginSupport, RuntimeModuleEntry, RuntimeModuleExports, runtimeModuleIdForSpecifier, RuntimeModuleLoader |
Runtime-specific, Advanced | Runtime module loading |
Yoga#
@opentui/core/yoga works in Bun and Node.js. The root Yoga namespace exposes this module. See Yoga API for methods and ownership.
| Purpose | Symbols | Class |
|---|---|---|
| Objects and callback types | Config, Node, default, DirtiedFunction, Layout, MeasureFunction, Size, Value |
Advanced |
| Alignment | Align, ALIGN_AUTO, ALIGN_BASELINE, ALIGN_CENTER, ALIGN_FLEX_END, ALIGN_FLEX_START, ALIGN_SPACE_AROUND, ALIGN_SPACE_BETWEEN, ALIGN_SPACE_EVENLY, ALIGN_STRETCH |
Advanced |
| Box sizing | BoxSizing, BOX_SIZING_BORDER_BOX, BOX_SIZING_CONTENT_BOX |
Advanced |
| Dimensions | Dimension, DIMENSION_HEIGHT, DIMENSION_WIDTH |
Advanced |
| Direction | Direction, DIRECTION_INHERIT, DIRECTION_LTR, DIRECTION_RTL |
Advanced |
| Display | Display, DISPLAY_CONTENTS, DISPLAY_FLEX, DISPLAY_NONE |
Advanced |
| Edges | Edge, EDGE_ALL, EDGE_BOTTOM, EDGE_END, EDGE_HORIZONTAL, EDGE_LEFT, EDGE_RIGHT, EDGE_START, EDGE_TOP, EDGE_VERTICAL |
Advanced |
| Compatibility errata | Errata, ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE, ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING, ERRATA_ALL, ERRATA_CLASSIC, ERRATA_NONE, ERRATA_STRETCH_FLEX_BASIS |
Advanced |
| Experimental feature | ExperimentalFeature, EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS |
Experimental, Advanced |
| Flex direction | FlexDirection, FLEX_DIRECTION_COLUMN, FLEX_DIRECTION_COLUMN_REVERSE, FLEX_DIRECTION_ROW, FLEX_DIRECTION_ROW_REVERSE |
Advanced |
| Gaps | Gutter, GUTTER_ALL, GUTTER_COLUMN, GUTTER_ROW |
Advanced |
| Justification | Justify, JUSTIFY_CENTER, JUSTIFY_FLEX_END, JUSTIFY_FLEX_START, JUSTIFY_SPACE_AROUND, JUSTIFY_SPACE_BETWEEN, JUSTIFY_SPACE_EVENLY |
Advanced |
| Logging | LogLevel, LOG_LEVEL_DEBUG, LOG_LEVEL_ERROR, LOG_LEVEL_FATAL, LOG_LEVEL_INFO, LOG_LEVEL_VERBOSE, LOG_LEVEL_WARN |
Advanced |
| Measurement | MeasureMode, MEASURE_MODE_AT_MOST, MEASURE_MODE_EXACTLY, MEASURE_MODE_UNDEFINED |
Advanced |
| Node type | NodeType, NODE_TYPE_DEFAULT, NODE_TYPE_TEXT |
Advanced |
| Overflow | Overflow, OVERFLOW_HIDDEN, OVERFLOW_SCROLL, OVERFLOW_VISIBLE |
Advanced |
| Position | PositionType, POSITION_TYPE_ABSOLUTE, POSITION_TYPE_RELATIVE, POSITION_TYPE_STATIC |
Advanced |
| Units | Unit, UNIT_AUTO, UNIT_PERCENT, UNIT_POINT, UNIT_UNDEFINED |
Advanced |
| Wrapping | Wrap, WRAP_NO_WRAP, WRAP_WRAP, WRAP_WRAP_REVERSE |
Advanced |
Tree-sitter assets, worker, and Node assets#
| Package entry point | Runtime | Symbols | Class | Canonical documentation |
|---|---|---|---|---|
@opentui/core/tree-sitter/update-assets |
Build time, with Bun CLI | runUpdateAssetsCli, updateAssets, UpdateOptions |
Runtime-specific | Tree-sitter |
@opentui/core/parser.worker |
Bun and Node.js worker | No named application exports | Implementation-looking public export | Tree-sitter |
@opentui/core/node-assets |
Node.js build time | getNodeAssets, NodeAsset, NodeAssetTarget |
Runtime-specific | Standalone executables |
@opentui/react#
The root and compiler-selected JSX entry points work in Bun and Node.js.
Root exports#
| Area | Symbols | Class | Canonical documentation |
|---|---|---|---|
| Root rendering | createElement, createPortal, createRoot, flushSync, Root |
Supported | React bindings |
| Application context | AppContext, useAppContext |
Supported | React bindings |
| Hooks | useBlur, useFocus, useKeyboard, UseKeyboardOptions, useOnResize, usePaste, useRenderer, useSelectionHandler, useTerminalDimensions, useTimeline |
Supported | React bindings |
| Catalogue extension | extend, ExtendedComponentProps, ExtendedIntrinsicElements, getComponentCatalogue, OpenTUIComponents, RenderableConstructor |
Advanced | React bindings |
| Catalogue objects | baseComponents, componentCatalogue |
Implementation-looking public export | React bindings |
| Component prop types | AsciiFontProps, BoxProps, CodeProps, DiffProps, GetNonStyledProperties, ImageProps, InputProps, LineBreakProps, LineNumberProps, LinkProps, MarkdownProps, NonStyledProps, ReactProps, ScrollBoxProps, SelectProps, SpanProps, TabSelectProps, TextareaProps, TextProps |
Supported | Components overview |
| Plugin slots | createReactSlotRegistry, createSlot, ReactBoundSlotProps, ReactPlugin, ReactRegistrySlotComponent, ReactSlotComponent, ReactSlotOptions, ReactSlotProps, Slot, SlotMode |
Supported | React plugin slots |
| First-draw timestamp | TimeToFirstDraw, TimeToFirstDrawProps |
Supported | Time to first draw |
Other React entry points#
| Package entry point | Symbols | Class | Canonical documentation |
|---|---|---|---|
@opentui/react/renderer declarations |
createPortal, createRoot, flushSync, Root |
Supported | React bindings |
@opentui/react/renderer runtime |
All runtime values from @opentui/react |
Implementation-looking public export | React bindings |
@opentui/react/test-utils |
testRender |
Supported | Testing |
@opentui/react/runtime-plugin-support |
ensureRuntimePluginSupport, ReactRuntimePluginSupportOptions |
Runtime-specific, Advanced | Runtime module loading |
@opentui/react/runtime-plugin-support/configure |
ensureRuntimePluginSupport, ReactRuntimePluginSupportOptions |
Runtime-specific, Advanced | Runtime module loading |
@opentui/react/jsx-runtime |
Fragment, jsx, jsxs, JSX |
Supported | React bindings |
@opentui/react/jsx-dev-runtime |
Fragment, jsxDEV, JSX |
Supported | React bindings |
The generated React map points /renderer runtime imports to index.js. Its declaration path points to reconciler/renderer.d.ts. Treat root values outside the four declared names as a build leak.
@opentui/solid#
The root, /components, and compiler-selected JSX entry points work in Bun and Node.js.
Root exports#
| Area | Symbols | Class | Canonical documentation |
|---|---|---|---|
| Root rendering | render, testRender |
Supported | Solid bindings |
| Hooks | onBlur, onFocus, onResize, useKeyboard, UseKeyboardOptions, usePaste, useRenderer, useSelectionHandler, useTerminalDimensions, useTimeline |
Supported | Solid bindings |
| Renamed hook | useKeyHandler |
Deprecated | Use useKeyboard in Solid bindings. |
| Components | createDynamic, Dynamic, DynamicProps, Portal |
Supported | Solid bindings |
| Scrollback | createScrollbackWriter, SolidScrollbackNode, SolidScrollbackWriterOptions, writeSolidToScrollback |
Advanced | Renderer |
| Catalogue extension | extend, ExtendedComponentProps, ExtendedIntrinsicElements, getComponentCatalogue, OpenTUIComponents, RenderableConstructor |
Advanced | Solid bindings |
| Catalogue and text wrappers | baseComponents, BoldSpanRenderable, componentCatalogue, ItalicSpanRenderable, LineBreakRenderable, LinkOptions, LinkRenderable, TextNodeKey, textNodeKeys, UnderlineSpanRenderable |
Implementation-looking public export | Solid bindings |
| Reconciler | _render, createComponent, createElement, createSlotNode, createTextNode, DomNode, effect, insert, insertNode, memo, mergeProps, setProp, spread, use |
Implementation-looking public export | Solid bindings |
| Reconciler context and wrappers | LayoutSlotRenderable, RendererContext, SlotRenderable, TextSlotRenderable |
Implementation-looking public export | Solid bindings |
| Component prop types | AsciiFontProps, BoxProps, CodeProps, ElementProps, GetNonStyledProperties, ImageProps, InputProps, LinkProps, MarkdownProps, NonStyledProps, ScrollBoxProps, SelectProps, SpanProps, TabSelectProps, TextareaProps, TextProps |
Supported | Components overview |
| Plugin slots | createSlot, createSolidSlotRegistry, Slot, SlotMode, SolidBoundSlotProps, SolidPlugin, SolidRegistrySlotComponent, SolidSlotComponent, SolidSlotOptions, SolidSlotProps |
Supported | Solid plugin slots |
| JSX namespace | JSX |
Supported | Solid bindings |
| First-draw timestamp | TimeToFirstDraw, TimeToFirstDrawProps |
Supported | Time to first draw |
Other Solid entry points#
| Package entry point | Symbols | Class | Canonical documentation |
|---|---|---|---|
@opentui/solid/preload |
No named exports. Importing it installs the Bun source transform. | Runtime-specific | Solid bindings |
@opentui/solid/bun-plugin |
createSolidTransformPlugin, CreateSolidTransformPluginOptions, default, ensureSolidTransformPlugin, resetSolidTransformPluginState |
Runtime-specific, Advanced | Solid bindings |
@opentui/solid/runtime-plugin-support |
ensureRuntimePluginSupport, SolidRuntimePluginSupportOptions |
Runtime-specific, Advanced | Runtime module loading |
@opentui/solid/runtime-plugin-support/configure |
ensureRuntimePluginSupport, SolidRuntimePluginSupportOptions |
Runtime-specific, Advanced | Runtime module loading |
@opentui/solid/components |
extend, ExtendedComponentProps, ExtendedIntrinsicElements, getComponentCatalogue, OpenTUIComponents |
Advanced | Solid bindings |
@opentui/solid/jsx-runtime |
Fragment, jsx, jsxDEV, jsxs, JSX |
Supported | Solid bindings |
@opentui/solid/jsx-dev-runtime |
Fragment, jsxDEV, JSX |
Supported | Solid bindings |
@opentui/keymap#
Root engine#
The root engine is host-agnostic. Use an adapter entry point to connect it to a browser or OpenTUI renderer.
| Kind | Symbols | Class | Canonical documentation |
|---|---|---|---|
| Values | Keymap, KEYMAP_EXTENSION_CONTEXT, stringifyKeySequence, stringifyKeyStroke |
Supported | Core keymap API |
| Types | ActiveBinding, ActiveKey, ActiveKeyOptions, Attributes, Binding, BindingCommand, BindingEvent, BindingExpander, BindingExpanderContext, BindingExpansion, BindingFieldCompiler, BindingFieldContext, BindingParser, BindingParserContext, BindingParserResult, Bindings, BindingsValidationResult, BindingTransformer, BindingTransformerContext, Command, CommandBindingsQuery, CommandContext, CommandEntry, CommandFieldCompiler, CommandFieldContext, CommandFilter, CommandHandler, CommandQuery, CommandQueryValue, CommandResolver, CommandResolverContext, CommandResult, CommandTransformer, CommandTransformerContext, DispatchBinding, DispatchEvent, DispatchLayer, DispatchPhase, ErrorEvent, EventData, EventMatchResolver, EventMatchResolverContext, EventName, Events, HostCapability, HostMetadata, HostModifier, HostPlatform, InterceptName, Intercepts, KeyAfterInputContext, KeyAfterReason, KeyDeferredDisambiguationContext, KeyDeferredDisambiguationDecision, KeyDeferredDisambiguationHandler, KeyDisambiguationContext, KeyDisambiguationDecision, KeyDisambiguationResolver, KeyInputContext, KeyInterceptOptions, KeyLike, KeymapEvent, KeymapExtensionContext, KeymapExtensionProvider, KeymapHost, KeyMatch, KeySequencePart, KeyStringifyInput, KeyStrokeInput, KeyToken, Layer, LayerAnalysisContext, LayerAnalyzer, LayerBindingAnalysis, LayerBindingsTransformer, LayerBindingsTransformerContext, LayerFieldCompiler, LayerFieldContext, Listener, NormalizedKeyStroke, ParsedBinding, ParsedCommand, RawInputContext, RawInterceptOptions, ReactiveMatcher, ResolvedKeyToken, ResolvedSequencePattern, RunCommandOptions, RunCommandResult, SequencePattern, SequencePatternMatch, StringifyOptions, TargetMode, WarningEvent |
Supported | Core keymap API |
Extras and graph#
| Package entry point | Symbols | Class | Canonical documentation |
|---|---|---|---|
@opentui/keymap/extras |
BindingCommandMap, BindingConfig, BindingConfigItem, BindingDefaults, BindingDefaultsContext, BindingLookup, BindingValue, CommandBindingMap, commandBindings, CommandBindingsError, CommandBindingsOptions, CommandBindingsOverrideWarning, createBindingLookup, CreateBindingLookupOptions, formatCommandBindings, FormatCommandBindingsOptions, formatKeySequence, FormatKeySequenceOptions, KeyModifierName, KeySequenceFormatPart, SequenceBindingLike, TokenDisplayResolver |
Supported | Core keymap API |
@opentui/keymap/extras/graph |
createGraphExtra, getGraphSnapshot, GraphBinding, GraphCommand, GraphInactiveReason, GraphLayer, GraphSequenceNode, GraphSnapshot, GraphSnapshotOptions, KeymapGraphExtra |
Advanced | Core keymap API |
Addons#
| Package entry point | Symbols | Class | Canonical documentation |
|---|---|---|---|
@opentui/keymap/addons |
Aliases, BackspacePopsPendingSequenceOptions, defaultBindingParser, defaultEventMatchResolver, Enabled, EscapeClearsPendingSequenceOptions, ExCommand, ExCommandPayload, LeaderOptions, LeaderTrigger, NeovimDisambiguationOptions, registerAliasesField, registerBackspacePopsPendingSequence, registerBindingOverrides, registerCommaBindings, registerDeadBindingWarnings, registerDefaultBindingParser, registerDefaultEventMatchResolver, registerDefaultKeys, registerEmacsBindings, registerEnabledFields, registerEscapeClearsPendingSequence, registerExCommands, registerLeader, registerMetadataFields, registerModBindings, registerNeovimDisambiguation, registerTimedLeader, registerUnresolvedCommandWarnings, TimedLeaderOptions |
Supported | Built-in keymap addons |
@opentui/keymap/addons/opentui |
Every export from @opentui/keymap/addons, plus createTextareaBindings, EditBufferCommandName, EditBufferCommandOptions, EditBufferFineGroup, registerBaseLayoutFallback, registerEditBufferCommands, registerManagedTextareaLayer, registerTextareaMappingSuspension |
Supported | Built-in keymap addons and Custom keymap addons |
Testing and hosts#
| Package entry point | Runtime | Symbols | Class | Canonical documentation |
|---|---|---|---|---|
@opentui/keymap/testing |
JavaScript test runtimes | captureKeymapDiagnostics, createTestHostMetadata, createTestKeymap, createTestKeymapHost, CreateTestKeymapHostOptions, CreateTestKeymapOptions, DEFAULT_TEST_HOST_METADATA, TestDiagnosticCapture, TestHostMetadataOptions, TestKeymapEvent, TestKeymapHarness, TestKeymapHost, TestKeymapTarget, TestKeyModifierOptions |
Supported | Core keymap API |
@opentui/keymap/html |
Browser DOM | createDefaultHtmlKeymap, createHtmlKeymap, createHtmlKeymapEvent, createHtmlKeymapHost, htmlEventMatchResolver, HtmlKeymapEvent, normalizeHtmlKeyName |
Runtime-specific | Keymap hosts |
@opentui/keymap/opentui |
Bun and Node.js | createDefaultOpenTuiKeymap, createOpenTuiKeymap, createOpenTuiKeymapHost |
Runtime-specific | Keymap hosts |
Frameworks and runtime modules#
| Package entry point | Symbols | Class | Canonical documentation |
|---|---|---|---|
@opentui/keymap/react |
KeymapProvider, KeymapProviderProps, reactiveMatcherFromStore, useActiveKeys, useBindings, UseBindingsLayer, UseBindingsTargetRef, useKeymap, usePendingSequence |
Runtime-specific | React keymap integration |
@opentui/keymap/solid |
KeymapProvider, KeymapProviderProps, reactiveMatcherFromSignal, useBindings, UseBindingsLayer, UseBindingsTarget, useKeymap, useKeymapSelector |
Runtime-specific | Solid keymap integration |
@opentui/keymap/runtime-modules |
runtimeModules |
Runtime-specific, Advanced | Runtime module loading |
The runtimeModules map contains the root, both extras paths, both addon paths, and both host adapters. It loads the React and Solid paths lazily. It does not contain /testing or /runtime-modules.
@opentui/qrcode#
The package root works in Bun and Node.js. Each framework path re-exports the full root and adds its registration function.
| Package entry point | Symbols | Class | Canonical documentation |
|---|---|---|---|
@opentui/qrcode |
ByteEncoding, createQrSvg, EciAssignment, EncodeOptions, encodeTextBytes, ErrorCorrectionLevel, Fnc1SecondPositionInfo, Gs1Element, QRCode, QRCodeFitMode, QRCodeOptions, QRCodeRenderable, QrSegment, StructuredAppendInfo, TerminalRenderOptions |
Supported | QR encoder and QR code component |
@opentui/qrcode/react |
Every root export, plus registerQRCode |
Runtime-specific | QR code component |
@opentui/qrcode/solid |
Every root export, plus registerQRCode |
Runtime-specific | QR code component |
@opentui/ssh#
The package supports Bun 1.3.0 and Node.js 26.4.0. It has one public entry point.
| Symbols | Class | Canonical documentation |
|---|---|---|
AuthConfig, AuthMethods, ConfigError, createServer, DenyError, Handoff, Identity, IdentityFor, ListenInfo, LogEvent, logging, LoggingOptions, Middleware, MiddlewareFunction, MiddlewareSession, Next, PublicKey, PublicKeyPolicy, RemoteAddress, Server, ServerBuilder, ServerConfig, Session, SessionHandler, SshError |
Runtime-specific | SSH |
@opentui/three#
Both entry points are Bun-only.
| Package entry point | Symbols | Class | Canonical documentation |
|---|---|---|---|
@opentui/three |
AnimationDefinition, AnimationStateConfig, CLICanvas, DEFAULT_EXPLOSION_PARAMETERS, DEFAULT_PHYSICS_EXPLOSION_PARAMETERS, ExplodingSpriteEffect, ExplosionCreationData, ExplosionEffectParameters, ExplosionHandle, ExplosionManager, InstanceManager, InstanceManagerOptions, MeshPool, MeshPoolOptions, ParticleEffectParameters, PhysicsExplodingSpriteEffect, PhysicsExplosionCreationData, PhysicsExplosionEffectParameters, PhysicsExplosionHandle, PhysicsExplosionManager, PhysicsSpriteRecreationData, PlanckPhysicsWorld, PlanckRigidBody, RapierPhysicsWorld, RapierRigidBody, ResolvedAnimationState, ResourceConfig, SheetProperties, SheetSprite, SpriteAnimator, SpriteDefinition, SpriteParticleGenerator, SpriteRecreationData, SpriteResource, SpriteResourceManager, SpriteUtils, SuperSampleAlgorithm, SuperSampleType, TextureUtils, THREE, ThreeCliRenderer, ThreeCliRendererOptions, ThreeRenderable, ThreeRenderableOptions, TiledSprite |
Runtime-specific, Advanced | Three.js WebGPU |
@opentui/three/runtime-modules |
runtimeModules |
Runtime-specific, Advanced | Runtime module loading |
The THREE namespace exposes the installed Three.js module. The runtimeModules map contains only the @opentui/three root.
Native distribution packages#
The build generates eight platform packages:
@opentui/core-darwin-x64@opentui/core-darwin-arm64@opentui/core-linux-x64@opentui/core-linux-arm64@opentui/core-linux-x64-musl@opentui/core-linux-arm64-musl@opentui/core-win32-x64@opentui/core-win32-arm64
Each package has one default export that resolves the native library path. These packages are internal distribution surfaces, not application APIs. Let @opentui/core select the correct package. See Runtime and platform support.
Source-defined native ABI#
The npm API and the source-defined native application binary interface (ABI) are separate surfaces. lib.zig defines 335 exported functions. The Yoga module defines 50 more, and NativeSpanFeed defines 11 more.
OpenTUI’s TypeScript packages call these functions through an internal ABI. The project does not publish a first-party C header or a supported standalone C contract. Do not treat the 396 source names as supported npm symbols or as an API for other language bindings.
The native binding can change with its TypeScript callers. Use the TypeScript exports indexed above for application code.