Project configuration
Create odori.config.ts in the project root to override project-wide defaults. Video timing, brand settings, and aspect ratios belong in layouts and video metadata.
Define configuration
Import the helper from the CLI package:
import {defineConfig} from "@odori/cli";
export default defineConfig({
videosDir: "videos",
exportDir: "out",
port: 4300,
open: false,
});The CLI also reads odori.config.mjs and odori.config.js, in that order after the TypeScript file. Configuration is loaded from the directory where the command runs.
Paths and Studio
| Option | Default | Purpose |
|---|---|---|
videosDir | videos | Video and preview discovery root |
outDir | .odori | Generated project state |
exportDir | out | Default export directory |
componentsDir | videos/components | Installed component source |
audioDir | public/audio | Audio library directory |
port | 4300 | Studio port |
docsUrl | https://odori.dev/docs | Studio documentation link |
open | Interactive-shell behavior | Whether Studio opens a browser |
pnpm odori dev --no-open disables automatic browser opening for one run. You can also set ODORI_OPEN=0. CI and piped output do not open a browser automatically.
Rendering defaults
| Option | Purpose |
|---|---|
chromePath | Explicit Chrome or Chromium executable |
ffmpegPath | Explicit FFmpeg executable |
concurrency | Number of parallel render workers |
preset | x264 encoding preset, default medium |
format | Default export format |
skipUnchangedFrames | Reuse unchanged captures, enabled by default |
cacheChunks | Reuse matching encoded chunks, enabled by default |
Use export flags to choose settings for one render. See exporting for quality, format, and scale examples.
Asset references
Register assets by a stable reference so videos do not need to repeat their URLs:
import {defineConfig} from "@odori/cli";
export default defineConfig({
assets: [
{reference: "brand:product-mark", url: "/images/product-mark.svg"},
],
});The URL above points to public/images/product-mark.svg. Asset references are available through the runtime asset registry and preparation context. See data and assets.
Registry and generation
registryUrl selects the registry used for component installation. ODORI_REGISTRY overrides it for one command. Use this for a mirror, fork, or pinned registry.
generation.music selects the default music provider. Store provider credentials through the integration workflow, not in committed configuration. See integrations.