Skip to main content

Configuration File

Your project's configuration lives in a purplet.config.ts file. All values are optional. The complete list of options, with defaults, is shown here:

import { Config } from 'purplet';

const config: Config = {
alias: {
$features: 'src/features',
$lib: 'src/lib',
allowedMentions: {
repliedUser: true,
parse: ['users'],
lang: 'en-US',
paths: {
build: 'dist',
features: 'src/features',
translations: 'locales',
vite: () => ({}),

export default config;


An object containing zero or more aliases used to replace values in import statements. These aliases are automatically passed to Vite and TypeScript. Built-in, $lib and $features aliases are provided.

For example, you can add aliases to a components and utils folder:

const config = {
alias: {
$utils: 'src/utils',


This sets a bot-wide default for the allowed_mentions field, passed to functions that send a message. By default, it is an object that only allows user mentions and replies to cause pings.


The primary language that your project is written in. This is only needed if you plan to translate your bot.


Defines various paths related to your application that Purplet uses:

  • build: Path to where built JavaScript files are saved. The bot entry is always index.js inside of this folder.
  • features: The directory to search and watch for exported Feature objects.
  • translations: The directory that translation files are stored.


A Vite config object, or a function that returns one. You can pass Vite and Rollup plugins via the plugins option to customize your build in advanced ways.