@tauri-apps/api/path
The path module provides utilities for working with file and directory paths.
This package is also accessible with window.__TAURI__.path when app.withGlobalTauri in tauri.conf.json is set to true.
It is recommended to allowlist only the APIs you use for optimal bundle size and security.
Platform-specific
- Android: The user directories are sandboxed per app.
desktopDir,executableDir,fontDir,runtimeDirandtemplateDir— and the matching BaseDirectory variants — do not exist on Android at all. The remaining ones resolve inside the app’s own storage, so they are not shared with other apps, andvideoDirresolves to the app-specific Movies directory. - iOS: Every directory resolves inside the app sandbox, so paths are private to your app and change between installs. Resolve them at runtime instead of persisting absolute paths.
Remarks
Section titled “Remarks”All commands used by this module are part of the core:path:default
permission set, which is enabled by default, so no extra capability
configuration is needed.
Functions
Section titled “Functions”appCacheDir()
Section titled “appCacheDir()”function appCacheDir(): Promise<string>;Defined in: packages/api/src/path.ts:221
Returns the path to the suggested directory for your app’s cache files.
Resolves to ${cacheDir}/${bundleIdentifier}, where bundleIdentifier is the identifier value configured in tauri.conf.json,
unless overridden with the app > appDirectoriesOverride config (a single root override resolves to ${root}/caches).
Example
Section titled “Example”import { appCacheDir } from '@tauri-apps/api/path';const appCacheDirPath = await appCacheDir();Returns
Section titled “Returns”1.2.0
appConfigDir()
Section titled “appConfigDir()”function appConfigDir(): Promise<string>;Defined in: packages/api/src/path.ts:167
Returns the path to the suggested directory for your app’s config files.
Resolves to ${configDir}/${bundleIdentifier}, where bundleIdentifier is the identifier value configured in tauri.conf.json,
unless overridden with the app > appDirectoriesOverride config.
Example
Section titled “Example”import { appConfigDir } from '@tauri-apps/api/path';const appConfigDirPath = await appConfigDir();Returns
Section titled “Returns”1.2.0
appDataDir()
Section titled “appDataDir()”function appDataDir(): Promise<string>;Defined in: packages/api/src/path.ts:185
Returns the path to the suggested directory for your app’s data files.
Resolves to ${dataDir}/${bundleIdentifier}, where bundleIdentifier is the identifier value configured in tauri.conf.json,
unless overridden with the app > appDirectoriesOverride config.
Example
Section titled “Example”import { appDataDir } from '@tauri-apps/api/path';const appDataDirPath = await appDataDir();Returns
Section titled “Returns”1.2.0
appLocalDataDir()
Section titled “appLocalDataDir()”function appLocalDataDir(): Promise<string>;Defined in: packages/api/src/path.ts:203
Returns the path to the suggested directory for your app’s local data files.
Resolves to ${localDataDir}/${bundleIdentifier}, where bundleIdentifier is the identifier value configured in tauri.conf.json,
unless overridden with the app > appDirectoriesOverride config.
Example
Section titled “Example”import { appLocalDataDir } from '@tauri-apps/api/path';const appLocalDataDirPath = await appLocalDataDir();Returns
Section titled “Returns”1.2.0
appLogDir()
Section titled “appLogDir()”function appLogDir(): Promise<string>;Defined in: packages/api/src/path.ts:676
Returns the path to the suggested directory for your app’s log files.
Platform-specific
- Linux: Resolves to
${localDataDir}/${bundleIdentifier}/logs. - macOS: Resolves to
${homeDir}/Library/Logs/{bundleIdentifier} - Windows: Resolves to
${localDataDir}/${bundleIdentifier}/logs.
All of them can be overridden with the app > appDirectoriesOverride config (a single root override resolves to ${root}/logs).
Example
Section titled “Example”import { appLogDir } from '@tauri-apps/api/path';const appLogDirPath = await appLogDir();Returns
Section titled “Returns”1.2.0
audioDir()
Section titled “audioDir()”function audioDir(): Promise<string>;Defined in: packages/api/src/path.ts:243
Returns the path to the user’s audio directory.
Platform-specific
- Linux: Resolves to
xdg-user-dirs’XDG_MUSIC_DIR. - macOS: Resolves to
$HOME/Music. - Windows: Resolves to
{FOLDERID_Music}.
Example
Section titled “Example”import { audioDir } from '@tauri-apps/api/path';const audioDirPath = await audioDir();Returns
Section titled “Returns”1.0.0
basename()
Section titled “basename()”function basename(path: string, ext?: string): Promise<string>;Defined in: packages/api/src/path.ts:806
Returns the last portion of a path. Trailing directory separators are ignored.
Example
Section titled “Example”import { basename } from '@tauri-apps/api/path';const base = await basename('path/to/app.conf');assert(base === 'app.conf');Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
path |
string |
- |
ext? |
string |
An optional file extension to be removed from the returned path. |
Returns
Section titled “Returns”1.0.0
cacheDir()
Section titled “cacheDir()”function cacheDir(): Promise<string>;Defined in: packages/api/src/path.ts:265
Returns the path to the user’s cache directory.
Platform-specific
- Linux: Resolves to
$XDG_CACHE_HOMEor$HOME/.cache. - macOS: Resolves to
$HOME/Library/Caches. - Windows: Resolves to
{FOLDERID_LocalAppData}.
Example
Section titled “Example”import { cacheDir } from '@tauri-apps/api/path';const cacheDirPath = await cacheDir();Returns
Section titled “Returns”1.0.0
configDir()
Section titled “configDir()”function configDir(): Promise<string>;Defined in: packages/api/src/path.ts:287
Returns the path to the user’s config directory.
Platform-specific
- Linux: Resolves to
$XDG_CONFIG_HOMEor$HOME/.config. - macOS: Resolves to
$HOME/Library/Application Support. - Windows: Resolves to
{FOLDERID_RoamingAppData}.
Example
Section titled “Example”import { configDir } from '@tauri-apps/api/path';const configDirPath = await configDir();Returns
Section titled “Returns”1.0.0
dataDir()
Section titled “dataDir()”function dataDir(): Promise<string>;Defined in: packages/api/src/path.ts:309
Returns the path to the user’s data directory.
Platform-specific
- Linux: Resolves to
$XDG_DATA_HOMEor$HOME/.local/share. - macOS: Resolves to
$HOME/Library/Application Support. - Windows: Resolves to
{FOLDERID_RoamingAppData}.
Example
Section titled “Example”import { dataDir } from '@tauri-apps/api/path';const dataDirPath = await dataDir();Returns
Section titled “Returns”1.0.0
delimiter()
Section titled “delimiter()”function delimiter(): string;Defined in: packages/api/src/path.ts:716
Returns the platform-specific path segment delimiter:
;on Windows:on POSIX
Returns
Section titled “Returns”string
2.0.0
desktopDir()
Section titled “desktopDir()”function desktopDir(): Promise<string>;Defined in: packages/api/src/path.ts:334
Returns the path to the user’s desktop directory.
Platform-specific
-
Android: Unsupported. Android has no desktop directory, the BaseDirectory.Desktop variant does not exist there and the call rejects.
-
Linux: Resolves to
xdg-user-dirs’XDG_DESKTOP_DIR. -
macOS: Resolves to
$HOME/Desktop. -
Windows: Resolves to
{FOLDERID_Desktop}.
Example
Section titled “Example”import { desktopDir } from '@tauri-apps/api/path';const desktopPath = await desktopDir();Returns
Section titled “Returns”1.0.0
dirname()
Section titled “dirname()”function dirname(path: string): Promise<string>;Defined in: packages/api/src/path.ts:775
Returns the parent directory of a given path. Trailing directory separators are ignored.
Example
Section titled “Example”import { dirname } from '@tauri-apps/api/path';const dir = await dirname('/path/to/somedir/');assert(dir === '/path/to');Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
path |
string |
Returns
Section titled “Returns”1.0.0
documentDir()
Section titled “documentDir()”function documentDir(): Promise<string>;Defined in: packages/api/src/path.ts:356
Returns the path to the user’s document directory.
Example
Section titled “Example”import { documentDir } from '@tauri-apps/api/path';const documentDirPath = await documentDir();Platform-specific
- Linux: Resolves to
xdg-user-dirs’XDG_DOCUMENTS_DIR. - macOS: Resolves to
$HOME/Documents. - Windows: Resolves to
{FOLDERID_Documents}.
Returns
Section titled “Returns”1.0.0
downloadDir()
Section titled “downloadDir()”function downloadDir(): Promise<string>;Defined in: packages/api/src/path.ts:378
Returns the path to the user’s download directory.
Platform-specific
- Linux: Resolves to
xdg-user-dirs’XDG_DOWNLOAD_DIR. - macOS: Resolves to
$HOME/Downloads. - Windows: Resolves to
{FOLDERID_Downloads}.
Example
Section titled “Example”import { downloadDir } from '@tauri-apps/api/path';const downloadDirPath = await downloadDir();Returns
Section titled “Returns”1.0.0
executableDir()
Section titled “executableDir()”function executableDir(): Promise<string>;Defined in: packages/api/src/path.ts:403
Returns the path to the user’s executable directory.
Platform-specific
-
Android: Unsupported. The BaseDirectory.Executable variant does not exist there and the call rejects.
-
Linux: Resolves to
$XDG_BIN_HOME/../binor$XDG_DATA_HOME/../binor$HOME/.local/bin. -
macOS: Not supported.
-
Windows: Not supported.
Example
Section titled “Example”import { executableDir } from '@tauri-apps/api/path';const executableDirPath = await executableDir();Returns
Section titled “Returns”1.0.0
extname()
Section titled “extname()”function extname(path: string): Promise<string>;Defined in: packages/api/src/path.ts:790
Returns the extension of the path.
Example
Section titled “Example”import { extname } from '@tauri-apps/api/path';const ext = await extname('/path/to/file.html');assert(ext === 'html');Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
path |
string |
Returns
Section titled “Returns”1.0.0
fontDir()
Section titled “fontDir()”function fontDir(): Promise<string>;Defined in: packages/api/src/path.ts:428
Returns the path to the user’s font directory.
Platform-specific
-
Android: Unsupported. The BaseDirectory.Font variant does not exist there and the call rejects.
-
Linux: Resolves to
$XDG_DATA_HOME/fontsor$HOME/.local/share/fonts. -
macOS: Resolves to
$HOME/Library/Fonts. -
Windows: Not supported.
Example
Section titled “Example”import { fontDir } from '@tauri-apps/api/path';const fontDirPath = await fontDir();Returns
Section titled “Returns”1.0.0
homeDir()
Section titled “homeDir()”function homeDir(): Promise<string>;Defined in: packages/api/src/path.ts:450
Returns the path to the user’s home directory.
Platform-specific
- Linux: Resolves to
$HOME. - macOS: Resolves to
$HOME. - Windows: Resolves to
{FOLDERID_Profile}.
Example
Section titled “Example”import { homeDir } from '@tauri-apps/api/path';const homeDirPath = await homeDir();Returns
Section titled “Returns”1.0.0
isAbsolute()
Section titled “isAbsolute()”function isAbsolute(path: string): Promise<boolean>;Defined in: packages/api/src/path.ts:820
Returns whether the path is absolute or not.
Example
Section titled “Example”import { isAbsolute } from '@tauri-apps/api/path';assert(await isAbsolute('/home/tauri'));Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
path |
string |
Returns
Section titled “Returns”1.0.0
join()
Section titled “join()”function join(...paths: string[]): Promise<string>;Defined in: packages/api/src/path.ts:760
Joins all given path segments together using the platform-specific separator as a delimiter, then normalizes the resulting path.
Example
Section titled “Example”import { join, appDataDir } from '@tauri-apps/api/path';const appDataDirPath = await appDataDir();const path = await join(appDataDirPath, 'users', 'tauri', 'avatar.png');Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
…paths |
string[] |
Returns
Section titled “Returns”1.0.0
localDataDir()
Section titled “localDataDir()”function localDataDir(): Promise<string>;Defined in: packages/api/src/path.ts:472
Returns the path to the user’s local data directory.
Platform-specific
- Linux: Resolves to
$XDG_DATA_HOMEor$HOME/.local/share. - macOS: Resolves to
$HOME/Library/Application Support. - Windows: Resolves to
{FOLDERID_LocalAppData}.
Example
Section titled “Example”import { localDataDir } from '@tauri-apps/api/path';const localDataDirPath = await localDataDir();Returns
Section titled “Returns”1.0.0
normalize()
Section titled “normalize()”function normalize(path: string): Promise<string>;Defined in: packages/api/src/path.ts:745
Normalizes the given path, resolving '..' and '.' segments and resolve symbolic links.
Example
Section titled “Example”import { normalize, appDataDir } from '@tauri-apps/api/path';const appDataDirPath = await appDataDir();const path = await normalize(`${appDataDirPath}/../users/tauri/avatar.png`);Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
path |
string |
Returns
Section titled “Returns”1.0.0
pictureDir()
Section titled “pictureDir()”function pictureDir(): Promise<string>;Defined in: packages/api/src/path.ts:494
Returns the path to the user’s picture directory.
Platform-specific
- Linux: Resolves to
xdg-user-dirs’XDG_PICTURES_DIR. - macOS: Resolves to
$HOME/Pictures. - Windows: Resolves to
{FOLDERID_Pictures}.
Example
Section titled “Example”import { pictureDir } from '@tauri-apps/api/path';const pictureDirPath = await pictureDir();Returns
Section titled “Returns”1.0.0
publicDir()
Section titled “publicDir()”function publicDir(): Promise<string>;Defined in: packages/api/src/path.ts:516
Returns the path to the user’s public directory.
Platform-specific
- Linux: Resolves to
xdg-user-dirs’XDG_PUBLICSHARE_DIR. - macOS: Resolves to
$HOME/Public. - Windows: Resolves to
{FOLDERID_Public}.
Example
Section titled “Example”import { publicDir } from '@tauri-apps/api/path';const publicDirPath = await publicDir();Returns
Section titled “Returns”1.0.0
resolve()
Section titled “resolve()”function resolve(...paths: string[]): Promise<string>;Defined in: packages/api/src/path.ts:730
Resolves a sequence of paths or path segments into an absolute path.
Example
Section titled “Example”import { resolve, appDataDir } from '@tauri-apps/api/path';const appDataDirPath = await appDataDir();const path = await resolve(appDataDirPath, '..', 'users', 'tauri', 'avatar.png');Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
…paths |
string[] |
Returns
Section titled “Returns”1.0.0
resolveResource()
Section titled “resolveResource()”function resolveResource(resourcePath: string): Promise<string>;Defined in: packages/api/src/path.ts:569
Resolve the path to a resource file.
Example
Section titled “Example”import { resolveResource } from '@tauri-apps/api/path';const resourcePath = await resolveResource('script.sh');Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
resourcePath |
string |
The path to the resource. Must follow the same syntax as defined in tauri.conf.json > bundle > resources, i.e. keeping subfolders and parent dir components (../). |
Returns
Section titled “Returns”The full path to the resource.
1.0.0
resourceDir()
Section titled “resourceDir()”function resourceDir(): Promise<string>;Defined in: packages/api/src/path.ts:549
Returns the path to the application’s resource directory.
To resolve a resource path, see resolveResource.
Platform-specific
Although we provide the exact path where this function resolves to, this is not a contract and things might change in the future
- Windows: Resolves to the directory that contains the main executable.
- Linux: When running in an AppImage, the
APPDIRvariable will be set to the mounted location of the app, and the resource dir will be${APPDIR}/usr/lib/${exe_name}. If not running in an AppImage, the path is/usr/lib/${exe_name}. When running the app fromsrc-tauri/target/(debug|release)/, the path is${exe_dir}/../lib/${exe_name}. - macOS: Resolves to
${exe_dir}/../Resources(inside .app). - iOS: Resolves to
${exe_dir}/assets. - Android: Currently the resources are stored in the APK as assets so it’s not a normal file system path,
we return a special URI prefix
asset://localhost/here that can be used with the file system plugin,
Example
Section titled “Example”import { resourceDir } from '@tauri-apps/api/path';const resourceDirPath = await resourceDir();Returns
Section titled “Returns”1.0.0
runtimeDir()
Section titled “runtimeDir()”function runtimeDir(): Promise<string>;Defined in: packages/api/src/path.ts:595
Returns the path to the user’s runtime directory.
Platform-specific
-
Android: Unsupported. The BaseDirectory.Runtime variant does not exist there and the call rejects.
-
Linux: Resolves to
$XDG_RUNTIME_DIR. -
macOS: Not supported.
-
Windows: Not supported.
Example
Section titled “Example”import { runtimeDir } from '@tauri-apps/api/path';const runtimeDirPath = await runtimeDir();Returns
Section titled “Returns”1.0.0
function sep(): string;Defined in: packages/api/src/path.ts:705
Returns the platform-specific path segment separator:
\on Windows/on POSIX
Returns
Section titled “Returns”string
2.0.0
tempDir()
Section titled “tempDir()”function tempDir(): Promise<string>;Defined in: packages/api/src/path.ts:692
Returns a temporary directory.
Example
Section titled “Example”import { tempDir } from '@tauri-apps/api/path';const temp = await tempDir();Returns
Section titled “Returns”2.0.0
templateDir()
Section titled “templateDir()”function templateDir(): Promise<string>;Defined in: packages/api/src/path.ts:620
Returns the path to the user’s template directory.
Platform-specific
-
Android: Unsupported. The BaseDirectory.Template variant does not exist there and the call rejects.
-
Linux: Resolves to
xdg-user-dirs’XDG_TEMPLATES_DIR. -
macOS: Not supported.
-
Windows: Resolves to
{FOLDERID_Templates}.
Example
Section titled “Example”import { templateDir } from '@tauri-apps/api/path';const templateDirPath = await templateDir();Returns
Section titled “Returns”1.0.0
videoDir()
Section titled “videoDir()”function videoDir(): Promise<string>;Defined in: packages/api/src/path.ts:652
Returns the path to the user’s video directory.
Platform-specific
- Linux: Resolves to
xdg-user-dirs’XDG_VIDEOS_DIR. - macOS: Resolves to
$HOME/Movies. - Windows: Resolves to
{FOLDERID_Videos}. - Android: Resolves to the app-specific Movies directory
(
getExternalFilesDir(DIRECTORY_MOVIES)), typically.../files/Movies. It is private to your app and removed when the app is uninstalled. - iOS: Resolves inside the app sandbox.
Example
Section titled “Example”import { videoDir } from '@tauri-apps/api/path';const videoDirPath = await videoDir();Returns
Section titled “Returns”Remarks
Section titled “Remarks”Breaking change on Android in tauri 2.12.0: videoDir() and the
$VIDEO path variable used to resolve to external cache storage
(.../cache) and now resolve to the app-specific Movies directory
(.../files/Movies). Files written to the old location are not found at the new
one, so migrate them or update your path assumptions.
1.0.0
Enumerations
Section titled “Enumerations”BaseDirectory
Section titled “BaseDirectory”Defined in: packages/api/src/path.ts:35
2.0.0
Enumeration Members
Section titled “Enumeration Members”| Enumeration Member | Value | Description | Defined in |
|---|---|---|---|
AppCache |
16 |
See appCacheDir for more information. | packages/api/src/path.ts:104 |
AppConfig |
13 |
See appConfigDir for more information. | packages/api/src/path.ts:92 |
AppData |
14 |
See appDataDir for more information. | packages/api/src/path.ts:96 |
AppLocalData |
15 |
See appLocalDataDir for more information. | packages/api/src/path.ts:100 |
AppLog |
17 |
See appLogDir for more information. | packages/api/src/path.ts:108 |
Audio |
1 |
See audioDir for more information. | packages/api/src/path.ts:39 |
Cache |
2 |
See cacheDir for more information. | packages/api/src/path.ts:43 |
Config |
3 |
See configDir for more information. | packages/api/src/path.ts:47 |
Data |
4 |
See dataDir for more information. | packages/api/src/path.ts:51 |
Desktop |
18 |
See desktopDir for more information. Platform-specific - Android: Unsupported, this variant does not exist on Android. | packages/api/src/path.ts:116 |
Document |
6 |
See documentDir for more information. | packages/api/src/path.ts:59 |
Download |
7 |
See downloadDir for more information. | packages/api/src/path.ts:63 |
Executable |
19 |
See executableDir for more information. Platform-specific - Android: Unsupported, this variant does not exist on Android. | packages/api/src/path.ts:124 |
Font |
20 |
See fontDir for more information. Platform-specific - Android: Unsupported, this variant does not exist on Android. | packages/api/src/path.ts:132 |
Home |
21 |
See homeDir for more information. | packages/api/src/path.ts:136 |
LocalData |
5 |
See localDataDir for more information. | packages/api/src/path.ts:55 |
Picture |
8 |
See pictureDir for more information. | packages/api/src/path.ts:67 |
Public |
9 |
See publicDir for more information. | packages/api/src/path.ts:71 |
Resource |
11 |
See resourceDir for more information. | packages/api/src/path.ts:84 |
Runtime |
22 |
See runtimeDir for more information. Platform-specific - Android: Unsupported, this variant does not exist on Android. | packages/api/src/path.ts:144 |
Temp |
12 |
See tempDir for more information. | packages/api/src/path.ts:88 |
Template |
23 |
See templateDir for more information. Platform-specific - Android: Unsupported, this variant does not exist on Android. | packages/api/src/path.ts:152 |
Video |
10 |
See videoDir for more information. Platform-specific - Android: Resolves to the app-specific Movies directory since 2.12.0, see videoDir. | packages/api/src/path.ts:80 |
© 2026 Tauri Contributors. CC-BY / MIT