Skip to content

[FEATURE] allow configuring a static Workdir (CWD) directory #100

@fatih

Description

@fatih

Feature Description

Provide a way to set a static cwd for :ClaudeCode command

Use Case

I use claudecode.nvim with the new noop terminal provider, see: #90 (comment).

I run claude with claude --ide, but I also have this setting in my config:

vim.opt.autochdir = true     -- Change CWD when I open a file

So when I run :ClaudeCode from any file, the CWD is different. Claude complains with:

Image

Proposed Solution

have a configuration, where you can enable the CWD deducted automatically from an existing Git repository

  {
    "coder/claudecode.nvim",
    dependencies = { "folke/snacks.nvim" },
    opts = {
      -- set CWD always to the git root directory
      git_repo_cwd = true
    },
  }

Alternatives Considered

For now I created a override for my ClaudeCode command:

vim.api.nvim_create_user_command("ClaudeCode", function(opts)
  -- Change to git root directory
  local git_root = vim.fn.system("git rev-parse --show-toplevel 2>/dev/null"):gsub("\n", "")
  if vim.v.shell_error == 0 and git_root ~= "" then
    vim.cmd("cd " .. git_root)
  end

  -- Call the original ClaudeCode command
  require("claudecode.terminal").simple_toggle({}, opts.args)
end, {
  nargs = "*",
  desc = "Toggle Claude Code terminal from git root"
})

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