-
Notifications
You must be signed in to change notification settings - Fork 1
21 Editor Integrations
nitpik runs as a long-lived server so editors and AI agents can use the same
review engine as the CLI. Two transports are exposed under nitpik serve:
-
nitpik serve lsp— a Language Server that publishes findings as diagnostics in any LSP client (VS Code, Neovim, Helix, JetBrains, …). -
nitpik serve mcp— a Model Context Protocol server exposing nitpik as tools for agents (GitHub Copilot, Claude Code, Cursor, …).
Editor and agent reviews require an active subscription. Reviews run in agentic mode and use whatever provider the process is configured with.
Install the nitpik extension from the Marketplace. It:
- runs
nitpik serve lspand shows findings in the Problems panel; - by default runs reviews on your Copilot model via a local bridge
(
nitpik.modelSource: "copilot") — no extra API key — or uses your.nitpik.tomlprovider withnitpik.modelSource: "byom"; - auto-registers
nitpik serve mcpso Copilot's agent can call nitpik too.
Commands: Review Changes, Review Current File, Review Workspace, Re-review from Scratch (ignores cache + prior findings). See the extension README.
nitpik ships a Claude Code plugin (editors/claude-code) that registers the
MCP server. Without the plugin:
claude mcp add nitpik -- nitpik serve mcpClaude Code does not expose its model to MCP servers, so reviews use your
configured provider (BYOM) — set an API key and .nitpik.toml. The same MCP
server works for Cursor, Codex, Gemini CLI, and other agents.
Tools: nitpik_review_diff, nitpik_review_files, nitpik_list_profiles.
Point your editor's LSP client at nitpik serve lsp (stdio). Reviews are
triggered explicitly via the server commands (nitpik.reviewChanges,
nitpik.reviewFile, nitpik.reviewWorkspace, nitpik.reviewFresh) or the
"Review this file" code action — never on every save (each review is an LLM
call). These editors use your .nitpik.toml provider (BYOM).
vim.lsp.start({
name = "nitpik",
cmd = { "nitpik", "serve", "lsp", "--path", vim.fn.getcwd() },
root_dir = vim.fs.dirname(vim.fs.find({ ".git" }, { upward = true })[1]),
})
-- Trigger a review of the changes on the current branch:
vim.keymap.set("n", "<leader>nr", function()
vim.lsp.buf.execute_command({ command = "nitpik.reviewChanges", arguments = { "HEAD" } })
end)Getting Started
Using nitpik
- Diff Inputs
- Reviewer Profiles
- Custom Profiles
- Agentic Mode
- Output Formats
- Editor & Agent Integrations
How It Works
Security & Privacy
Deployment
Reference