asopi tech
asopi techOSS Developer

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.

NimIn Development
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
nimdesktopwebview

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

Nim 2.x + NimbleDirect OS API calls via C FFIDocker dev container + Makefile-pinned workflows

OS integration

System WebViews

Windows: Win32 + WebView2 Evergreen RuntimeLinux: GTK + WebKitGTK (system-provided)WSL: authenticated IPC to a Windows-side host

What it avoids

Dependency-free by design

No Electron / Tauri / CEF / Qt WebEngineNo webview/webview / WRY / TAONo mandatory Node.js runtime

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.