Skip to content

Configuration Overview

K-Pipe uses TOML config files organised into bundles — one bundle per project. Bundles live under configs/<bundle-name>/.

Config files in a bundle

File Purpose
kpipe.toml Main config — paths, anatomy, DCC settings, attributes, project formats ([formats]), media presets ([media.presets]) and color aliases ([color]) — see Media Settings & Presets
kpipe-kitsu.toml Kitsu backend connection
kpipe-blender.toml Blender-specific settings: startup files, extensions, asset libraries, render presets ([render.presets]) — see Blender Settings
kpipe-nuke.toml Nuke-specific settings
kpipe-publish.toml Publishing pipeline definitions — see Pipeline Configuration
kpipe-load.toml Load pipeline definitions — see Pipeline Configuration

Splitting large config files

Any kpipe-<name>.toml file can be split across multiple files to keep individual files manageable. Alongside kpipe-<name>.toml, drop in one or more kpipe-<name>.<category>.toml files — e.g. kpipe-publish.render.toml, kpipe-publish.review.toml — and they're merged in automatically. The <category> segment is purely organizational (pick whatever names help you navigate the bundle) and carries no special meaning to K-Pipe. Files are merged key-by-key (not wholesale), so [pipeline.x] in one file and [pipeline.y] in another both end up in the same combined pipeline table. The base kpipe-<name>.toml file is optional once split — category files alone are enough to satisfy a sub-config.

Selecting a config bundle

Set the KPIPE_CONFIG environment variable to the bundle name:

export KPIPE_CONFIG=doris_preprod   # Linux/macOS
$env:KPIPE_CONFIG = "doris_preprod" # PowerShell

The default bundle is main.

User-specific overrides

Settings read with Config.get_user_override() can be overridden for a specific user without touching the shared config: put the value in a <username> table next to the key it replaces. The user name is KPIPE_USER if set, otherwise the OS user (USERNAME).

[dcc.blender]
install_root = "C:/Program Files/Blender Foundation"

[dcc.blender.bob]
install_root = "D:/blender"   # used instead when bob launches Blender

Only keys read via get_user_override() support this — currently dcc.blender.install_root and dcc.blender.launcher_root.

Kitsu login credentials are the one exception — they are not stored in config at all. Run kpipe-manage login to store them locally; see Kitsu backend.

Defaults

The configs/defaults/ directory contains base configs that project bundles can inherit from. Values defined in a project bundle override the defaults.