coder / coder/claudecode.nvim

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

Open
#151 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Lua
Stars
3.1k
Forks
216
PR merge metrics
No merged PRs in 30d

Description

## 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

Contributor guide

No contributing guide indexed for this repository

Research direction

Reproduce the issue with the shown cwd_provider, then trace the ClaudeCodeOpen, ClaudeCodeAdd %, and ClaudeCodeSend entry points and the path handling around claudecode.cwd. Compare paths sent when Neovim's CWD differs from Claude's configured CWD, including the first-send case. Done means buffer and visual-selection paths resolve relative to Claude's CWD consistently.

Written by the indexing model from the issue text.

Assessment

Tech stack
lua
Domain
cli, devtools
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.