Skip to content

jakethekoenig/ChatVim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chat Vim

This is a plugin to talk to LLMs in neovim. To talk to an LLM in normal mode type <leader>g. The plugin will take lines starting with LLM: or following those lines as from LLM and lines starting with > as from you. If you want to start a new chat in the same file start a line with >>.

Installation

git clone https://github.com/jakethekoenig/ChatVim.git ~/.vim/pack/misc/start/
cd ~/.vim/pack/misc/start/ChatVim
pip install -r requirements.txt # Only litellm and pynvim
# Defaults to sonnet-3.5. Only need to set the API key for the model you want to use.
export ANTHROPIC_API_KEY=<YOUR API KEY>
export OPENAI_API_KEY=<YOUR API KEY>

I recommend installing the requirements in a virtual environment. See here for how to have a neovim specific virtual environment.

Usage

The plugin infers a chat structure from the beginning of the file to the current line. The plugin infers who is talking from the following sequences at the start of the line.

Sequence Effect
>> Starts a new chat. Previous lines ignored. Speaker is user.
> Speaker is user.
LLM: Speaker is llm_model.

You can get a completion from the model with <leader>g or :call LLMResponse(). The LLM's output is streamed in the next line. You can interrupt the model at any time. Just start typing.

The model defaults to claude-3-5-sonnet-20240620 but this can be configured by setting llm_model in your vimrc. The Plugin uses litellm. See their documentation for supported models.

About

Talk to GPT in Vim!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published