summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Scherer <roman@burningswell.com>2025-10-17 16:20:12 +0200
committerjgart <jgart@dismail.de>2025-11-08 08:55:32 -0600
commitf4c22e4d6e11fe462185c1bcd86d4c51b6cedc33 (patch)
tree8cadf0f24016254bf8c20a00910eee0e212d98d4
parent8b092ce0ae8cbcff70d8ee0c30f8defdf9dd35cd (diff)
gnu: Add emacs-claude-code-ide.
* gnu/packages/emacs-xyz.scm (emacs-claude-code-ide): New variable. Change-Id: If52f00acdb621667603f0d821a762e8ea478b557 Signed-off-by: jgart <jgart@dismail.de>
-rw-r--r--gnu/packages/emacs-xyz.scm55
1 files changed, 55 insertions, 0 deletions
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index ee4902f6778..430fba67615 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -16331,6 +16331,61 @@ circumstances, and leaves the keys untouched outside of those situations,
allowing unprefixed keys to insert their respective characters as expected.")
(license license:gpl3+))))
+(define-public emacs-claude-code-ide
+ ;; XXX: Upstream does not tag version bumps. Commit below matches latest
+ ;; version bump.
+ (let ((commit "c5e2de1a343bc6c0444789e0a99ad822cd56cfbe"))
+ (package
+ (name "emacs-claude-code-ide")
+ (version "0.2.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/manzaltu/claude-code-ide.el")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "17rha7rvv72r75lpa2hz65mphrjrzkfn4pz3xf9lfvivg7fc7n0d"))))
+ (build-system emacs-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'set-home
+ (lambda _
+ (setenv "HOME" (getenv "TMPDIR")))))
+ #:test-command
+ #~(list "emacs" "-batch"
+ "-L" "."
+ "-l" "ert"
+ "-l" "claude-code-ide-tests.el"
+ "--eval"
+ ;; Exclude failing test (uncaught throw)
+ (string-append
+ "(ert-run-tests-batch-and-exit "
+ "'(not claude-code-ide-mcp-server-test-ws-send-fix))"))))
+ (propagated-inputs
+ (list emacs-flycheck
+ emacs-transient
+ emacs-vterm
+ emacs-web-server
+ emacs-websocket))
+ (home-page "https://github.com/manzaltu/claude-code-ide.el")
+ (synopsis "Claude Code IDE integration for Emacs")
+ (description
+ "This package provides native integration with Claude Code
+@acronym{CLI, command-line interface} through the @acronym{MCP, Model
+Context Protocol}. It creates a bidirectional bridge between Claude and
+Emacs, enabling Claude to leverage Emacs features including @acronym{LSP,
+Language Server Protocol}, project management, tree-sitter, and custom
+Elisp functions. Features include automatic project detection and
+session management, terminal integration with @code{vterm} or @code{eat},
+diagnostic integration with Flycheck and Flymake, advanced diff viewing
+with ediff, and an extensible MCP tools server for accessing Emacs
+commands such as xref and imenu.")
+ (license license:gpl3+))))
+
(define-public emacs-clojure-mode
(package
(name "emacs-clojure-mode")