wt

Ecosystem Support

Supported languages and package managers, detection signals, and multi-ecosystem repos.

Supported Ecosystems

wt auto-detects the following ecosystems by scanning for marker files:

EcosystemPackage ManagersDetection Signal
Node.jsbun, pnpm, yarn, npmpackage.json + lockfile
Pythonuv, poetry, pipenv, pipPipfile, pyproject.toml, requirements.txt
RustcargoCargo.toml
Gogogo.mod

Node.js Detection

Lockfile priority (highest wins):

  1. bun.lockbbun
  2. pnpm-lock.yamlpnpm
  3. yarn.lockyarn
  4. package-lock.jsonnpm
  5. (none found) → bun (default)

Override in .worktreerc:

[deps]
node_pm = "pnpm"

Python Detection

SignalPackage Manager
Pipfilepipenv
pyproject.toml with [tool.poetry]poetry
pyproject.toml with [tool.uv] or [project]uv
requirements.txt onlyuv

Override in .worktreerc:

[deps]
python_pm = "poetry"

Multi-Ecosystem Repos

Repos with multiple ecosystems (e.g. a Node.js frontend + Python backend) are handled correctly. wt runs the appropriate installer for each detected ecosystem sequentially.

[1/4] Creating worktree ........................ done
[2/4] Detecting project type .................. node(bun), python(uv)
[3/4] Installing dependencies ................. done
[4/4] Setting up env files .................... 2 files

Overriding Detection

If auto-detection is unreliable for your setup, pin the ecosystems explicitly in .worktreerc:

[detect]
types = ["node", "python"]

When types is set, wt skips file scanning entirely and uses exactly these ecosystems.

Custom Install Commands

For monorepos or non-standard setups, bypass ecosystem detection entirely with custom commands:

[deps.custom]
commands = [
    "bun install --frozen-lockfile",
    "cd services/api && uv venv .venv && uv pip install -e '.[dev]'",
]

Custom commands run from the worktree root in the listed order.

On this page