Skip to content

Commit 3568867

Browse files
committed
feat[emacs]: claude code support
1 parent 451fb79 commit 3568867

File tree

2 files changed

+53
-0
lines changed

2 files changed

+53
-0
lines changed

dots/emacs/spacemacs.d/layers/kzk-copilot/funcs.el

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,3 +288,10 @@ When called with prefix, adds the file read only.
288288
(unless existing-buffer
289289
(kill-buffer buffer))
290290
(message "Added file %s to aider context" path)))
291+
292+
293+
(defun kzk/claude-code-kill-advice (orig-fn buffer)
294+
(let ((window (get-buffer-window buffer t)))
295+
(funcall orig-fn buffer)
296+
(when window
297+
(delete-window window))))

dots/emacs/spacemacs.d/layers/kzk-copilot/packages.el

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,14 @@
66
lsp-mode
77
shell-maker
88
aider
9+
(claude-code :location (recipe
10+
:fetcher github
11+
:repo "stevemolitor/claude-code.el"
12+
:files ("*")))
13+
(monet :location (recipe
14+
:fetcher github
15+
:repo "stevemolitor/monet"
16+
:files ("*")))
917
(copilot-chat :location (recipe
1018
:fetcher github
1119
:repo "chep/copilot-chat.el"
@@ -49,6 +57,44 @@
4957
popwin:special-display-config)
5058
(pupo/update-purpose-config)))
5159

60+
(defun kzk-copilot/init-claude-code ()
61+
(use-package claude-code
62+
:defer t
63+
:vc (:url "https://github.com/stevemolitor/claude-code.el" :rev :newest)
64+
:custom
65+
(claude-code-program "ifood-ccr-helper")
66+
(claude-code-program-switches '("code"))
67+
(claude-code-terminal-backend 'vterm)
68+
(claude-code-toggle-auto-select t)
69+
(claude-code-display-window-fn #'display-buffer) ;; use default display buffer and let popwin handle it
70+
:config
71+
;; optional IDE integration with Monet
72+
(add-hook 'claude-code-process-environment-functions #'monet-start-server-function)
73+
(monet-mode 1)
74+
75+
(claude-code-mode)
76+
77+
(advice-add #'claude-code--kill-buffer :around #'kzk/claude-code-kill-advice)
78+
79+
:bind-keymap ("C-$" . claude-code-command-map)
80+
81+
;; Optionally define a repeat map so that "M" will cycle thru Claude auto-accept/plan/confirm modes after invoking claude-code-cycle-mode / C-c M.
82+
:bind
83+
(:repeat-map my-claude-code-map ("M" . claude-code-cycle-mode)))
84+
85+
(kzk/after-init
86+
;; "*claude:~/Sources/aider-helper/:default*"
87+
88+
(let ((buffer-regexp "^\\*claude:.+:.+\\*$"))
89+
(push `(,buffer-regexp :regexp t :width 78 :position left :stick t :noselect nil :dedicated nil)
90+
popwin:special-display-config))
91+
(pupo/update-purpose-config)))
92+
93+
(defun kzk-copilot/init-monet ()
94+
(use-package monet
95+
:defer t
96+
:vc (:url "https://github.com/stevemolitor/monet" :rev :newest)))
97+
5298

5399
(defun kzk-copilot/init-copilot-chat ()
54100
(use-package copilot-chat

0 commit comments

Comments
 (0)