Skip to content

Compare With OpenTUI Solid

This page defines how vue-tui can compare itself with @opentui/solid without overstating the current data.

Current Status

As of 2026-05-25, vue-tui does not have a same-machine, same-terminal, same-scenario benchmark report against @opentui/solid.

Allowed public claim:

vue-tui has internal regression budgets for dirty rows, renderer work, mailbox coalescing, DOM flushing, retained logs, search, and markdown/log/agent UI scenarios.

Not allowed without a completed comparison report:

  • vue-tui is faster than OpenTUI.
  • vue-tui is faster than @opentui/solid.
  • vue-tui has native-level rendering performance.
  • vue-tui is more production-proven than OpenTUI.

Source Facts

These facts are useful for positioning, not for performance conclusions:

SourceFact used in comparisonVerified
OpenTUI Getting StartedOpenTUI describes itself as a native Zig terminal UI core with TypeScript bindings and Bun-first install.2026-05-25
OpenTUI RenderercreateCliRenderer() initializes the OpenTUI CLI renderer and loads the native Zig rendering library.2026-05-25
@opentui/solid on npmThe package is Solid.js support for OpenTUI and documents Bun + Solid JSX setup.2026-05-25
OpenTUI Solid plugin docsThe Solid integration includes slot registry and runtime plugin support for Solid JSX UI.2026-05-25

Product Fit

Dimensionvue-tui@opentui/solidPractical reading
FrameworkVue 3 components, SFC-friendly composition, Vue reactivitySolid JSX bindingVue apps should start with vue-tui; Solid apps should start with OpenTUI Solid.
Runtime targetNode package target plus browser DOM, CLI stdout, and headless testingBun-first OpenTUI terminal pathvue-tui has the clearer Node/Vite/browser package story today.
Renderer routeJS terminal buffer, DOM renderer, stdout renderer, headless renderer useNative Zig renderer exposed through TypeScriptOpenTUI owns the native terminal renderer story; vue-tui owns cross-host renderer use.
Browser DOMFirst-class DOM renderer with browser import and SSR import smokeNot the comparable primary pathBrowser-hosted terminal UI is a vue-tui differentiator.
Logs/agent UIExperimental TLogView, markdown block source, agent console exampleOpenTUI has rich native terminal componentsCompare app scenarios, not abstract renderer throughput.
Stability1.0 contract is documented by entrypoint maturity and release gatesOpenTUI is also actively documented and evolvingvue-tui should claim contract clarity, not ecosystem dominance.

Positioning sentence:

vue-tui gives Vue teams one package contract across browser-hosted terminal UIs, CLI stdout apps, and headless tests, with high-throughput primitives for logs, markdown transcripts, and agent-console surfaces.

Required Test Protocol

Every comparison run must record:

FieldRequired value
MachineCPU model, memory, OS, kernel/version
RuntimeNode/Bun versions and package manager versions
Package versionsvue-tui, Vue, @opentui/solid, Solid, @opentui/core
TerminalTerminal emulator name/version, shell, $TERM, viewport rows/cols
Build modedev/prod, source/tarball, bundler settings
Scenario datarow counts, viewport size, append rate, event count, ANSI/OSC8/markdown flags
Measurement methodtimers, heap collection, stdout byte counter, CPU sample method, warmup policy
Raw artifactsJSON results, command log, git SHA, tarball SHA256

Do not compare vue-tui browser DOM results against OpenTUI native CLI results as if they are the same category. Browser-hosted terminal should be reported as a vue-tui-only differentiator unless a comparable browser renderer is added to the other side.

Scenario 1: 100k Virtual List Scroll

Viewport: 120x40 terminal. Dataset: 100000 rows. Input: 100 wheel or key scroll events.

Metricvue-tui@opentui/solid
cold start ms
first paint ms
100 scroll events total ms
p95 input-to-paint ms
p99 input-to-paint ms
frames
bytes written to stdout
heap delta MB
CPU time ms

Required notes:

  • Whether the test is coalesced burst input or spaced input.
  • Whether stdout writes are counted before or after terminal escape encoding.
  • Whether the renderer paints only visible rows or performs offscreen work.

Scenario 2: Streaming Log / Transcript

Dataset: 100000 appended lines. Retention: 1000 lines. Viewport: 30 visible log rows. Append rate: 10 lines per tick. Include detached scroll behavior.

Metricvue-tui@opentui/solid
append throughput lines/s
p95 frame ms
p99 frame ms
render/get calls per visible frame
heap after retention MB
detached viewport stability failures
bytes written to stdout per append frame

Required notes:

  • Whether ANSI SGR, OSC8 links, wrapping, and search are enabled.
  • Whether retention is implemented in the data source or renderer layer.
  • Whether detached scroll remains stable while new lines append.

Scenario 3: Agent Console

Layout: transcript, logs, bottom input, overlay command palette, streamed markdown blocks.

Metricvue-tui@opentui/solid
streaming markdown update p95
input typing p95
overlay open p95
overlay close p95
stdout bytes/frame
dropped frames over 60s
heap delta after 60s streaming MB

Required notes:

  • The markdown parser and syntax features used.
  • Whether logs and transcript are separate render planes/regions.
  • Whether input latency is measured while streaming is active.

Scenario 4: Browser-Hosted Terminal

This is a vue-tui-only benchmark unless the comparison target provides a comparable browser DOM renderer.

Metricvue-tui DOM
80x24 first render ms
120x40 first render ms
20 dirty rows DOM flush ms
cache-hit row flush ms
browser Vite import smokepass/fail
SSR import without window/document touchpass/fail

Interpretation Rules

  • If only vue-tui data exists, describe it as a vue-tui baseline.
  • If both projects have data but the scenarios differ, describe the difference and do not rank them.
  • If OpenTUI wins raw CLI throughput, keep vue-tui's positioning on Vue, browser DOM, Node/Vite, headless tests, and logs/markdown/agent UI reuse.
  • If vue-tui wins a same-scenario benchmark, publish the raw artifacts before using the claim in README or release notes.
  • Keep /experimental and /agent clearly labeled when benchmark scenarios use TVirtualList, TLogView, or agent console aggregation.

Copy Guidance

Safe:

vue-tui focuses on Vue 3, browser/CLI/headless reuse, explicit terminal permission boundaries, and high-throughput primitives for logs, markdown transcripts, and agent-console UIs.

Unsafe without comparison data:

vue-tui is faster than OpenTUI Solid.

vue-tui delivers native-level performance.

vue-tui is production-proven compared with OpenTUI.

Bug reports, feature requests, and documentation issues are tracked on GitHub Issues.