Nim Desktop Framework
Nimino
Light, thin, and honest to the OS.
A lightweight cross-platform Web UI desktop application foundation that drives native windows and WebViews through a thin FFI over official OS APIs, with Nim as the host language. It reinterprets Tauri's lightweight architecture and Pake's URL-to-app experience through Nim's language strengths.
A Tauri-style lightweight WebView desktop foundation in Nim. nimino-pack builds installers straight from a URL — no bundled Chromium.
- Bundled runtimes
- 0
- Initial targets
- Windows / Linux / WSL
Key points
- A thin native layer connecting directly to Win32+WebView2 / GTK+WebKitGTK
- No bundled Chromium — uses WebView2 Evergreen and the system WebKitGTK
- nimino-pack generates distributables from a URL or manifest
Challenge
Desktop apps are too heavy
Electron-style stacks bundle Chromium and balloon to hundreds of megabytes. Generic WebView wrappers add thick abstraction layers that keep you away from OS details.
- Bundled Chromium and Node.js inflate binaries and memory usage
- Generic WebView wrappers put thick abstractions between you and trays, notifications, and dialogs
- Nim processes developed in WSL are cut off from the Windows GUI
Nimino is a lightweight cross-platform desktop application foundation that drives native windows and WebViews through a thin FFI over official OS APIs, with Nim as the host language. Inspired by Tauri’s “stay light with the system WebView” philosophy and Pake’s one-command URL-to-app experience, it ships without any heavy bundled runtime such as Electron or CEF.
It is currently developed as an Asopitech Labo incubation project targeting Windows, native Linux, and WSL. Bug reports and feature requests are welcome on GitHub Issues.
System WebViews plus a thin FFI
Nimino bundles no Chromium: it relies on the WebView2 Evergreen Runtime on Windows and the system WebKitGTK on Linux, connecting to Win32/GTK directly via FFI. No Electron, Tauri, or CEF underneath — just Nim's thin layer controlling native windows and WebViews.
- Uses Win32+WebView2 and GTK+WebKitGTK directly — no intermediate framework
- Pake-style nimino-pack builds apps and distributables from a URL or manifest
- Connects WSL Nim processes to a Windows GUI host over authenticated IPC
- Bundled Chromium
- None
- Components
- 4
Capabilities
Three layers
A design that separates the thin native layer, the app foundation, and packaging.
Thin native layer
nimino-native
- Uses Win32 + WebView2 directly
- Uses GTK + WebKitGTK directly
- Limited to windows, WebViews, low-level events, and capability queries
App foundation
nimino-core
- Lifecycle, RPC, and profile management
- Navigation, permission, and download policies
- Local asset boundary, tray, notifications, and OS file dialogs
Packaging
nimino-pack
- Generates apps from a URL or manifest (Pake-style)
- Produces Debian/RPM, AppImage, Flatpak, and NSIS setups
- Emits CycloneDX SBOMs alongside builds
Components
Four components
Four modules with clearly separated responsibilities.
nimino-native
A thin window/WebView layer that uses Win32+WebView2 and GTK+WebKitGTK directly
nimino-core
The app foundation providing lifecycle, RPC, profiles, and policies
nimino-wsl
An adapter connecting WSL Nim processes to a Windows GUI host over authenticated IPC
nimino-pack
A CLI that generates apps and distributables from a URL or manifest
Tech Stack
Technology stack
Nim's thin FFI combined with standard OS components.
Host language
Nim
OS integration
System WebViews
What it avoids
Dependency-free by design
Status
Development status
Implemented so far: M0–M4 profiles, permission/navigation policies, tray and notifications, OS file dialogs, and Linux/Windows distributable generation. macOS support, signed MSI, and real Flatpak builds are future work. Developed as an Asopitech Labo incubation project.
Public Resources
The latest documents, code, and community links in one place.
Get Involved
Join the development
Nimino is developed in the open under the MIT License. Star it on GitHub to follow progress.