Chroma-Fs
Templates
CLI app templates — static, dynamic, and standard (Chroma-Fs demo).
The Chroma CLI ships three templates under $CHROMA_HOME/templates/, copied from Chroma/cli/examples/ during chroma install.
Quick comparison
| Template | mode | Bundler on build | Chroma-Fs | Develop desktop |
|---|---|---|---|---|
static | static | Minify files as-is | Optional (plugins) | No (dev.desktop: false) |
dynamic | dynamic | esbuild bundle | Optional (plugins) | Yes by default |
standard | dynamic | esbuild bundle | Built-in demo | Yes by default |
chroma new my-app --template static # default
chroma new my-app --template dynamic
chroma new my-app --template standard # recommended for storage appsstandard template
The standard template is the recommended starting point when your app needs persistent storage. It is a dynamic ES-module app with:
chroma.json—plugins: ["chroma-fs"],dev.desktop: true,package.zip: truechroma-fs.json— filesystem backend with./database path (IndexedDB fallback in plain browser)plugins/loader.js— loadscreateStoragefrom vendoredplugins/chroma-fs/src/storage.js—getFs()singleton viacreateChromaFssrc/components/FileExplorer.js— browse, preview, write, and delete filespackage.jsonscripts —fs:initandfs:linkfor monorepo development
chroma new notes-app --template standard
cd notes-app
npm run fs:link # optional: link @chroma/fs from workspace
chroma dev # opens Chroma Desktop in develop modeIn develop mode, files are stored under <app-data>/apps/develop/data/ on disk. In a plain browser (chroma dev --no-desktop), Chroma-Fs falls back to IndexedDB per chroma-fs.json resolution rules.
static and dynamic
See CLI templates for the full build and packaging differences between static and dynamic modes. Both can include plugins: ["chroma-fs"] — the standard template is essentially dynamic + a complete Chroma-Fs integration.
Related
- Configuration —
chroma-fs.jsonschema - Plugins — how
plugins/loader.jsworks - CLI —
chroma new,chroma fs init,chroma fs link