import { tool } from "@opencode-ai/plugin" export default tool({ description: "Read the current live Neovim buffer. Use this instead of read when you need the current unsaved contents of the user's active buffer.", args: {}, async execute() { const nvim = process.env.NVIM if (!nvim) { throw new Error("$NVIM is not set; live_read must be run from a Neovim-spawned OpenCode process") } const expr = `join(getline(1, "$"), "\n")` console.error(`[hobs.nvim] live_read tool called =${expr} =${nvim}`) // const result = await Bun.$`echo "hello, there"`.text() const result = await Bun.$`nvim --headless --server ${nvim} --remote-expr ${expr}`.text() console.error(`live tool returned ${result}`) console.error(`done`) return result }, })