Config reference

Coldtea has two kinds of configuration: app settings and repo files.

Use app settings for your machine and TeaHouse. Use repo files only when a project needs repeatable setup for everyone.

App settings

AreaUse it forNotes
AppearanceTheme and visual preferences.User preference, not repo policy.
AgentsInstalled agents, launch args, model and effort presets where supported.The agent CLI still owns auth and provider setup.
Cloud runsBackground or cloud-backed agent setup where enabled.Requires workspace and provider setup.
FeaturesApp-level toggles such as global hotkey behavior.Availability depends on build and platform.
TeaHouseActive TeaHouse, members, and team-scoped settings.Owners can invite people and revoke pending invites.
IntegrationsConnected tools such as GitHub or Linear.Upstream provider permissions still apply.
QAMatcha QA setup and test users where enabled.Keep test-user credentials scoped and intentional.
Scripts and updatesWorktree scripts, update flows, or supporting setup.Keep shared scripts boring and reviewable.

If a setting is missing, it may not be enabled for your build, platform, or TeaHouse.

Repo config files

Coldtea reads worktree script config from .coldtea/ in the project:

FileCommit it?Purpose
.coldtea/config.jsonUsually yesShared worktree setup, run, and teardown commands.
.coldtea/config.local.jsonUsually noMachine-specific overrides, local ports, private file copying, or personal paths.

Shared config should not contain secrets, personal absolute paths, or commands that only work on one developer's machine.

Worktree script shape

Shared config accepts optional arrays:

{
  "setup": ["npm install"],
  "run": ["npm run dev"],
  "teardown": ["npm run clean"]
}

Use the fields this way:

FieldWhen it runs
setupAfter Coldtea creates a worktree.
runWhen you start the configured project command for that worktree.
teardownBefore deleting or retiring a worktree, when configured.

Each command runs in a visible terminal pane. If it fails, inspect the pane before continuing.

Local overrides

A local array replaces the shared script for that key:

{
  "run": ["npm run dev -- --port 3010"]
}

A local hook object wraps the shared script:

{
  "setup": {
    "before": ["cp ../coldtea/.env.local .env.local"],
    "after": ["npm run db:prepare"]
  }
}

Use hooks when the team command is right, but your machine needs a little setup before or after it.

Resolution order

For a worktree, Coldtea resolves scripts in this order:

  1. Base project .coldtea/config.json.
  2. Worktree .coldtea/config.json, if different.
  3. Base project .coldtea/config.local.json.
  4. Worktree .coldtea/config.local.json, if different.

Later entries can replace or wrap earlier entries. This lets the shared config stay team-safe while local config handles private machine details.

Worktree environment variables

Coldtea provides these variables to worktree commands:

VariableMeaning
COLDTEA_ROOT_PATHAbsolute path to the base project.
COLDTEA_WORKTREE_PATHAbsolute path to the worktree.
COLDTEA_WORKTREE_NAMEWorktree display name.
COLDTEA_BASE_BRANCHBranch the worktree was created from.
COLDTEA_BRANCH_NAMEBranch checked out inside the worktree.
COLDTEA_WORKTREE_ACCENT_TONEAccent tone assigned to the worktree.

Use these instead of hardcoding paths.

MCP and local API env

Agent sessions launched by Coldtea may also receive session-scoped values such as:

  • COLDTEA_LOCAL_API_URL
  • COLDTEA_MCP_URL
  • COLDTEA_MCP_TOKEN

These are live session values, not config you should copy into repo files. Treat them as sensitive. See MCP and local API for the full boundary.

Next: worktree scripts or security and privacy.

On this page