The Wayback Machine - https://web.archive.org/web/20221219150855/https://github.com/jackMort/ChatGPT.nvim
Skip to content

jackMort/ChatGPT.nvim

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

ChatGPT.nvim [WIP]

GitHub Workflow Status Lua

ChatGPT is a Neovim plugin that allows you to interact with OpenAI's GPT-3 language model. With ChatGPT, you can ask questions and get answers from GPT-3 in real-time.

preview image

Installation

  • Make sure you have curl installed.
  • Set environment variable called $OPENAI_API_KEY which you can obtain here.
-- Packer
use({
  "jackMort/ChatGPT.nvim",
    config = function()
      require("chatgpt").setup({
        -- optional configuration
      })
    end,
    requires = {
      "MunifTanjim/nui.nvim",
      "nvim-lua/plenary.nvim",
      "nvim-telescope/telescope.nvim"
    }
})

Configuration

ChatGPT.nvim comes with the following defaults

{
  welcome_message = WELCOME_MESSAGE, -- set to "" if you don't like the fancy robot
  loading_text = "loading",
  question_sign = "", -- you can use emoji if you want e.g. 🙂
  answer_sign = "", -- 🤖
  max_line_length = 120,
  yank_register = "+",
  chat_layout = {
    relative = "editor",
    position = "50%",
    size = {
      height = "80%",
      width = "80%",
    },
  },
  chat_window = {
    filetype = "chatgpt",
    border = {
      highlight = "FloatBorder",
      style = "rounded",
      text = {
        top = " ChatGPT ",
      },
    },
  },
  chat_input = {
    prompt = "",
    border = {
      highlight = "FloatBorder",
      style = "rounded",
      text = {
        top_align = "center",
        top = " Prompt ",
      },
    },
    win_options = {
      winhighlight = "Normal:Normal",
    },
  },
  openai_params = {
    model = "text-davinci-003",
    frequency_penalty = 0,
    presence_penalty = 0,
    max_tokens = 300,
    temperature = 0,
    top_p = 1,
    n = 1,
  },
  openai_edit_params = {
    model = "code-davinci-edit-001",
    temperature = 0,
    top_p = 1,
    n = 1,
  },
  keymaps = {
    close = "<C-c>",
    yank_last = "<C-y>",
    scroll_up = "<C-u>",
    scroll_down = "<C-d>",
  },
}

Usage

Plugin exposes"

  • ChatGPT command which opens interactive window.
  • ChatGPTActAs command which opens a prompt selection from Awesome ChatGPT Prompts to be used with the ChatGPT.
  • ChatGPTEditWithInstructions command which opens interactive window to edit selected text or whole window - demo video.

Available keybindings are:

  • <C-c> to close chat window.
  • <C-u> scroll up chat window.
  • <C-d> scroll down chat window.
  • <C-y> to copy/yank last answer.
  • <C-i> [Edit Window] use response as input.

"Buy Me A Coffee"

About

Neovim plugin for interacting with OpenAI GPT-3 chatbot, providing an easy interface for exploring GPT-3 and NLP.

Topics

Resources

Stars

Watchers

Forks

Languages