Desktop and mobile apps in Zig, with a web UI or native views. One
codebase for Linux, Windows, macOS, Android and iOS (iOS is verified in the
simulator; device testing is next): your frontend (React, Vite, plain
HTML…) in the system webview, embedded in a small binary, with typed JS ↔
Zig calls generated from plain Zig structs. Local AI and voice are built in,
updates are signed, and every platform gets its packages. The optional
native renderer runs the same frontend without
a WebView, or compiled .oriel views with no JavaScript at all. Coming
from Electron or Tauri? See how Oriel compares.
The website, with the documentation and search, is
oriel.foreachdeveloper.com.
- Small: a release app is a few MB; the build cache is hundreds of MB, not gigabytes.
- Typed both ways:
invokeandlistenin TypeScript are generated from your ZigCommandsandEvents. - Secure by default: navigation limits, per-origin command capabilities, a strict CSP.
- Batteries included, opt-in: tray, updater, SQLite & sqlite-vec, llama.cpp, whisper.cpp, offline text to speech (Kokoro), speaker diarization (voice-detect.cpp), the phone's own model (system AI: Gemini Nano, Apple Foundation Models), camera and photo library, lifecycle events, file watching, dialogs, notifications, global shortcuts, clipboard, packaging (deb, rpm, AppImage), and web wrapping (
oriel wrap). - Native code when you need it: app extensions in Kotlin, Objective-C, Swift or Zig, called by name from Zig and, where you expose them, from the page.
curl -fsSL https://raw.githubusercontent.com/highercomve/Oriel/main/install.sh | sh # Linux, macOS
# Windows (PowerShell): irm https://raw.githubusercontent.com/highercomve/Oriel/main/install.ps1 | iex
oriel doctor # checks Zig 0.16, the platform webview SDK, Node.js
oriel init my-app # React + Vite (or --template vue|svelte|vanilla)
cd my-app && oriel dev # hot reload; `oriel build` for the release binary
# Or wrap any website into a standalone desktop app with system tray & AppImage:
oriel wrap https://web.whatsapp.com --user-agent chrome --packageUse the system WebView, or build with -Dnative_ui to render HTML, CSS and
JavaScript with QuickJS, Oriel’s native DOM, Yoga, and platform drawing.
The native renderer is experimental; see its guide
and support reference.
Call your own native code by name: an app extension is a
Kotlin class on Android, an Objective-C or Swift class on iOS, or Zig on the
desktop, declared in build.zig. Zig calls it with bytes in and out; the page
reaches the methods Zig exposes (oriel.extensions.call). Oriel's own
oriel.system_ai is built this way.
Platform hooks react to or take over the platform's own app, window and web
view events: oriel.hooks in Zig on Linux, macOS and Windows (each window and
web view with its native handle), Kotlin or Java on Android (.android.hooks,
OrielAndroidHooks: WebView and Activity lifecycles, native results and
permissions, a custom file picker), Objective-C or Swift on iOS and macOS.
See Platform hooks.
- Showcase: windows, local AI, dictation, text to speech, SQLite, notifications, and more on desktop and mobile.
- Breakout: the same canvas game in the WebView and native renderer, with JavaScript or Zig physics.
- System monitor: live CPU, memory, and process telemetry with direct kernel sampling and native rendering.
- Smoke test: end-to-end checks for modules and security.
- Render bench and canvas demo: rendering measurements and 2D drawing.
GhostPen is a desktop AI editor built with Oriel. See apps and examples for screenshots and details.
Every feature has one page with the same parts: where it works, a quick start, how it works (with a diagram), examples, and the full reference. Start with the documentation index (the same pages as the website), or go straight to:
| Guide | Contents |
|---|---|
| Getting started · Tutorial | Install, scaffold, and build a first app |
| Concepts | How an Oriel app is put together: windows, the bridge, commands, modules, the build |
| Commands and events | Typed calls between the page and Zig, and the generated TypeScript |
| Modules | Every module, its build flag and where it works, with a page each |
| Local AI | llama.cpp, whisper.cpp, GPU backends; chat, dictation, text to speech, speakers |
| Platform hooks · App extensions | Your Kotlin, Objective-C, Swift or Zig code inside the platform's events, or called from Zig |
| Desktop · Android · iOS | Platform setup, builds, and behavior |
| Building · Packaging · Signing · Updates | Every build.zig option, packages, signatures, signed updates |
| CLI | Every oriel command |
| Contributing | Repository layout, builds, tests, development rules, and releases |
Oriel is experimental and APIs will change. It targets Linux, Windows, macOS, Android, and iOS; see the desktop, Android and iOS guides for verification details and limitations.
Changelog · Project background · Dependencies
MIT: see LICENSE. Contributions are accepted under the same license.
