Skip to content

jer96/agent.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

agent.nvim

An LLM agent for Neovim that integrates AI assistance directly into your editing workflow. agent.nvim provides a chat interface where you can interact with an agent equipped with tools to take action in your development environment.

NOTE: this plugin is experimental and subject to frequent breaking changes.

Features

  • Support for streaming respones using either Anthropic or Bedrock API
  • Configurable context where buffers and files can be added as context to the agent.
  • Model Context Protocol (MCP) Support for tool usage
  • Conversation persistence (currently writes to a file on your local disk)

Requirements

  • Model Provider
    • If using Anthropic, set ANTHROPIC_API_KEY
    • If using Bedrock, I recommend using SSO via the AWS CLI. The default credentials on your machine will be used.
  • Dependencies
    • Python >=3.7

Installation

Using lazy.nvim

{
    {
        "jer96/agent.nvim",
        build = ":UpdateRemotePlugins",
        dependencies = {
            "famiu/bufdelete.nvim",
            "nvim-telescope/telescope.nvim",
        },
        config = function()
            require("agent").setup({
                model_provider = "anthropic",
            })
            -- keymaps
            vim.keymap.set("n", "<leader>aa", ":AgentToggle<CR>", { silent = true })
            vim.keymap.set("n", "<leader>ac", require("agent.ui.context").file_picker_with_context)
            vim.keymap.set("n", "<leader>ah", require("agent.ui.conversations").list_conversations)
            -- autocmd to delete open buffer from context 
            vim.api.nvim_create_autocmd("User", {
                pattern = "BDeletePost*",
                callback = function(event)
                    local buf_num = event.file and event.file:match("BDeletePost%s+(%d+)")
                    buf_num = tonumber(buf_num)
                    if buf_num then
                        vim.fn.AgentHandleBufDelete(buf_num)
                    end
                end,
            })
        end,
    },
}

Usage

Basic Commands

  • :AgentToggle - Toggle the chat interface on/off
  • :AgentSend - Send the current message synchronously waiting for response
  • :AgentSendStream - Send the current message and stream the response
  • :AgentClose - Close the chat interface
  • :AgentClean - Clear the current conversation and close the interface
  • :AgentStartConversation - Start a new conversation

Context Management

  • :AgentContextAddFile {file} - Add a specific file to the context
  • :AgentContextRemoveFile {file} - Remove a file from the context
  • :AgentContextClearFiles - Clear all additional files from context
  • :AgentContextClearBuffers - Clear all active buffers from context
  • :AgentContextClearAll - Clear all context (files and buffers)
  • :AgentContextToggleBuffer {bufnr} - Toggle inclusion of a specific buffer in context

Conversation History

  • :AgentListConversations - List all saved conversations
  • :AgentLoadConversation {id} - Load a specific conversation by ID

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published