API / Native modules

Native modules

Every API in Owear lives in api/<name>/ and is declared by a manifest (owear.module.json), which is the single source of truth. A module is either a .owm dynamic library loaded at runtime or a builtin linked into the kernel.

From your code, both are called the same way:

// renderer
const text = await ow.invoke<string>('fs', 'readText', '/etc/hostname')

// main process
import { invokeNative } from '@owear/core'
const text = await invokeNative<string>('fs', 'readText', '/etc/hostname')

Modules in this reference

Module Kind Summary
app builtin Single-instance lock, relaunch, badge
capturer module Screen capture and sources (X11)
clipboard module Clipboard text and images
crashreporter builtin Signal handlers and backtraces
dialog module Native file/message dialogs
fs module Filesystem, handles, watchers
globalshortcut module (optional) Global keyboard shortcuts (X11)
installer builtin Installer/uninstaller operations
menu module Context menus
net module Native HTTP(S) without CORS
node builtin Renderer → main-process bridge
notification module System notifications
path module Path math and standard directories
power module Battery, idle, suspend, inhibitors
process module Child processes and PTYs
safestorage module OS-backed encryption
screen module Monitors and cursor
session builtin Cookies, cache, proxy, downloads
shell module Open URLs, paths, folders
theme module Light/dark preference
tray module (optional) System tray icon
updater module Auto-update primitives
webview builtin Embedded child webviews
window builtin Window extras and ow-window

How to read a module page

Each page documents the module's functions with their argument shapes, return values, emitted events, and platform notes. Internally, arguments and results cross the bridge as a JSON array; a function's first positional argument is args[0], and so on.

Edit this page on GitHub ↗