Builtin Commands
zero-native provides built-in bridge commands for window management and native dialogs. These are controlled by the builtin_bridge policy in RuntimeOptions, separate from app-defined commands.
Window commands
| Command | Required permission | Description |
|---|---|---|
zero-native.window.list | window | List all open windows |
zero-native.window.create | window | Create a new window |
zero-native.window.focus | window | Focus a window by ID |
zero-native.window.close | window | Close a window by ID |
Window commands are available through window.zero.windows.* when js_window_api is true, but the runtime still checks the request origin and the window permission when permissions are configured. Use an explicit builtin_bridge policy when you want per-command origin lists.
Dialog commands
| Command | Description |
|---|---|
zero-native.dialog.openFile | Show a file open dialog |
zero-native.dialog.saveFile | Show a file save dialog |
zero-native.dialog.showMessage | Show a message dialog |
Dialog commands are always default-deny and require an explicit builtin_bridge policy.
Enabling builtin commands
const app_permissions = [_][]const u8{zero_native.security.permission_window};
.security = .{
.permissions = &app_permissions,
.navigation = .{ .allowed_origins = &.{ "zero://app" } },
},
.builtin_bridge = .{
.enabled = true,
.commands = &.{
.{ .name = "zero-native.window.list", .permissions = .{ "window" }, .origins = .{ "zero://app" } },
.{ .name = "zero-native.window.create", .permissions = .{ "window" }, .origins = .{ "zero://app" } },
.{ .name = "zero-native.dialog.openFile", .origins = .{ "zero://app" } },
.{ .name = "zero-native.dialog.showMessage", .origins = .{ "zero://app" } },
},
},JavaScript usage
const win = await window.zero.windows.create({
label: "tools",
title: "Tools",
width: 420,
height: 320,
});
const files = await window.zero.invoke("zero-native.dialog.openFile", {
title: "Select a file",
allowMultiple: true,
});
const result = await window.zero.invoke("zero-native.dialog.showMessage", {
style: "warning",
title: "Confirm",
message: "Are you sure?",
primaryButton: "Yes",
secondaryButton: "No",
});See also: Dialogs for the full dialog type reference, Security for policy details.