Vibing-Nvim 是 AI Skill Hub 本期精选MCP工具之一。综合评分 7.5 分,整体质量较高。我们推荐使用将其纳入你的 AI 工具库,帮助提升工作效率。
Vibing-Nvim 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
Vibing-Nvim 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
# 方式一:通过 Claude Code CLI 一键安装
claude skill install https://github.com/shabaraba/vibing.nvim
# 方式二:手动配置 claude_desktop_config.json
{
"mcpServers": {
"vibing-nvim": {
"command": "npx",
"args": ["-y", "vibing.nvim"]
}
}
}
# 配置文件位置
# macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
# Windows: %APPDATA%/Claude/claude_desktop_config.json
# 安装后在 Claude 对话中直接使用 # 示例: 用户: 请帮我用 Vibing-Nvim 执行以下任务... Claude: [自动调用 Vibing-Nvim MCP 工具处理请求] # 查看可用工具列表 # 在 Claude 中输入:"列出所有可用的 MCP 工具"
// claude_desktop_config.json 配置示例
{
"mcpServers": {
"vibing-nvim": {
"command": "npx",
"args": ["-y", "vibing.nvim"],
"env": {
// "API_KEY": "your-api-key-here"
}
}
}
}
// 保存后重启 Claude Desktop 生效
<img src=".github/assets/logo.png" alt="vibing.nvim logo" width="200"/>
gd keybindinggit diff and mote (fine-grained snapshot tool)claude) — Install via npm install -g @anthropic-ai/claude-codecodex) — Install via npm install -g @openai/codexNode.js is required for the MCP server, which provides AI with direct access to your running Neovim instance (buffer reads/writes, LSP queries, command execution). The AI CLI binaries themselves (claude, codex) are separate installs.
require("vibing").setup()
If you don't provide any configuration, the following default permissions will be applied:
permissions = {
mode = "acceptEdits", -- Auto-accept file edits, ask for other tools
allow = {
"Read", -- Read files
"Edit", -- Edit files
"Write", -- Write new files
"Glob", -- Search files by pattern
"Grep", -- Search file contents
"Skill", -- Use skills (slash commands and workflows)
},
deny = {
"Bash", -- Block shell commands (security)
},
}
These defaults are used as a template when creating new chat files. Each chat file's frontmatter contains its own permissions, which are used at runtime.
vibing.nvim focuses on deep Claude integration. You might still use other tools for:
require("vibing").setup({
chat = {
window = {
position = "float",
width = 0.6,
border = "single",
},
save_location_type = "user", -- Global chat history
},
agent = {
default_mode = "plan", -- Start in planning mode
default_model = "opus", -- Use most capable model
},
permissions = {
allow = { "Read", "Edit", "Write", "Glob", "Grep", "Skill", "WebSearch" },
deny = {}, -- Allow all tools
},
preview = {
enabled = true, -- Enable diff preview UI
},
keymaps = {
send = "<C-CR>", -- Custom send key
cancel = "<C-c>",
add_context = "<C-a>",
},
})
-- Store chats in project directory
require("vibing").setup({
chat = {
save_location_type = "project", -- .vibing/chat/ in project root
},
})
require("vibing").setup({
-- Simple: All responses in Japanese
language = "ja",
-- Advanced: Different languages for chat and inline
-- language = {
-- default = "ja",
-- chat = "ja", -- Chat in Japanese
-- inline = "en", -- Inline actions in English
-- },
})
require("vibing").setup({
daily_summary = {
save_dir = ".vibing/daily-reports/", -- Custom save directory (relative path)
-- If not set, defaults to <chat_save_dir>/daily/
},
})
-- Or use home directory with vim.fn.expand()
require("vibing").setup({
daily_summary = {
save_dir = vim.fn.expand("~/Documents/vibing-daily/"), -- Expand ~ to home directory
},
})
-- Specify search directories for VibingDailySummaryAll
require("vibing").setup({
daily_summary = {
search_dirs = {
"~/workspaces", -- Recursively searches ALL .vibing files under this directory
},
-- When search_dirs is set, VibingDailySummaryAll searches ONLY these directories
-- Each directory is recursively searched for .vibing files
-- e.g., ~/workspaces/project-a/.vibing/chat/*.vibing will be found
-- ~ is automatically expanded to home directory
-- ⚠️ Warning: Large directories (e.g., ~/) may impact performance.
-- Use specific project directories for better performance.
},
})
Customize visual markers for tool execution with optional pattern matching:
require("vibing").setup({
ui = {
tool_markers = {
Task = "▶", -- Task tool start marker
TaskComplete = "✓", -- Task tool complete marker
default = "⏺", -- Default marker for other tools
-- Simple string markers
Read = "📄",
Edit = "✏️",
Write = "📝",
-- Pattern matching for command-specific markers
Bash = {
default = "💻", -- Default Bash marker
patterns = {
-- Package manager operations (supports npm/pnpm/yarn/bun)
["^(npm|pnpm|yarn|bun) install"] = "📦⬇",
["^(npm|pnpm|yarn|bun) run"] = "📦▶",
-- Git operations
["^git (commit|push|pull)"] = "🌿📝",
["^git checkout"] = "🌿🔀",
-- Docker operations
["^docker (build|compose)"] = "🐳🔨",
["^docker run"] = "🐳▶",
-- Build tools
["^(cargo|go) build"] = "🔨",
["^(cargo|go) test"] = "🧪",
}
},
},
},
})
Pattern Matching Features:
Complete reference of all configuration options:
Select the AI CLI backend:
adapter = "claude", -- Global backend adapter
-- "claude": Use Claude CLI (claude -p --stream-json)
-- "codex": Use Codex CLI (codex exec --json)
-- Can be overridden per-chat via "agent" frontmatter field
Controls AI agent behavior:
agent = {
default_mode = "code", -- Default execution mode
-- "code": Direct implementation
-- "plan": Plan first, then implement
-- "explore": Explore and analyze codebase
default_model = "sonnet", -- Default model
-- "sonnet": Balanced (recommended)
-- "opus": Most capable
-- "haiku": Fastest
prioritize_vibing_lsp = true, -- Prioritize vibing-nvim LSP tools
-- true: Use vibing-nvim LSP (connects to running Neovim)
-- false: Allow generic LSP tools (e.g., Serena)
-- Default: true
}
Chat window and session configuration:
chat = {
window = {
position = "current", -- Window position
-- "current": Open in current window
-- "right": Right vertical split
-- "left": Left vertical split
-- "top": Top horizontal split
-- "bottom": Bottom horizontal split
-- "back": Background buffer only (no window)
-- "float": Floating window
width = 0.4, -- Window width (0-1: ratio, >1: absolute columns)
height = 0.4, -- Window height (0-1: ratio, >1: absolute rows, for top/bottom)
border = "rounded", -- Border style: "rounded" | "single" | "double" | "none"
},
auto_context = true, -- Automatically add open buffers to context
save_location_type = "project", -- Chat file save location
-- "project": .vibing/chat/ in project root
-- "user": ~/.local/share/nvim/vibing/chats/
-- "custom": Use save_dir path
save_dir = "~/.local/share/nvim/vibing/chats", -- Used when save_location_type="custom"
context_position = "append", -- Where to add new context files
-- "append": Add to end of context list
-- "prepend": Add to beginning
}
Configure diff preview UI for inline actions and chat:
preview = {
enabled = false, -- Enable Telescope-style diff preview UI
-- Requires Git repository
-- Shows Accept/Reject UI after code modifications
-- Uses git diff and git checkout for revert
-- Works in both inline actions and chat (gp key)
}
Configure UI appearance and behavior:
ui = {
wrap = "on", -- Line wrapping behavior
-- "nvim": Respect Neovim defaults (don't modify wrap settings)
-- "on": Enable wrap + linebreak (recommended for chat readability)
-- "off": Disable line wrapping
tool_result_display = "compact", -- Tool execution result display mode
-- "none": Don't show tool results
-- "compact": Show first 100 characters only (default)
-- "full": Show complete tool output
gradient = {
enabled = true, -- Enable gradient animation during AI response
colors = {
"#cc3300", -- Start color (orange, matching vibing.nvim logo)
"#fffe00", -- End color (yellow, matching vibing.nvim logo)
},
interval = 100, -- Animation update interval in milliseconds
},
tool_markers = {
Task = "▶", -- Task tool start marker
TaskComplete = "✓", -- Task tool complete marker
default = "⏺", -- Default marker for other tools
-- Simple string markers (optional)
-- Read = "📄",
-- Edit = "✏️",
-- Write = "📝",
-- Pattern matching for command-specific markers (optional)
-- Supports full JavaScript regex syntax with grouping and alternation
-- Bash = {
-- default = "💻",
-- patterns = {
-- ["^(npm|pnpm|yarn|bun) install"] = "📦⬇",
-- ["^(npm|pnpm|yarn|bun) run"] = "📦▶",
-- ["^git (commit|push|pull)"] = "🌿📝",
-- ["^docker (build|compose)"] = "🐳🔨",
-- }
-- },
},
}
Unlike traditional chat-based AI plugins that send static context to an LLM, vibing.nvim gives AI direct access to your Neovim instance through CLI backends and MCP integration.
This means the AI can:
- **Autonomously explore your codebase** - Navigate files, search symbols, and understand
project structure without manual context setup
- **Access real-time editor state** - Query LSP diagnostics, symbol definitions, and references
on demand
- **Execute Neovim commands** - Perform editor operations as part of its workflow
- **Maintain conversation continuity** - Resume sessions with full context preserved in
`.vibing` files
Yes. vibing.nvim doesn't conflict with completion plugins (Copilot, Codeium) or other chat plugins. Use vibing.nvim for deep Claude interactions and other tools for quick completions or different providers.
vibing.nvim provides similar capabilities to Claude Code CLI but integrated into Neovim:
claude CLI underneathThink of it as "Claude Code (or Codex) for Neovim users."
vibing.nvim 是一款专为 Neovim 设计的高级 AI 交互插件。它通过创新的架构,将 Neovim 进程与 Node.js 编写的 MCP Server 连接起来,使 Claude 等 AI 能够通过 RPC 协议直接感知当前的 Buffer 状态、LSP 查询结果及命令执行情况。插件通过特殊的 .vibing 文件管理会话元数据与权限设置,为开发者提供了一个深度集成、具备自主能力的 AI 编程环境。
vibing.nvim 提供沉浸式的交互体验:内置与 Claude AI 无缝衔接的 Chat 窗口,支持在当前 Buffer 中直接进行对话;具备强大的 Inline Actions 功能,可快速实现代码修复、解释、重构及测试生成;支持自然语言指令与 Slash Commands,方便用户进行上下文管理、权限控制及设置调整;通过智能上下文感知,让 AI 能够精准理解开发意图。
在使用 vibing.nvim 之前,请确保您的开发环境满足以下要求:Neovim 版本需为 0.9+;系统需安装 Node.js 18+ 以运行 MCP Server;此外,您必须安装至少一个 AI CLI 后端,例如通过 npm 安装的 Claude CLI (`claude`) 或 Codex CLI (`codex`)。请注意,Node.js 是实现 AI 直接访问 Neovim 实例(如读写 Buffer、执行 LSP 查询)的核心组件。
安装 vibing.nvim 非常简单。首先,请确保已完成上述环境依赖的安装,随后在您的 Neovim 配置中通过 `require("vibing").setup()` 进行基础初始化。插件默认采用安全的权限策略,例如在 `acceptEdits` 模式下会自动接受文件修改,而对于其他敏感操作则会请求用户授权。您可以根据需要进一步自定义权限范围。
vibing.nvim 旨在与现有的 AI 工具形成互补。您可以将其作为深度交互的��心,处理复杂的逻辑规划与代码重构;同时配合 GitHub Copilot 或 Codeium 进行快速的代码补全,或使用基于 Ollama 的插件处理本地/离线模型任务。通过灵活的配置,您可以实现从简单的对话到复杂的自主代码探索的完整工作流。
插件提供了高度灵活的配置选项。您可以通过 `setup` 函数自定义 Chat 窗口的样式(如位置、宽度、边框)、会话历史的保存路径(支持全局或项目级 `.vibing/chat/` 存储)以及 Agent 的默认模式与模型。此外,您还可以精细化配置权限控制列表(如 Read, Edit, Write, Skill 等),甚至通过 `language` 参数实现对话与 Inline 动作使用不同语言的差异化配置。
vibing.nvim 采用了独特的 CLI Adapter 架构,区别于传统的仅发送静态上下文的 AI 插件。通过集成 MCP (Model Context Protocol),它赋予了 AI 直接访问 Neovim 实例的能力。这意味着 AI 不再只是一个聊天框,而是一个能够自主探索代码库、导航文件、搜索符号并理解项目结构的智能 Agent,能够通过 CLI 后端实现真正的自动化操作。
在实际工作流中,vibing.nvim 充当了开发者与 AI 之间的桥梁。通过 MCP Server 提供的能力,AI 可以自主执行 Buffer 操作、LSP 查询及命令执行。用户可以通过自然语言下达指令,AI 则在受控的权限范围内,利用 Neovim 的上下文信息进行思考、规��并最终执行代码变更,实现从需求到实现的高效闭环。
针对常见问题,vibing.nvim 明确了其与其他 AI 插件的兼容性。它不会与 Copilot、Codeium 等补全插件或其他的 Chat ���件产生冲突。您可以将 vibing.nvim 定位为深度集成 Claude 的“智能助手”,用于处理复杂的编程任务,而将其他工具用于轻量级的补全或特定供应商的工作流。
高质量AI辅助编码工具
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
✅ MIT 协议 — 最宽松的开源协议之一,可自由商用、修改、分发,仅需保留版权声明。
经综合评估,Vibing-Nvim 在MCP工具赛道中表现稳健,质量良好。如果你已有明确的使用需求,可以直接上手体验;如果还在评估阶段,建议对比同类工具后再做决策。
| 原始名称 | vibing-nvim |
| 原始描述 | 开源MCP工具:Neovim plugin for AI-assisted coding: Claude CLI & Codex CLI backends with MCP-p。⭐13 · Lua |
| Topics | ai-assistantluaneovim |
| GitHub | https://github.com/shabaraba/vibing.nvim |
| License | MIT |
| 语言 | Lua |
收录时间:2026-06-26 · 更新时间:2026-07-04 · License:MIT · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端