Skip to content

Runtime Config

This API is still a WIP, with more features coming soon!

Define runtime configuration in a single place, <srcDir>/app.config.ts:

ts
import { defineAppConfig } from '#imports';  // Define types for your config declare module 'wxt/utils/define-app-config' {  export interface WxtAppConfig {  theme?: 'light' | 'dark';  } }  export default defineAppConfig({  theme: 'dark', });

WARNING

This file is committed to the repo, so don't put any secrets here. Instead, use Environment Variables

To access runtime config, WXT provides the useAppConfig function:

ts
import { useAppConfig } from '#imports';  console.log(useAppConfig()); // { theme: "dark" }

Environment Variables in App Config

You can use environment variables in the app.config.ts file.

ts
declare module 'wxt/utils/define-app-config' {  export interface WxtAppConfig {  apiKey?: string;  skipWelcome: boolean;  } }  export default defineAppConfig({  apiKey: import.meta.env.WXT_API_KEY,  skipWelcome: import.meta.env.WXT_SKIP_WELCOME === 'true', });

This has several advantages:

  • Define all expected environment variables in a single file
  • Convert strings to other types, like booleans or arrays
  • Provide default values if an environment variable is not provided