Eden is a one-turn coding agent for Emacs. It's built on the OpenAI Responses API and the Codex
apply_patchcommand line utility.
- Call the command
edento switch to*eden*prompt buffer. - Enter your prompt.
- Press
C-c C-cto send it to the OpenAI API. - Check the response in the
*eden[requests]*buffer.
All requests are stored in JSON format in eden-dir.
By default requests are independent. To chaine requests together and create a conversation:
- Call the command
edento switch to*eden*prompt buffer. - Navigate the prompt history with
M-pandM-n. - When you've found the request to continue a conversation on, call
the
edencommand to activate Eden transient menu. - Press
cand enter the conversation title to activate a new conversation.
All the subsequent requests will be part of the same conversation and
the responses will be appended in a *eden[<conversation's name>]*
dedicated buffer.
You can pause the current conversation by calling eden in the prompt
buffer and pressing SPC in Eden transient menu. Subsequent requests
will then be independent again.
Note that conversation titles and IDs are not stored; they only exist during your Emacs session. However, you can retrieve any conversation later either:
- By saving it in your notes with its UUID. Then, when you want to
resume it, call
edenwith theC-uprefix argument on its Org heading; This pops up another Eden menu, presscand enter a conversation title a mentioned above. - By navigating the prompt history with
M-pandM-n.
Each time you quit Eden's menu, the current profile which includes
- the request directory,
- the API,
- the model,
- the current conversation if any,
- the reasoning effort,
- the extra request params and
- the instructions.
is pushed to an history that you can navigate from the prompt buffer with:
C-M-p: to apply the previous profile.C-M-n: to apply the next profile.
The prompt buffer's mode derives from org-mode. It differs only by its
mode-line and the key bindings:
C-c C-c: to send a request to OpenAI API.M-pandM-n: to navigate prompt history.C-M-pandC-M-n: to navigate the profile history navigation.
As a result, your Org configuration still applies and you'll feel at home writing your prompts.
Ensure the following utilities are installed and present in one of
your exec-path directories:
curluuidgenpandoc
;; Classic
(add-to-list 'load-path "/path/to/eden/")
(require 'eden)
;; With straight
(straight-use-package
'(eden :type git :host github :repo "tonyaldon/eden"))Store your OpenAI API key in either the ~/.authinfo.gpg file (encrypted with gpg) or the ~/.authinfo file (plaintext):
machine openai-responses password <openai-api-key>
where <openai-api-key> is your API key.
Restart Emacs to apply this change.
If you want to use the apply-patch tool, you'll have to build and put
on your PATH the apply_patch utilily from Codex repository.
TODO