Skip to content

TSGPUI v0.3.0-beta.1 (pre-release)

Pre-release
Pre-release

Choose a tag to compare

@ByteTheDev ByteTheDev released this 21 Oct 01:22
· 3 commits to main since this release

Pre-release for testing. It is not for production use, and it may have bugs and breaking changes before 0.3.0.

Full change list: v0.2.0...v0.3.0-beta.1

Highlights

  • Native host API (api.native): file access confined to granted folders, process spawn from an allowlist (no shell), window control, desktop notifications, and local IPC between the app and other processes.
  • Host work runs in the background: calls run on worker threads so the window stays responsive. Backend tasks queue behind a waiting action and roll back cleanly if they fail.
  • Browser preview runs api.native through tsgpui preview, using a token-checked local endpoint.
  • examples/notes: a small app that saves, opens, deletes and lists notes through the native file API.
  • Development workflow: persisted state ("persist": true), a development overlay (F12 or Ctrl+Shift+I), and build diagnostics that keep the last good build running.
  • CSS and HTML: viewport units, z-index, and data-fetch POST with state-bound bodies.
  • Website and docs: new landing page, documentation section, and refreshed README.

Known gaps

  • The native window has not been run on macOS or Linux. CI builds the host on Windows and macOS only.
  • The WebView renderer does not provide api.native yet.
  • process.spawn waits for the child to exit, so long-running services need a separate process.start API.
  • Window minimize, maximize and restore work only in the native host, not in the browser preview.
  • IPC peers disconnect when the app reloads.
  • The landing page's status section is out of date.

Try the notes example

bun install
bun run gpui:host
node packages/cli/bin/tsgpui.mjs build --project examples/notes