summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorRostislav Svoboda <rostislav.svoboda@gmail.com>2023-03-29 14:42:17 +0200
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2023-04-08 14:04:42 +0200
commit82efb29ffba759252673f085bcf915617b2bba30 (patch)
tree961fcbedff0a94cdc9fb168b63ff050ff3968002 /gnu
parentdfd79c6acdcc7fed179deb3ccaa2e08df67341d7 (diff)
gnu: Add emacs-gptel.
* gnu/packages/emacs-xyz.scm (emacs-gptel): New variable. Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/emacs-xyz.scm39
1 files changed, 39 insertions, 0 deletions
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index ec2078f44c..04a6d8e3ed 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -418,6 +418,45 @@ favourite Scheme implementation, you also need the corresponding geiser package,
e.g. emacs-geiser-guile for Guile.")
(license license:bsd-3)))
+(define-public emacs-gptel
+ (package
+ (name "emacs-gptel")
+ (version "0.3.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/karthink/gptel")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1fg3dms7d05zpvkf8kxxh9726qvdfpmfsrgpc9fzm557ai13yhi5"))))
+ (build-system emacs-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'use-appropriate-curl
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "gptel-curl.el"
+ (("\"curl\"")
+ (string-append "\""
+ (search-input-file inputs "/bin/curl")
+ "\"")))
+ (emacs-substitute-variables "gptel.el"
+ ("gptel-use-curl" 't)))))))
+ (inputs (list curl))
+ (propagated-inputs (list emacs-map))
+ (home-page "https://github.com/karthink/gptel")
+ (synopsis "GPTel is a simple ChatGPT client for Emacs")
+ (description
+ "GPTel is a simple ChatGPT asynchronous client for Emacs with no external
+dependencies. It can interact with ChatGPT from any Emacs buffer with ChatGPT
+responses encoded in Markdown or Org markup. It supports conversations, not
+just one-off queries and multiple independent sessions. It requires an OpenAI
+API key.")
+ (license license:gpl3+)))
+
(define-public emacs-geiser-guile
(package
(name "emacs-geiser-guile")