Skip to content

@tauri-apps/api/event

The event system allows you to emit events to the backend and listen to events from it.

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

function emit<T>(event: string, payload?: T): Promise<void>;

Defined in: packages/api/src/event.ts:188

Emits an event to all targets.

import { emit } from '@tauri-apps/api/event';
await emit('frontend-loaded', { loggedIn: true, token: 'authToken' });
Type Parameter
T
Parameter Type Description
event string Event name. Must include only alphanumeric characters, -, /, : and _.
payload? T Event payload.

Promise<void>

1.0.0


function emitTo<T>(
target: string | EventTarget,
event: string,
payload?: T): Promise<void>;

Defined in: packages/api/src/event.ts:210

Emits an event to all targets matching the given target.

import { emitTo } from '@tauri-apps/api/event';
await emitTo('main', 'frontend-loaded', { loggedIn: true, token: 'authToken' });
Type Parameter
T
Parameter Type Description
target | string | EventTarget Label of the target Window/Webview/WebviewWindow or raw EventTarget object.
event string Event name. Must include only alphanumeric characters, -, /, : and _.
payload? T Event payload.

Promise<void>

2.0.0


function listen<T>(
event: EventName,
handler: EventCallback<T>,
options?: Options): Promise<UnlistenFn>;

Defined in: packages/api/src/event.ts:115

Listen to an emitted event to any target.

import { listen } from '@tauri-apps/api/event';
const unlisten = await listen<string>('error', (event) => {
console.log(`Got error, payload: ${event.payload}`);
});
// you need to call unlisten if your handler goes out of scope e.g. the component is unmounted
unlisten();
Type Parameter
T
Parameter Type Description
event EventName Event name. Must include only alphanumeric characters, -, /, : and _.
handler EventCallback<T> Event handler callback.
options? Options Event listening options.

Promise<UnlistenFn>

A promise resolving to a function to unlisten to the event. Note that removing the listener is required if your listener goes out of scope e.g. the component is unmounted.

1.0.0


function once<T>(
event: EventName,
handler: EventCallback<T>,
options?: Options): Promise<UnlistenFn>;

Defined in: packages/api/src/event.ts:159

Listens once to an emitted event to any target.

import { once } from '@tauri-apps/api/event';
interface LoadedPayload {
loggedIn: boolean,
token: string
}
const unlisten = await once<LoadedPayload>('loaded', (event) => {
console.log(`App is loaded, loggedIn: ${event.payload.loggedIn}, token: ${event.payload.token}`);
});
// you need to call unlisten if your handler goes out of scope e.g. the component is unmounted
unlisten();
Type Parameter
T
Parameter Type Description
event EventName Event name. Must include only alphanumeric characters, -, /, : and _.
handler EventCallback<T> Event handler callback.
options? Options Event listening options.

Promise<UnlistenFn>

A promise resolving to a function to unlisten to the event. Note that removing the listener is required if your listener goes out of scope e.g. the component is unmounted.

1.0.0

Defined in: packages/api/src/event.ts:58

1.1.0

Enumeration Member Value Defined in
DRAG_DROP "tauri://drag-drop" packages/api/src/event.ts:73
DRAG_ENTER "tauri://drag-enter" packages/api/src/event.ts:71
DRAG_LEAVE "tauri://drag-leave" packages/api/src/event.ts:74
DRAG_OVER "tauri://drag-over" packages/api/src/event.ts:72
WEBVIEW_CREATED "tauri://webview-created" packages/api/src/event.ts:70
WINDOW_BLUR "tauri://blur" packages/api/src/event.ts:64
WINDOW_CLOSE_REQUESTED "tauri://close-requested" packages/api/src/event.ts:61
WINDOW_CREATED "tauri://window-created" packages/api/src/event.ts:67
WINDOW_DESTROYED "tauri://destroyed" packages/api/src/event.ts:62
WINDOW_FOCUS "tauri://focus" packages/api/src/event.ts:63
WINDOW_MOVED "tauri://move" packages/api/src/event.ts:60
WINDOW_RESIZED "tauri://resize" packages/api/src/event.ts:59
WINDOW_RESUMED "tauri://resumed" packages/api/src/event.ts:69
WINDOW_SCALE_FACTOR_CHANGED "tauri://scale-change" packages/api/src/event.ts:65
WINDOW_SUSPENDED "tauri://suspended" packages/api/src/event.ts:68
WINDOW_THEME_CHANGED "tauri://theme-changed" packages/api/src/event.ts:66

Defined in: packages/api/src/event.ts:30

Type Parameter
T
Property Type Description Defined in
event EventName Event name packages/api/src/event.ts:32
id number Event identifier used to unlisten packages/api/src/event.ts:34
payload T Event payload packages/api/src/event.ts:36

Defined in: packages/api/src/event.ts:46

Property Type Description Defined in
target? | string | EventTarget The event target to listen to, defaults to { kind: 'Any' }, see EventTarget. If a string is provided, EventTarget.AnyLabel is used. packages/api/src/event.ts:52

type EventCallback<T> = (event: Event<T>) => void;

Defined in: packages/api/src/event.ts:39

Type Parameter
T
Parameter Type
event Event<T>

void


type EventName =
| `${TauriEvent}`
| string & Record<never, never>;

Defined in: packages/api/src/event.ts:44


type EventTarget =
| {
kind: "Any";
}
| {
kind: "AnyLabel";
label: string;
}
| {
kind: "App";
}
| {
kind: "Window";
label: string;
}
| {
kind: "Webview";
label: string;
}
| {
kind: "WebviewWindow";
label: string;
};

Defined in: packages/api/src/event.ts:22


type UnlistenFn = () => void;

Defined in: packages/api/src/event.ts:42

void


© 2026 Tauri Contributors. CC-BY / MIT