Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[FEATURE] Define Custom Tools

Open
#149 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
28/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
lua, neovim
Domain
tooling

Research direction

Start by tracing how the plugin reads its config and how its WebSocket-based Claude integration exposes tools. Define the supported custom_tools shape, including schemas and callbacks, and verify that a configured Lua function can be invoked by Claude within Neovim.

Written by the indexing model from the issue text.

Description

Feature Description

I'd like to be able to define custom MCP tools in the plugin's config.

Use Case

Users would be able to define any function that can be run by Claude within neovim. The use cases are basically infinite. Anything you can imagine as a Lua function could be run by Claude.

Proposed Solution

I Imagine the function definition to look somewhat like this:

{
  "coder/claudecode.nvim",
  dependencies = { "folke/snacks.nvim" },
  -- ...
  custom_tools = {
    {
      "tool_name",
      title = "The tool's title",
      desc = "Does something",
      input_schema = {
        -- ...
      },
      output_schema = {
        -- ...
      },
      annotations = {
        -- ...
      },
      callback = function(arg1, arg2)
        -- ...
      end
    },
  },
}

Alternatives Considered

  • Letting claude execute arbitrary vim commands. That's not very Neovimy and more risky though. And this feature could still be implemented using the proposed solution.
  • Making my own plugin. Though the power of claudecode.nvim is its WebSocket based integration, which I'd have to replicate (or I'd have to use a local http transport).
Dominant language
Lua
Stars
3.1k
Forks
219
PR merge metrics
No merged PRs in 30d

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

  • No Dockerfile or Docker Compose file
  • No pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from coder/claudecode.nvim

All issues in coder/claudecode.nvim

Similar issues

More Lua issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.