Skip to content

@tauri-apps/api/app

Application metadata and lifecycle APIs: version and identifier, theme and dock visibility, data stores and exiting the app.

This package is also accessible with window.__TAURI__.app when app.withGlobalTauri in tauri.conf.json is set to true.

Only the read-only commands are enabled by core:app:default (allow-version, allow-name, allow-tauri-version, allow-identifier, allow-bundle-type, allow-supports-multiple-windows, allow-register-listener and allow-remove-listener). Every other function in this module documents the permission it needs, which you must add to a capability yourself.

function defaultWindowIcon(): Promise<Image | null>;

Defined in: packages/api/src/app.ts:225

Gets the default window icon.

import { defaultWindowIcon } from '@tauri-apps/api/app';
const icon = await defaultWindowIcon();

Promise<Image | null>

Requires the core:app:allow-default-window-icon permission (not included in core:app:default).

2.0.0


function exit(code?: number): Promise<void>;

Defined in: packages/api/src/app.ts:400

Exits the app with the given exit code.

This is the same as the exit function of the @tauri-apps/plugin-process plugin, but does not require a plugin to be installed.

Platform-specific

  • Android: The activity is finished instead of the process being killed, so the app closes with the system transition; code is ignored.
import { exit } from '@tauri-apps/api/app';
await exit(1);
Parameter Type Default value Description
code number 0 The exit code to use. Defaults to 0.

Promise<void>

A promise indicating the success or failure of the operation.

Requires the core:app:allow-exit permission (not included in core:app:default).

2.12.0


function fetchDataStoreIdentifiers(): Promise<DataStoreIdentifier[]>;

Defined in: packages/api/src/app.ts:182

Fetches the data store identifiers on macOS and iOS.

See https://developer.apple.com/documentation/webkit/wkwebsitedatastore for more information.

import { fetchDataStoreIdentifiers } from '@tauri-apps/api/app';
const ids = await fetchDataStoreIdentifiers();

Promise<DataStoreIdentifier[]>

Requires the core:app:allow-fetch-data-store-identifiers permission (not included in core:app:default).

2.4.0


function getBundleType(): Promise<BundleType>;

Defined in: packages/api/src/app.ts:285

Gets the application bundle type.

import { getBundleType } from '@tauri-apps/api/app';
const type = await getBundleType();

Promise<BundleType>

2.5.0


function getIdentifier(): Promise<string>;

Defined in: packages/api/src/app.ts:127

Gets the application identifier.

import { getIdentifier } from '@tauri-apps/api/app';
const identifier = await getIdentifier();

Promise<string>

The application identifier as configured in tauri.conf.json.

2.4.0


function getName(): Promise<string>;

Defined in: packages/api/src/app.ts:96

Gets the application name.

import { getName } from '@tauri-apps/api/app';
const appName = await getName();

Promise<string>

1.0.0


function getTauriVersion(): Promise<string>;

Defined in: packages/api/src/app.ts:111

Gets the Tauri framework version used by this application.

import { getTauriVersion } from '@tauri-apps/api/app';
const tauriVersion = await getTauriVersion();

Promise<string>

1.0.0


function getVersion(): Promise<string>;

Defined in: packages/api/src/app.ts:82

Gets the application version.

import { getVersion } from '@tauri-apps/api/app';
const appVersion = await getVersion();

Promise<string>

1.0.0


function hide(): Promise<void>;

Defined in: packages/api/src/app.ts:162

Hides the application on macOS.

import { hide } from '@tauri-apps/api/app';
await hide();

Promise<void>

Requires the core:app:allow-app-hide permission (not included in core:app:default).

1.2.0


function onBackButtonPress(handler: (payload: OnBackButtonPressPayload) => void): Promise<PluginListener>;

Defined in: packages/api/src/app.ts:333

Listens to the Android hardware/gesture back button.

Registering a handler takes over the default behavior, so the app no longer navigates back or closes on its own: decide what to do inside the handler, using payload.canGoBack to know whether the webview has history to go back to.

Platform-specific

  • Android: Supported.
  • Windows / Linux / macOS / iOS: Unsupported, the handler is never called.
