Skip to content

[BUG] Working directory does not persist between Bash commands on Windows (Git Bash/Powershell) #16361

@jaodsilv

Description

@jaodsilv

Preflight Checklist

  • I have searched existing issues and this hasn't been reported yet
  • This is a single bug report (please file separate reports for different bugs)
  • I am using the latest version of Claude Code

What's Wrong?

When using Claude Code on Windows with either Git Bash or PowerShell, the working directory does not persist between separate Bash tool invocations, even when CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=0 is set.

Also tested with the opposite CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1 with no change in behavior.

Tested both using ! {command} and asking Claude to run the command with Bash tool with no success either

What Should Happen?

According to the documentation, when CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=0 (or unset), the working directory should persist between Bash commands.

Error Messages/Logs

No error messages

Steps to Reproduce

  1. set enviroment variable to 0 or unset it:
    1. $env:CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR = 0 in PowerShell
    2. export CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=0 in Git Bash2. echo the variable to the value is set
  2. Open Claude Code
  3. Run using Bash mode:
    1. Run ! echo $CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR, to see the variable is loaded correctly
    2. Run ! cd some-directory && pwd → outputs "some-directory" path, in my case D:/src/some-directory ✓
    3. Run ! pwd → outputsthe original working directory, in my case /d/src ✗ (should be /d/src/some-directory)
  4. Alternatively run asking Claude to use the Bash tool
    1. Ask CC "Print the environment variable CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR using you Bash tool" to see the variable value is in effect
    2. Ask CC "Run cd some-directory && pwd using you Bash tool" → outputs "some-directory" path, in my case D:/src/some-directory ✓
    3. Ask CC "Run pwd using you Bash tool" → outputsthe original working directory, in my case /d/src ✗ (should be /d/src/some-directory)

Claude Model

Multiple models

Is this a regression?

I don't know, it always behaved like this for me.

Last Working Version

No response

Claude Code Version

2.0.76 (Claude Code)

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

PowerShell, Git Bash

Additional Information

I don't know if there was a regression, but it always behaved like this for me.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:toolsautocloseIssue will be closed automaticallybugSomething isn't workinghas reproHas detailed reproduction stepsplatform:windowsIssue specifically occurs on Windows

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions