Configuration

OpenMontage reads global settings from config.yaml and provider credentials from .env. These files control LLM behavior, spending limits, state persistence, output defaults, and platform-specific render profiles. All config.yaml values are validated by Pydantic models in lib/config_model.py.

config.yaml

Place config.yaml in the project root. The file defines five top-level sections.

llm:
  provider: anthropic
  temperature: 0.7
  max_tokens: 4096

budget:
  mode: warn
  total_usd: 10.00
  reserve_pct: 0.10
  single_action_approval_usd: 0.50

checkpoint:
  policy: guided
  storage_dir: pipeline

output:
  default_format: mp4
  default_codec: libx264
  default_audio_codec: aac
  default_resolution: 1920x1080
  default_fps: 30
  default_crf: 23

paths:
  pipeline_dir: pipeline
  library_dir: library
  styles_dir: styles
  skills_dir: skills
  output_dir: output
  • llm sets the coding assistant provider and generation parameters.
  • budget controls spending mode (observe, warn, or cap), total limit, reserve holdback, and approval threshold.
  • checkpoint selects the default policy (guided, manual_all, or auto_noncreative) and storage location.
  • output supplies default render parameters used when no platform profile is selected.
  • paths overrides directory locations for pipeline state, libraries, styles, skills, and final output.

.env File

Copy the example and add only the keys you need:

cp .env.example .env
Variable Used By Purpose
ELEVENLABS_API_KEY elevenlabs_tts, music_gen TTS, music, sound effects
OPENAI_API_KEY openai_tts, openai_image TTS fallback, DALL-E 3
XAI_API_KEY grok_image, grok_video Grok image editing/generation and video
FAL_KEY flux_image, kling_video, veo_video, minimax_video, recraft_image fal.ai hosted models
HEYGEN_API_KEY heygen_video Multi-provider video gateway
PEXELS_API_KEY pexels_image, pexels_video Free stock media
PIXABAY_API_KEY pixabay_image, pixabay_video Free stock media
GOOGLE_API_KEY google_imagen, google_tts Imagen images and Cloud TTS
RUNWAY_API_KEY runway_video Runway Gen-4 video
HIGGSFIELD_API_KEY + HIGGSFIELD_API_SECRET higgsfield_video Higgsfield multi-model video
SUNO_API_KEY suno_music Full song generation
MODAL_LTX2_ENDPOINT_URL ltx_video_modal Self-hosted LTX-2
VIDEO_GEN_LOCAL_ENABLED local video tools Enable local GPU generation
VIDEO_GEN_LOCAL_MODEL wan, hunyuan, ltx, cogvideo Select local model
DOUBAO_SPEECH_API_KEY / DOUBAO_SPEECH_VOICE_TYPE doubao_tts Mandarin TTS
HF_TOKEN analysis tools Optional speaker diarization
UNSPLASH_ACCESS_KEY stock tools Free stock images

See Provider Guide for setup steps and pricing per key. See Configuring Providers for first-time setup.

Media Profiles

lib/media_profiles.py supplies platform-specific render configurations. Each profile defines resolution, aspect ratio, codec, audio codec, CRF, pixel format, max file size, max duration, and caption format. The ffmpeg_output_args(profile) helper produces the matching FFmpeg flags.

Profile Resolution Aspect Notes
youtube_landscape 1920x1080 16
Standard YouTube
youtube_4k 3840x2160 16
4K YouTube
youtube_shorts 1080x1920 9
Max 60s
instagram_reels 1080x1920 9
Max 90s
instagram_feed 1080x1080 1
Square
tiktok 1080x1920 9
Vertical
linkedin 1920x1080 16
Landscape
cinematic 2560x1080 21
Ultrawide

Profiles are referenced from edit_decisions and passed to composition tools. See Media Profiles for the complete field list per profile.