Show HN: Cody – Voice control for Neovim using its own commands, LSP Developer Juan Garza released Cody, an open-source Neovim plugin that enables voice control of the editor using its native commands, LSP, and plugin integrations. The tool routes spoken commands through a Node.js bridge to OpenAI's Realtime API, allowing hands-free editing without leaving the terminal. Cody is available on GitHub under the MIT license. Neovim-first voice control for developers who want hands-free, low-latency command of their editor without leaving it. Cody deliberately stays inside the editor: no screen overlay, no mouse pointer, no general desktop assistant. It lives inside Neovim and turns short voice or text commands into editor actions. Examples: :CodyDo go to line 48 :CodyDo go to file src/server.ts :CodyDo edit this line to return early when request.user is missing Cody should not rebuild editor primitives. It should route voice intent into the editor command surface developers already use, and install missing command providers only when that is explicitly supported by the user's setup. Neovim Lua plugin Node Realtime bridge OpenAI Realtime ---------------- -------------------- --------------- :CodyDo / voice cmds - JSONL over stdio - WebSocket session editor command adapter <- function-call router <- gpt-realtime-2 buffer/cursor context - prompt + tool schemas - text/audio input Rather than capturing the screen and pointing at UI elements, Cody sends editor state: - current file, filetype, cursor line/column - current line and nearby buffer lines - available editor commands from native Neovim, LSP, and installed plugins The important layer is not "go to line" itself. Neovim already has that. The useful layer is: - detect what the editor can already do - expose those capabilities to GPT Realtime as callable tools - install a missing provider when the user's plugin manager supports it - route the spoken command to the best existing command Initial command providers: - Native Neovim: line jumps, file edits, buffers, windows, quickfix - LSP: rename, code actions, references, definitions - Pickers: Telescope, fzf-lua, Snacks picker, mini.pick - AI/code edit plugins: CodeCompanion, Avante, Copilot Chat, or a Cody-owned Realtime edit fallback This means there is no separate Phase 1 for proving basic editor commands. We start at the adapter. Requirements: - Neovim 0.10+ - Node.js 20+ OPENAI API KEY for intelligent commands sox for voice input: brew install sox Install dependencies and build the local bridge: npm install npm run build Install with your plugin manager. The Node bridge must be built, so use a build hook. With lazy.nvim : { "juancgarza/cody", build = "npm install && npm run build", -- compiles the Node bridge dist/ opts = { -- enable shell = true, -- on by default once setup runs -- enable commands = true, -- on by default once setup runs -- tts enabled = true, tts voice id = "