Skip to content

[BUG] File paths sent to Claude Code do not respect running Claude from a different CWD #151

@dimfeld

Description

@dimfeld

Bug Description

When using a cwd_provider, buffer paths sent to Claude Code are relative to Neovim's CWD instead of the directory that Claude is running in.

To Reproduce

Steps to reproduce the behavior:

Use a plugin configuration similar to

require("claudecode").setup({
  terminal = {
    cwd_provider = function(ctx)
      -- Prefer repo root; fallback to file's directory
      local cwd = require("claudecode.cwd").git_root(ctx.file_dir or ctx.cwd) or ctx.file_dir or ctx.cwd
      return cwd
    end,
  },
})

Using this repository

  1. cd plugin
  2. nvim claudecode.lua
  3. Run ClaudeCodeOpen
  4. Run ClaudeCodeAdd % or make a visual selection and run ClaudeCodeSend

Note that the path sent is claudecode.lua but since Claude Code is running from the git root, it should be plugin/claudecode.lua for Claude to properly resolve it.

Oddly, sometimes, the first time I send the path it works properly but then after that the bug occurs. Not sure why but it might be linked to whether the path is calculated before or after Claude is finished opening?

Expected Behavior

The buffer path sent to Claude is relative to Claude's CWD from the cwd_provider instead of relative to Neovim's CWD.

Environment

  • Neovim version: 0.11.4
  • Claude Code CLI version: 2.0.26
  • OS: MacOS 26.0
  • Plugin version: latest git

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions