The aarshi.toml file
Every aarshi project has an aarshi.toml file at its root. It stores the choices made during setup, so every later command knows how the project is built.
What it looks like
After aarshi setup my-site --languages fr,en --default-language fr --yes, the file contains:
languages = ["fr", "en"]
package_manager = "npm"
ui = "shadcn"
icons = "lucide"
cache_components = false
site_url = "http://localhost:3000"
The keys
| Key | Values | What it controls |
|---|---|---|
languages |
A list of codes, e.g. ["fr", "en"] |
The languages of the site. The first one is the default language: it is served at / and its dictionary is the reference for the types of the others. |
package_manager |
npm, pnpm, yarn, bun |
The tool used to install the dependencies, and the lockfile aarshi status expects. |
ui |
shadcn, base-ui |
shadcn (styled, built on Base UI), or Base UI alone. |
icons |
lucide, none |
The icon library (lucide-react), or none. |
cache_components |
true, false |
Enables the Cache Components feature of Next.js. Off by default. |
site_url |
A full URL, e.g. https://example.com |
The public address of the site. It is copied to lib/site.ts. |
Rules
- Every key is optional. A missing key takes its default value:
franden, npm, shadcn, lucide, Cache Components off,http://localhost:3000. - An unknown key stops aarshi with an error. Check the spelling if that happens.
- The user configuration,
~/.config/aarshi/config.toml, sets the defaults for new projects. Thelanguagesofaarshi.tomlreplace the user list for this project. - If a key of the list above is missing,
aarshi statusreports atodo(config.project-file-incomplete). Nothing is broken, but the file is not complete.
Should you edit it by hand?
Changing site_url or cache_components by hand is fine. For languages, prefer aarshi add-lang: the command also creates the dictionary, the config files and the list in aarshi.toml. Adding a code to the list by hand does not create its dictionary.
Keep the file in your project. Commit it with the rest of the code. Every aarshi command reads it, and without it aarshi does not recognise the folder as a project.