cd /news/developer-tools/native-shell-a-rust-runtime-for-dyna… · home › topics › developer-tools › article
[ARTICLE · art-152938] src=github.com ↗ pub= topic=developer-tools verified=true sentiment=↑ positive

Native Shell – a Rust runtime for dynamically delivered native UI

Native Shell (NSH) has launched as a Rust runtime for cross-platform apps that renders dynamically delivered TSX screens with each platform's own native UI, including UIKit on iOS 15+, Android views on Android 9 (API 28)+, AppKit on macOS 14+, Win32/Direct2D on Windows 10 1809+, GTK 4 on Linux (GTK 4.14+), GPUI on macOS, Windows and Linux, and HTML on the web. Hosts can load TSX modules at run time as signed packages inside a sandbox the host configures, and developers build AI-generated screens with TSX and Tailwind using generated TypeScript declarations and model-readable documentation at nsh.dev/llms.txt. The `nsh` CLI, installable via install script, Homebrew (longbridge/tap/nsh) or PowerShell, handles building and packaging, with hot updates for TSX and a Rust template rooted in src/lib.rs.

read4 min views1 publishedOct 19, 2026
Native Shell – a Rust runtime for dynamically delivered native UI
Image: Michielbdejong (auto-discovered)

Native UI in Rust and TSX, embedded in your app or shipped on its own. Native Shell is a Rust engine for cross-platform apps and AI-generated UI. Write your app in Rust, use TSX for dynamically delivered screens, or combine both with shared Rust components. Each platform renders with its own UI: native views on iOS, Android, macOS, Windows and Linux, GPUI in GPUI apps and HTML on the web.

Embed NSH in an existing app or package it as a standalone app. Hosts can load TSX modules at run time as plugins, delivered as signed packages and run in a sandbox the host configures.

Documentation, guides and live demos: nsh.dev.

  • Write apps in Rust, TSX, or both, and render with each platform's own UI, sharing the same reactive engine, flexbox and grid layout, system text, input and accessibility.
  • Embed in existing native apps alongside components such as maps and web views, or package as standalone apps and static websites.
  • Deliver TSX screens at run time with signed packages and host-controlled sandbox capabilities.
  • Build AI-generated screens with TSX and Tailwind, generated TypeScript declarations and model-readable documentation .
  • Iterate with TSX hot updates, headless tracing and a single Rust-built nsh CLI for building and packaging.
Platform Drawn with Embed with Requires
iOS UIKit, CoreText NshAppView (Swift,NativeShell.xcframework ) iOS 15+
Android Android views, StaticLayout NshView (Java / Kotlin,nsh.aar ) Android 9 (API 28)+
macOS AppKit, Core Animation, CoreText AppView (Rust,nsh-platform-macos ) macOS 14+
Windows Win32, Direct2D, DirectWrite AppView (Rust,nsh-platform-windows ) Windows 10 1809+
Linux GTK 4, Pango AppView (Rust,nsh-platform-linux ) GTK 4.14+
GPUI (macOS, Windows, Linux) GPUI (GPUI Fast) AppView (Rust, a GPUI view,nsh-platform-gpui ) macOS, Windows; Linux with Vulkan
Web HTML, CSS createPlayer (JavaScript) or an iframe Modern browsers

The GPUI backend (nsh run --target gpui, nsh package --target gpui) draws apps with GPUI on all three desktops and embeds in GPUI and GPUI Kit apps. The web platform (nsh run --target web, nsh package --target web) publishes apps as static sites and runs the website's live demos.

Install the nsh command (other ways):

macOS / Linux #

curl -fsSL https://nsh.dev/install.sh | sh

Homebrew #

brew install longbridge/tap/nsh

Windows (PowerShell) #

irm https://nsh.dev/install.ps1 | iex

Choose how to write your app:

Rust TSX
Create nsh init my-app --rust nsh init my-app
Write Rust components, typed styles and signals TSX components, Tailwind classes and signals
Iterate Rebuild and restart on Rust changes Hot updates that preserve state
Toolchain nsh andRust nsh

You can also combine them: TSX screens import your Rust components and modules. See Building with Rust for Rust apps and mixed projects.

Run either app on your chosen platform:

iOS #

nsh run my-app --target ios        # iOS simulator; requires Xcode
nsh run my-app --target catalyst   # Mac Catalyst window on macOS

Android #

nsh run my-app --target android    # emulator or device; requires the Android SDK

macOS #

nsh run my-app --target macos      # AppKit window

Windows #

nsh run my-app --target windows    # Win32 window

Linux #

nsh run my-app --target linux      # GTK 4 window

GPUI (macOS, Windows, Linux) #

nsh run my-app --target gpui

Web #

nsh run my-app --target web        # open in the browser

The Rust template includes a Cargo project with its root component in src/lib.rs. The TSX template includes App.tsx, nsh.json and tsconfig.json, with generated TypeScript declarations in .nsh/types for your editor. Logs and errors show in the terminal. What each platform needs: Installation.

Example What it shows
examples/gallery A tour of what NSH supports: lists, navigation, forms, controls, gestures, animation, images, styles, text, web view and video, fetch
examples/counter The smallest app
examples/hopper A dark, tabbed dashboard built only from primitives: interactive canvas charts, sliders, menus, animation
examples/desktop A desktop app with a title bar and menus of its own ( nsh/desktop )
examples/gallery-rs The gallery written in Rust, with a TSX entry for mixed development
examples/embed-ios , examples/embed-android NSH inside existing native apps, with a native component the app registers
examples/bench Rust components against the same components in TSX
cargo run

Licensed under the Apache License, Version 2.0.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be licensed under Apache-2.0, without any additional terms or conditions.

── more in #developer-tools 4 stories · sorted by recency
── more on @native shell 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/native-shell-a-rust-…] indexed:0 read:4min 2026-10-19 · —