[BUG] Claude Code Not Inheriting Environment Variables like PATH, PYTHONPATH from Shell or settings.json
Environment
- Platform (select one):
- [ ] Anthropic API
- [X] AWS Bedrock
- [ ] Google Vertex AI
- [ ] Other: <!-- specify -->
- Claude CLI version: 1.0.69
- Operating System: Ubuntu 22.04.1
- Terminal: iTerm2
- Shell: zsh
Bug Description
In my shell, the environment variables PATH and PYTHONPATH have the following values:
PATH:/home/coder/.local/share/tmp/some-bazel-env/bin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/coder/.local/binPYTHONPATH:/home/coder/.local/share/tmp/some-other-bazel-env/bin
I also added these to the current working directory's .claude/settings.json:
{
"env": {
"PATH": "/home/coder/.local/share/tmp/some-bazel-env/bin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/coder/.local/bin",
"PYTHONPATH": "/home/coder/.local/share/tmp/some-other-bazel-env/bin"
}
}
When I open claude, it shows different env vars from the ones above.
Steps to Reproduce
- Set env vars in the shell via
export PATH=/home/coder/.local/share/tmp/some-bazel-env/bin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/coder/.local/binandexport PYTHONPATH=/home/coder/.local/share/tmp/some-other-bazel-env/bin. - Open
claude ! echo $PATHand! echo $PYTHONPATH
Expected Behavior
I should see ! echo $PATH return /home/coder/.local/share/tmp/some-bazel-env/bin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/coder/.local/bin exactly and ! echo $PYTHONPATH return /home/coder/.local/share/tmp/some-other-bazel-env/bin exactly.
Actual Behavior
I see other paths being prepended to PATH and PYTHONPATH, affecting the ordering of executables.
For example, ! echo $PATH shows /some-other-path-1:/some-other-path-2:/home/coder/.local/share/tmp/some-bazel-env/bin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/coder/.local/bin
Additional Context
N/A
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