Command reference
35 plugins, 174 commands.
Autostart
Section titled “Autostart”Launch the app automatically at login.
- Namespace:
autostart - Platforms: desktop
| Command | Arguments | Returns | Description |
|---|---|---|---|
autostart:enable |
— | void |
Register the app to launch at login. |
autostart:disable |
— | void |
Stop launching the app at login. |
autostart:is_enabled |
— | bool |
Whether the app is currently set to launch at login. |
Permissions:
autostart:default— grantsautostart:*: Allow all autostart commands.
Battery
Section titled “Battery”Read device battery level and charging state.
- Namespace:
battery - Platforms: desktop, android, ios
| Command | Arguments | Returns | Description |
|---|---|---|---|
battery:status |
— | BatteryStatus |
— |
Permissions:
battery:default— grantsbattery:*: Allow reading battery status.
Biometric
Section titled “Biometric”Authenticate the user with Face ID / Touch ID / BiometricPrompt.
- Namespace:
biometric - Platforms: android, ios
| Command | Arguments | Returns | Description |
|---|---|---|---|
biometric:status |
— | string |
— |
biometric:authenticate |
AuthenticateArgs |
AuthenticateResult |
— |
Permissions:
biometric:default— grantsbiometric:*: Allow biometric authentication prompts.
Declarative CLI arguments parsed at startup and exposed to the frontend.
- Namespace:
cli - Platforms: desktop
| Command | Arguments | Returns | Description |
|---|---|---|---|
cli:matches |
— | ArgMatches |
The parsed command line for this run. |
Permissions:
cli:default— grantscli:*: Allow all cli commands.
Clipboard
Section titled “Clipboard”Read, write, and clear clipboard text.
- Namespace:
clipboard - Platforms: desktop, android, ios
| Command | Arguments | Returns | Description |
|---|---|---|---|
clipboard:read_text |
— | string |
— |
clipboard:write_text |
WriteTextArgs |
void |
— |
clipboard:clear |
— | void |
— |
Permissions:
clipboard:default— grantsclipboard:*: Allow all clipboard commands.
DeepLink
Section titled “DeepLink”Read app protocol URLs from process arguments (desktop) or platform intents (mobile).
- Namespace:
deep-link - Platforms: desktop, android, ios
| Command | Arguments | Returns | Description |
|---|---|---|---|
deep-link:get_pending |
— | string[] |
— |
deep-link:schemes |
— | string[] |
— |
deep-link:info |
— | DeepLinkInfo |
— |
Permissions:
deep-link:default— grantsdeep-link:*: Allow deep-link commands.
Dialogs
Section titled “Dialogs”Open native file, folder, message, and confirmation dialogs.
- Namespace:
dialog - Platforms: desktop, android, ios
| Command | Arguments | Returns | Description |
|---|---|---|---|
dialog:open_file |
OpenFileArgs |
string[]? |
— |
dialog:save_file |
SaveFileArgs |
string? |
— |
dialog:open_folder |
OpenFolderArgs |
string? |
— |
dialog:message |
MessageArgs |
void |
— |
dialog:confirm |
ConfirmArgs |
bool |
— |
Permissions:
dialog:default— grantsdialog:*: Allow all dialog commands.
File system
Section titled “File system”Read and write files and directories.
- Namespace:
fs - Platforms: desktop, android, ios
| Command | Arguments | Returns | Description |
|---|---|---|---|
fs:read_file |
ReadFileArgs |
string |
— |
fs:write_file |
WriteFileArgs |
void |
— |
fs:read_dir |
ReadDirArgs |
DirEntry[] |
— |
fs:exists |
ExistsArgs |
bool |
— |
fs:rename |
RenameArgs |
void |
— |
fs:delete |
DeleteArgs |
void |
— |
fs:create_dir |
ReadDirArgs |
void |
— |
Permissions:
fs:default— grantsfs:*: Allow all file-system commands.
Geolocation
Section titled “Geolocation”Read the device’s current position.
- Namespace:
geolocation - Platforms: android, ios
| Command | Arguments | Returns | Description |
|---|---|---|---|
geolocation:current |
CurrentPositionArgs |
GeolocationPosition? |
— |
Permissions:
geolocation:default— grantsgeolocation:*: Allow reading the device position.
GlobalShortcut
Section titled “GlobalShortcut”Register global keyboard shortcuts.
- Namespace:
global-shortcut - Platforms: desktop
| Command | Arguments | Returns | Description |
|---|---|---|---|
global-shortcut:register |
RegisterShortcutArgs |
ShortcutInfo |
— |
global-shortcut:unregister |
ShortcutIdArgs |
bool |
— |
global-shortcut:unregister_all |
— | bool |
— |
global-shortcut:list |
— | ShortcutInfo[] |
— |
Permissions:
global-shortcut:default— grantsglobal-shortcut:*: Allow global shortcut commands.
Haptics
Section titled “Haptics”Play haptic feedback (impact, notification, vibrate).
- Namespace:
haptics - Platforms: android, ios
| Command | Arguments | Returns | Description |
|---|---|---|---|
haptics:impact |
ImpactArgs |
void |
— |
haptics:notification |
NotificationArgs |
void |
— |
haptics:vibrate |
VibrateArgs |
void |
— |
Permissions:
haptics:default— grantshaptics:*: Allow all haptics commands.
Make scoped HTTP requests from the backend.
- Namespace:
http - Platforms: desktop, android, ios
| Command | Arguments | Returns | Description |
|---|---|---|---|
http:fetch |
FetchArgs |
FetchResponse |
— |
Permissions:
http:default— grantshttp:*: Allow all HTTP commands.
Localhost
Section titled “Localhost”Serve the app over a real http://127.0.0.1 port.
- Namespace:
localhost - Platforms: desktop
| Command | Arguments | Returns | Description |
|---|---|---|---|
localhost:url |
— | string |
The URL the app is being served from, or “” if not running. |
localhost:start |
LocalhostStartArgs |
string |
(Re)start the server; returns the URL. |
localhost:stop |
— | void |
Stop the server. |
Permissions:
localhost:default— grantslocalhost:*: Allow all localhost commands.
Leveled logging to stdout, a rolling file, and the webview console.
- Namespace:
log - Platforms: desktop, android, ios
| Command | Arguments | Returns | Description |
|---|---|---|---|
log:log |
LogArgs |
void |
— |
Permissions:
log:default— grantslog:*: Allow all log commands.
Update the native app menu from the frontend.
- Namespace:
menu - Platforms: desktop
| Command | Arguments | Returns | Description |
|---|---|---|---|
menu:set_enabled |
SetMenuEnabledArgs |
void |
— |
menu:set_checked |
SetMenuCheckedArgs |
void |
— |
menu:set_label |
SetMenuLabelArgs |
void |
— |
menu:set_app_menu |
SetAppMenuArgs |
void |
Replace the whole menu with one the frontend describes (Task 2.11). Clicks on the items come back as menu:item_clicked carrying the item’s id, since a declared item has no C# handler to run. |
Permissions:
menu:default— grantsmenu:*: Allow all menu commands.
Read NFC (NDEF) tags.
- Namespace:
nfc - Platforms: android, ios
| Command | Arguments | Returns | Description |
|---|---|---|---|
nfc:status |
— | string |
— |
nfc:scan |
ScanArgs |
NfcTag? |
— |
Permissions:
nfc:default— grantsnfc:*: Allow reading NFC tags.
Notifications
Section titled “Notifications”Send native notifications (desktop and mobile).
- Namespace:
notification - Platforms: desktop, android, ios
| Command | Arguments | Returns | Description |
|---|---|---|---|
notification:send |
SendNotificationArgs |
void |
— |
Permissions:
notification:default— grantsnotification:*: Allow all notification commands.
Opener
Section titled “Opener”Open files, folders, and URLs with the operating system.
- Namespace:
opener - Platforms: desktop
| Command | Arguments | Returns | Description |
|---|---|---|---|
opener:open_path |
OpenPathArgs |
bool |
— |
opener:open_url |
OpenUrlArgs |
bool |
— |
opener:reveal_path |
OpenPathArgs |
bool |
— |
Permissions:
opener:default— grantsopener:*: Allow opener commands.
Read operating system information (platform, arch, version, …).
- Namespace:
os - Platforms: desktop, android, ios
| Command | Arguments | Returns | Description |
|---|---|---|---|
os:info |
— | OsInfo |
— |
os:platform |
— | string |
— |
os:arch |
— | string |
— |
os:version |
— | string |
— |
os:family |
— | string |
— |
os:hostname |
— | string |
— |
Permissions:
os:default— grantsos:*: Allow all OS commands.
OS-standard app directories and path manipulation.
- Namespace:
path - Platforms: desktop, android, ios
| Command | Arguments | Returns | Description |
|---|---|---|---|
path:home_dir |
— | string |
— |
path:temp_dir |
— | string |
— |
path:resource_dir |
— | string |
Directory holding the app’s bundled resources (bundle.resources). Its real location differs by platform: Linux launchers export CARBON_RESOURCE_DIR; macOS keeps them in the .app’s Contents/Resources (beside Contents/MacOS); Windows uses a resources/ dir next to the executable; unbundled dev runs fall back to the output directory. |
path:resolve_resource |
PathArg |
string |
Resolve a path relative to the resource directory (Tauri’s resolveResource). |
path:app_config_dir |
— | string |
— |
path:app_data_dir |
— | string |
— |
path:app_cache_dir |
— | string |
— |
path:app_log_dir |
— | string |
— |
path:resolve |
PathPartsArgs |
string |
Combine and resolve to an absolute path. |
path:join |
PathPartsArgs |
string |
Join path segments with the OS separator (no resolution). |
path:dirname |
PathArg |
string |
— |
path:basename |
PathArg |
string |
— |
path:extname |
PathArg |
string |
— |
path:normalize |
PathArg |
string |
— |
path:is_absolute |
PathArg |
bool |
— |
path:sep |
— | string |
— |
path:delimiter |
— | string |
— |
Permissions:
path:default— grantspath:*: Allow all path commands.
Permissions
Section titled “Permissions”Check and request runtime device permissions.
- Namespace:
permissions - Platforms: desktop, android, ios
| Command | Arguments | Returns | Description |
|---|---|---|---|
permissions:status |
PermissionArgs |
string |
— |
permissions:request |
PermissionArgs |
string |
— |
Permissions:
permissions:default— grantspermissions:*: Allow checking and requesting device permissions.
Persisted Scope
Section titled “Persisted Scope”Remember runtime-granted fs/asset scopes across restarts.
- Namespace:
persisted-scope - Platforms: desktop
| Command | Arguments | Returns | Description |
|---|---|---|---|
persisted-scope:allow |
ScopeGrant |
void |
Grant a path to a scope and persist it. |
persisted-scope:list |
— | Dictionary<string, List<string>> |
The persisted grants, keyed by scope. |
persisted-scope:clear |
— | void |
Forget all persisted grants and delete the store. |
Permissions:
persisted-scope:default— grantspersisted-scope:*: Allow all persisted-scope commands.
Positioner
Section titled “Positioner”Move a window to named positions (top-right, center, …).
- Namespace:
positioner - Platforms: desktop
| Command | Arguments | Returns | Description |
|---|---|---|---|
positioner:move |
PositionerMoveArgs |
void |
Move a window to a named position. |
Permissions:
positioner:default— grantspositioner:*: Allow all positioner commands.
Process
Section titled “Process”Exit and relaunch the application.
- Namespace:
process - Platforms: desktop
| Command | Arguments | Returns | Description |
|---|---|---|---|
process:pid |
— | int |
The current process id. |
process:exit |
ExitArgs |
void |
Exit the app immediately with the given code. |
process:relaunch |
— | void |
Start a fresh copy of the app with the same arguments, then exit this one. |
Permissions:
process:default— grantsprocess:*: Allow all process commands.
Secure Storage
Section titled “Secure Storage”Encrypted key-value store on the OS credential store.
- Namespace:
secure-storage - Platforms: desktop
| Command | Arguments | Returns | Description |
|---|---|---|---|
secure-storage:set |
SecretArgs |
void |
Store a secret. |
secure-storage:get |
KeyArgs |
string? |
Read a secret, or null if it isn’t set. |
secure-storage:remove |
KeyArgs |
void |
Delete a secret. |
secure-storage:has |
KeyArgs |
bool |
Whether a secret is set. |
Permissions:
secure-storage:default— grantssecure-storage:*: Allow all secure-storage commands.
Run processes and open paths or URLs.
- Namespace:
shell - Platforms: desktop
| Command | Arguments | Returns | Description |
|---|---|---|---|
shell:execute |
ExecuteArgs |
ShellResult |
— |
shell:open |
OpenArgs |
void |
— |
shell:open_url |
OpenArgs |
void |
— |
Permissions:
shell:default— grantsshell:*: Allow all shell commands.
SingleInstance
Section titled “SingleInstance”Detect and guard against duplicate app instances.
- Namespace:
single-instance - Platforms: desktop
| Command | Arguments | Returns | Description |
|---|---|---|---|
single-instance:status |
— | SingleInstanceStatus |
— |
single-instance:is_primary |
— | bool |
— |
Permissions:
single-instance:default— grantssingle-instance:*: Allow single-instance commands.
SQLite database access with migrations.
- Namespace:
sql - Platforms: desktop
| Command | Arguments | Returns | Description |
|---|---|---|---|
sql:load |
SqlLoadArgs |
string |
Open a database (creating it if needed) and apply pending migrations. |
sql:execute |
SqlQueryArgs |
SqlExecuteResult |
Run a write query; returns rows affected and the last inserted row id. |
sql:select |
SqlQueryArgs |
List<Dictionary<string, JsonNode?>> |
Run a read query; returns each row as a name → value map. |
sql:close |
SqlLoadArgs |
void |
Close a database. |
Permissions:
sql:default— grantssql:*: Allow all sql commands.
Persistent JSON key/value stores.
- Namespace:
store - Platforms: desktop, android, ios
| Command | Arguments | Returns | Description |
|---|---|---|---|
store:get |
StoreKeyArgs |
JsonElement? |
— |
store:set |
StoreSetArgs |
StoreSnapshot |
— |
store:delete |
StoreKeyArgs |
StoreSnapshot |
— |
store:clear |
StoreLoadArgs |
StoreSnapshot |
— |
store:entries |
StoreLoadArgs |
StoreSnapshot |
— |
store:keys |
StoreLoadArgs |
string[] |
— |
Permissions:
store:default— grantsstore:*: Allow persistent store commands.
Update the system tray icon from the frontend.
- Namespace:
tray - Platforms: desktop
| Command | Arguments | Returns | Description |
|---|---|---|---|
tray:set_icon |
SetTrayIconArgs |
void |
— |
tray:set_title |
SetTrayTitleArgs |
void |
— |
tray:set_tooltip |
SetTrayTooltipArgs |
void |
— |
tray:set_visible |
SetTrayVisibleArgs |
void |
— |
tray:remove |
— | void |
— |
tray:set_menu |
SetTrayMenuArgs |
void |
Replace the tray menu with one the frontend describes (Task 2.11). Clicks come back as tray:item_clicked, since a declared item has no C# handler to run. |
Permissions:
tray:default— grantstray:*: Allow all tray commands.
Updater
Section titled “Updater”Check signed updater manifests.
- Namespace:
updater - Platforms: desktop
| Command | Arguments | Returns | Description |
|---|---|---|---|
updater:status |
— | UpdaterStatus |
— |
updater:check |
CheckUpdateArgs |
UpdateCheckResult |
— |
updater:download |
DownloadUpdateArgs |
UpdateDownloadResult |
— |
updater:install |
InstallUpdateArgs |
UpdateInstallResult |
— |
updater:install_and_restart |
InstallUpdateArgs |
UpdateInstallResult |
— |
Permissions:
updater:default— grantsupdater:*: Allow updater commands.
Upload
Section titled “Upload”Chunked file upload and download with progress events.
- Namespace:
upload - Platforms: desktop
| Command | Arguments | Returns | Description |
|---|---|---|---|
upload:upload |
UploadArgs |
string |
Upload a file; returns the server’s response body. |
upload:download |
DownloadArgs |
void |
Download a URL to a local file. |
Permissions:
upload:default— grantsupload:*: Allow all upload commands.
WebSocket
Section titled “WebSocket”Client websocket connections proxied through the backend.
- Namespace:
websocket - Platforms: desktop
| Command | Arguments | Returns | Description |
|---|---|---|---|
websocket:connect |
WsConnectArgs |
long |
Open a connection; returns its id. Received frames arrive as websocket:message events. |
websocket:send |
WsSendArgs |
void |
Send a text frame on a connection. |
websocket:disconnect |
WsDisconnectArgs |
void |
Close a connection. |
Permissions:
websocket:default— grantswebsocket:*: Allow all websocket commands.
Window
Section titled “Window”Create and control labeled windows and webviews.
- Namespace:
window - Platforms: desktop
| Command | Arguments | Returns | Description |
|---|---|---|---|
window:create |
CreateWindowArgs |
WindowState |
— |
window:get_all |
— | List<WindowState> |
— |
window:get_by_label |
TargetWindowArgs |
WindowState? |
— |
window:set_title |
SetTitleArgs |
void |
— |
window:set_size |
SetSizeArgs |
void |
— |
window:set_position |
SetPositionArgs |
void |
— |
window:center |
TargetWindowArgs |
void |
— |
window:minimize |
TargetWindowArgs |
void |
— |
window:maximize |
TargetWindowArgs |
void |
— |
window:unmaximize |
TargetWindowArgs |
void |
— |
window:set_fullscreen |
SetFullscreenArgs |
void |
— |
window:set_always_on_top |
SetAlwaysOnTopArgs |
void |
— |
window:set_resizable |
SetResizableArgs |
void |
— |
window:close |
TargetWindowArgs |
void |
— |
window:get_state |
TargetWindowArgs |
WindowState |
— |
window:show |
TargetWindowArgs |
void |
— |
window:hide |
TargetWindowArgs |
void |
— |
window:set_focus |
TargetWindowArgs |
void |
— |
window:is_visible |
TargetWindowArgs |
bool |
— |
window:is_focused |
TargetWindowArgs |
bool |
— |
window:request_user_attention |
TargetWindowArgs |
void |
— |
window:start_dragging |
TargetWindowArgs |
void |
Begin dragging the window (Task 3.8). Meant to be called from a mousedown on a custom title bar / drag region, so a frameless or full-window app can still be moved. |
window:set_progress_bar |
SetProgressArgs |
void |
— |
window:set_badge |
SetBadgeArgs |
void |
Set the app badge to Value (null clears it). macOS dock only. |
window:set_effect |
SetEffectArgs |
void |
Apply a background effect (Task 3.10). See . |
window:set_close_interception |
SetFlagArgs |
void |
Turn close interception on/off for a window. While on, the OS close is held and a window:close-requested event is emitted instead; the frontend closes for real with window:destroy. Set automatically by the JS onCloseRequested helper. |
window:destroy |
TargetWindowArgs |
void |
Close a window for real, bypassing any interception. |
window:get_theme |
TargetWindowArgs |
string |
— |
window:set_theme |
SetThemeArgs |
void |
— |
window:available_monitors |
TargetWindowArgs |
List<MonitorInfo> |
— |
window:primary_monitor |
TargetWindowArgs |
MonitorInfo? |
— |
window:current_monitor |
TargetWindowArgs |
MonitorInfo? |
— |
window:scale_factor |
TargetWindowArgs |
double |
— |
window:set_cursor_icon |
SetCursorIconArgs |
void |
— |
window:set_cursor_visible |
SetFlagArgs |
void |
— |
window:set_cursor_grab |
SetFlagArgs |
void |
— |
window:set_cursor_position |
SetPositionArgs |
void |
— |
window:set_decorations |
SetFlagArgs |
void |
— |
window:set_closable |
SetFlagArgs |
void |
— |
window:set_minimizable |
SetFlagArgs |
void |
— |
window:set_maximizable |
SetFlagArgs |
void |
— |
window:set_always_on_bottom |
SetFlagArgs |
void |
— |
window:set_skip_taskbar |
SetFlagArgs |
void |
— |
window:set_content_protected |
SetFlagArgs |
void |
— |
window:set_ignore_cursor_events |
SetFlagArgs |
void |
— |
window:set_icon |
SetIconArgs |
void |
— |
window:set_min_size |
SetMinSizeArgs |
void |
— |
window:set_max_size |
SetMaxSizeArgs |
void |
— |
window:inner_size |
TargetWindowArgs |
WindowSize |
— |
window:outer_size |
TargetWindowArgs |
WindowSize |
— |
window:inner_position |
TargetWindowArgs |
WindowPosition |
— |
window:outer_position |
TargetWindowArgs |
WindowPosition |
— |
window:is_maximized |
TargetWindowArgs |
bool |
— |
window:is_minimized |
TargetWindowArgs |
bool |
— |
window:is_fullscreen |
TargetWindowArgs |
bool |
— |
Permissions:
window:default— grantswindow:*: Allow all window commands.
Window State
Section titled “Window State”Persist and restore window size, position, and maximized state across runs.
- Namespace:
window-state - Platforms: desktop
| Command | Arguments | Returns | Description |
|---|---|---|---|
window-state:save |
— | void |
Capture every window’s current geometry and write it now. |
window-state:restore |
WindowLabelArgs |
void |
Re-apply the saved geometry to a window. |
window-state:get |
WindowLabelArgs |
WindowState? |
The saved state for a window, or null if none. |
window-state:clear |
— | void |
Forget all saved state and delete the state file. |
Permissions:
window-state:default— grantswindow-state:*: Allow all window-state commands.
