.github
Pin release workflow actions (#706)
apps
Add compiled typography and model theme overrides (#575)
assets
Anti-alias rounded primitives and adopt Per-Monitor V2 DPI on Windows (#81)
build
Reload compiled TypeScript views from markup edits in native dev
docs
Report provenance and apply write-back for compiled TypeScript views
editors
Native SDK: the complete toolkit for building native desktop apps (#67)
evals
Move Markdown Viewer ownership to TypeScript (#636)
examples
Reuse exact text and metric decisions from compiled policies across frames
packages
Report provenance and apply write-back for compiled TypeScript views
scripts
Compile core contract policy in TypeScript (#554)
skill-data
Check TypeScript app markup with the TypeScript view compiler
skills
Make app.json the default manifest (#385)
src
Report provenance and apply write-back for compiled TypeScript views
tests
Report provenance and apply write-back for compiled TypeScript views
third_party
feat(storage): add SQLite-backed record store (#320)
tools
Reload compiled TypeScript views from markup edits in native dev
.gitignore
Migrate showcase examples to TypeScript (#573)
AGENTS.md
Make app.json the default manifest (#385)
app.zon
Native SDK: the complete toolkit for building native desktop apps (#67)
build.zig
Report provenance and apply write-back for compiled TypeScript views
build.zig.zon
feat(storage): add SQLite-backed record store (#320)
CHANGELOG.md
Prepare Native SDK v0.11.0 (#687)
CONTRIBUTING.md
chore: write changelog during releases (#278)
LICENSE
init
README.md
Migrate showcase examples to TypeScript (#573)
RELEASING.md
chore: write changelog during releases (#278)

Native SDK

Native SDK is a toolkit for building native desktop applications with TypeScript and Native markup. The toolkit compiles app logic and views into a native executable and renders the interface in OS windows. Zig cores and optional embedded web content are also supported.

Native SDK is experimental. Platform capabilities vary, and mobile support is still evolving. See the platform support matrix for current support.

Quick start

Install the CLI with Node.js 24 or later:

npm install -g @native-sdk/cli

Create and run an app:

native init my_app
cd my_app
native dev

The generated project opens a counter app and includes:

  • src/core.ts: the app's model, messages, and update function.
  • src/app.native: the view, with layout, bindings, and message dispatch.
  • app.json: app identity, windows, permissions, and security settings.

native dev watches markup changes and updates the view while preserving app state. TypeScript core changes rebuild and restart the app. Use native dev --core to exercise core logic under Node.js without opening a window, native check to validate the project, and native build to create a release binary.

The CLI uses a compatible Zig toolchain from your PATH or offers to download the pinned version. See Quick Start for platform prerequisites and the complete workflow.

App model

Events dispatch typed messages to update, which returns the next model and any effects. The view derives its content from the model. Filesystem access, network requests, and other external work run through effects and TypeScript services.

App cores use a checked TypeScript subset and compile to native code. To write a Zig core instead, create the project with native init my_app --template zig-core. See App Model and TypeScript Cores.

Examples

The Soundboard example rendered by the Native SDK engine. More apps are in examples/:

  • Chatbot: streaming responses, text editing, and TypeScript effects.
  • Soundboard: audio playback, search, assets, and context menus.
  • System monitor: subprocess effects, tables, charts, and timers.
  • Calculator: markup, keyboard input, and theming.

See the example catalog for additional apps and their authoring languages.

Documentation

Contributing

See CONTRIBUTING.md for repository setup and local checks. For larger changes, open an issue to discuss the design first.

License

Apache-2.0