Skip to content

feature: Native IDE Integration via ACP/MCP Protocol #224

@JanSmrcka

Description

@JanSmrcka

Did you check the docs?

  • I have read all the sidekick.nvim docs

Is your feature request related to a problem? Please describe.

When using sidekick.nvim to launch AI coding CLI tools (Claude Code,
Gemini CLI, Codex, etc.), they don't detect Neovim as an IDE. The
/ide command in Claude Code shows no connected IDE, even when running
inside a Neovim terminal buffer.

This means features like automatic file context sharing, selection
tracking, and native diff viewing don't work - users only get basic
terminal interaction.

Modern AI CLI tools use protocols (MCP/ACP) to communicate with IDEs:

  • MCP (Model Context Protocol) - Used by Claude Code, Gemini CLI
  • ACP (Agent Client Protocol) - Supported by Claude Code, Codex CLI,
    Gemini, goose

Both work by having the editor run a local WebSocket/HTTP server and
writing a discovery file that CLI tools find on startup.

Describe the solution you'd like

Native IDE integration in sidekick.nvim via MCP and/or ACP protocol
support.

When enabled, sidekick would:

  1. Start a WebSocket/HTTP server on a random port using vim.loop
  2. Write a lock file (e.g., ~/.claude/ide/[port].lock) with connection
    metadata
  3. AI CLI tools automatically discover and connect to Neovim
  4. Expose editor context (open files, selections, diagnostics) via
    JSON-RPC 2.0

Configuration example:

opts = {
  cli = {
    ide_integration = {
      enabled = true,
      protocol = "mcp", -- or "acp" or "both"
    },
  },
}

This would make sidekick a complete solution for AI coding assistants -
UI, keybindings, AND IDE integration in one plugin.

Describe alternatives you've considered

  1. Using coder/claudecode.nvim alongside sidekick

Current workaround - install claudecode.nvim with provider = "none"
(WebSocket server only, no UI), and use sidekick for the interface:

{
   "coder/claudecode.nvim",
   opts = {
     terminal = { provider = "none" },
     auto_start = true,
   },
 },
 { "folke/sidekick.nvim", ... }

This works but requires two plugins for what should be integrated
functionality.

  1. Using only coder/claudecode.nvim

Loses sidekick's superior UI, keybindings, and multi-tool support.

  1. Manual /ide connection

Running claude --ide tries to connect but picks VS Code over Neovim if
both are available, since Neovim isn't officially detected without the
WebSocket server.


References:

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions