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

OptionDefaultPurpose
videosDirvideosVideo and preview discovery root
outDir.odoriGenerated project state
exportDiroutDefault export directory
componentsDirvideos/componentsInstalled component source
audioDirpublic/audioAudio library directory
port4300Studio port
docsUrlhttps://odori.dev/docsStudio documentation link
openInteractive-shell behaviorWhether 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

OptionPurpose
chromePathExplicit Chrome or Chromium executable
ffmpegPathExplicit FFmpeg executable
concurrencyNumber of parallel render workers
presetx264 encoding preset, default medium
formatDefault export format
skipUnchangedFramesReuse unchanged captures, enabled by default
cacheChunksReuse 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.

On this page