joshcho / ChatGPT.el

ChatGPT in Emacs
GNU General Public License v3.0
397 stars 34 forks source link
chatgpt emacs

+TITLE: ChatGPT.el

[[https://chat.openai.com/chat][ChatGPT]] in Emacs.

** Features

Install [[https://github.com/llm-workflow-engine/llm-workflow-engine][llm-workflow-engine]] (lwe):

+begin_src shell

pip install --upgrade pip pip install setuptools pip install git+https://github.com/llm-workflow-engine/llm-workflow-engine

+end_src

If you encounter any problems, please submit an issue or refer to [[https://github.com/llm-workflow-engine/llm-workflow-engine][llm-workflow-engine]] (formerly chatgpt-wrapper).

*** [[https://github.com/radian-software/straight.el][Straight]]

+begin_src emacs-lisp

(use-package chatgpt :straight (:host github :repo "joshcho/ChatGPT.el" :files ("dist" "*.el")) :bind ("C-c q" . chatgpt-query))

+end_src

*** [[https://github.com/quelpa/quelpa][Quelpa]]

+begin_src emacs-lisp

(require 'quelpa-use-package) (use-package chatgpt :quelpa ((chatgpt :fetcher git :url "https://github.com/joshcho/ChatGPT.el.git") :upgrade t) :bind ("C-c q" . chatgpt-query))

+end_src

*** [[https://www.spacemacs.org/][Spacemacs]]

Assuming Quelpa installation:

In ~dotspacemacs/user-config~ function,

+begin_src emacs-lisp

(global-set-key (kbd "C-c q") #'chatgpt-query)

+end_src

In ~dotspacemacs/layers~ function for ~setq-default~,

+begin_src emacs-lisp

dotspacemacs-additional-packages '( (chatgpt :location (recipe :fetcher github :repo "joshcho/ChatGPT.el")) ;; other additional packages... )

+end_src

*** [[https://github.com/doomemacs/doomemacs][Doom Emacs]]

In ~packages.el~ ,

+begin_src emacs-lisp

(package! chatgpt :recipe (:host github :repo "joshcho/ChatGPT.el" :files ("dist" "*.el")))

+end_src

In ~config.el~ ,

+begin_src emacs-lisp

(use-package! chatgpt :defer t :bind ("C-c q" . chatgpt-query))

+end_src

** Usage Press ~C-c q~ to query ChatGPT. Select a code block before ~C-c q~ to query the code.

Customization ** Chat Configure default model, system message, browser backend, etc. with [[https://llm-workflow-engine.readthedocs.io/en/latest/configuration.html][llm-workflow-engine]]. Code Query Shortcuts Customize ~chatgpt-code-query-map~ for your own prompt shortcuts. Note that "custom" is a reserved prompt shortcut.

+begin_src emacs-lisp

(setq chatgpt-code-query-map '( ;; ChatGPT.el defaults, string for each shortcut ("bug" . "There is a bug in the following, please help me fix it.") ("doc" . "Please write the documentation for the following.") ("improve" . "Please improve the following.") ("understand" . "What is the following?") ("refactor" . "Please refactor the following.") ("suggest" . "Please make suggestions for the following.") ;; your shortcut ("prompt-name" . "My custom prompt.")))

+end_src

If you previously had customizations, note that we use strings now, not format strings.

** Limitations

** Related Projects