You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This package lets you automatically apply AI-generated changes as you code. Call M-x elysium-query
and request a set of changes. They will automatically be merged into your code buffer.
demo.mp4
You can make queries on a region without leaving the the code buffer
(use-package elysium
:custom;; Below are the default values
(elysium-window-size 0.33) ; The elysium buffer will be 1/3 your screen
(elysium-window-style 'vertical)) ; Can be customized to horizontal
(use-package gptel
:custom
(gptel-model 'claude-3-5-sonnet-20240620)
:config
(defunread-file-contents (file-path)
"Read the contents of FILE-PATH and return it as a string."
(with-temp-buffer
(insert-file-contents file-path)
(buffer-string)))
(defungptel-api-key ()
(read-file-contents "~/secrets/claude_key"))
(setq
gptel-backend (gptel-make-anthropic "Claude":streamt:key#'gptel-api-key)))
add the contents of a region to the elysium buffer
smerge-next
go to the next conflicting hunk
smerge-previous
go to the next conflicting hunk
smerge-keep-other
keep this set of changes
smerge-keep-mine
discard this set of changes
elysium-toggle-window
toggle the chat window
Notes
elysium uses gptel as a backend. It supports any of the models supported by gptel, but currently (9/24)
Claude 3-5 Sonnet seems to be the best for generating code.
If there is a region active, then elysium will send only that region to the LLM. Otherwise, the entire code buffer will be sent. If you're using Claude, then I recommend only ever sending a region to avoid getting rate-limited.
Planned Features
Implementing Prompt Caching with Anthropic to let us send more queries before getting rate-limited
About
Automatically apply AI-generated code changes in Emacs