Reference
Shell configuration
Configure shell setup for Conductor setup and run scripts
Conductor runs setup and run scripts in a non-interactive shell. This keeps scripts from blocking on prompts while Conductor prepares a workspace or starts a saved command.
Many development tools, including pnpm, mise, and nvm, are often configured in .zshrc. That file only applies to interactive shells, so configuration that works in your normal terminal may not automatically apply to Conductor scripts.
How Conductor gets your environment
Conductor tries to make common shell setups work out of the box. Before running scripts, Conductor launches an interactive shell in the workspace directory, captures exported environment variables such as PATH, and reuses that environment in its non-interactive shells.
Conductor captures the environment from the workspace directory because tools like mise can change their behavior depending on the current directory.
If a command works in Terminal but fails in Conductor
If a command works in your normal terminal but fails in Conductor, it probably depends on configuration from .zshrc that is not part of the exported environment. Common examples include aliases, shell functions, and unexported variables.
Use one of these fixes.
Put setup directly in your script
This is the recommended option. Add the required setup to your Conductor setup or run script so the command does not depend on interactive shell configuration.
export PATH="$HOME/.local/bin:/opt/homebrew/bin:$PATH"
eval "$(mise activate zsh)"
pnpm installThis makes the script easier to understand, share, and debug because the required environment setup lives next to the command that needs it.
Put minimal shared setup in .zshenv
Use .zshenv when configuration must be available to every zsh script, including non-interactive scripts.
Keep .zshenv minimal. Avoid prompts, slow commands, terminal UI setup, or anything that assumes an interactive terminal.
When reliability matters most, put setup directly into your scripts. Conductor tries to capture your interactive shell environment, but that capture can fail, time out, or become stale.