import { onBackButtonPress } from '@tauri-apps/api/app';
import { exit } from '@tauri-apps/api/app';
const listener = await onBackButtonPress(({ canGoBack }) => {
if (canGoBack) {
window.history.back();
} else {
void exit(0);
}
});
// stop handling the back button
await listener.unregister();
Parameter Type Description
handler (payload: OnBackButtonPressPayload) => void Called on every back button press.

Promise<PluginListener>

A listener handle, call unregister() on it to restore the default behavior.

2.9.0


function removeDataStore(uuid: DataStoreIdentifier): Promise<void>;

Defined in: packages/api/src/app.ts:206

Removes the data store with the given identifier.

Note that any webview using this data store should be closed before running this API.

See https://developer.apple.com/documentation/webkit/wkwebsitedatastore for more information.

import { fetchDataStoreIdentifiers, removeDataStore } from '@tauri-apps/api/app';
for (const id of (await fetchDataStoreIdentifiers())) {
await removeDataStore(id);
}
Parameter Type
uuid DataStoreIdentifier

Promise<void>

Requires the core:app:allow-remove-data-store permission (not included in core:app:default).

2.4.0


function setDockVisibility(visible: boolean): Promise<void>;

Defined in: packages/api/src/app.ts:270

Sets the dock visibility for the application on macOS.

import { setDockVisibility } from '@tauri-apps/api/app';
await setDockVisibility(false);
Parameter Type Description
visible boolean Whether the dock should be visible or not.

Promise<void>

Requires the core:app:allow-set-dock-visibility permission (not included in core:app:default).

2.5.0


function setTheme(theme?: Theme | null): Promise<void>;

Defined in: packages/api/src/app.ts:250

Sets the application’s theme. Pass in null or undefined to follow the system theme.

import { setTheme } from '@tauri-apps/api/app';
await setTheme('dark');

Platform-specific

  • iOS / Android: Unsupported.
Parameter Type
theme? Theme | null

Promise<void>

Requires the core:app:allow-set-app-theme permission (not included in core:app:default).

2.0.0


function show(): Promise<void>;

Defined in: packages/api/src/app.ts:145

Shows the application on macOS. This function does not automatically focus any specific app window.

import { show } from '@tauri-apps/api/app';
await show();

Promise<void>

Requires the core:app:allow-app-show permission (not included in core:app:default).

1.2.0


function supportsMultipleWindows(): Promise<boolean>;

Defined in: packages/api/src/app.ts:371

Whether the current platform can show more than one window at a time.

Use it to hide or disable multi-window features on platforms where creating a second window is not possible.

Platform-specific

  • Windows / Linux / macOS: Always true.
  • Android: true on API level 32 (Android 12L) and above.
  • iOS: Reflects UIApplication.supportsMultipleScenes, so it is true on iPadOS and false on iPhone.

See the mobile multiwindow guide for how windows behave on mobile.

import { supportsMultipleWindows } from '@tauri-apps/api/app';
import { WebviewWindow } from '@tauri-apps/api/webviewWindow';
if (await supportsMultipleWindows()) {
new WebviewWindow('settings', { url: '/settings' });
}

Promise<boolean>

2.11.0

Defined in: packages/api/src/app.ts:57

Bundle type of the current application.

getBundleType

2.7.0

Enumeration Member Value Description Defined in
App "app" macOS app bundle packages/api/src/app.ts:69
AppImage "appimage" Linux AppImage packages/api/src/app.ts:67
Deb "deb" Linux Debian package packages/api/src/app.ts:63
Msi "msi" Windows MSI packages/api/src/app.ts:61
Nsis "nsis" Windows NSIS packages/api/src/app.ts:59
Rpm "rpm" Linux RPM packages/api/src/app.ts:65

type DataStoreIdentifier = [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number];

Defined in: packages/api/src/app.ts:31

Identifier type used for data stores on macOS and iOS.

Represents a 128-bit identifier, commonly expressed as a 16-byte UUID.

2.4.0


type OnBackButtonPressPayload = {
canGoBack: boolean;
};

Defined in: packages/api/src/app.ts:294

Payload for the onBackButtonPress event.

2.9.0

Property Type Description Defined in
canGoBack boolean Whether the webview canGoBack property is true. packages/api/src/app.ts:296

© 2026 Tauri Contributors. CC-BY / MIT