Installation
Requirements
Section titled “Requirements”- Emacs 29.1 or later.
transientis built into Emacs 29.1+, and ecc requires no other external packages. - The Claude Code CLI, available on your
PATHor configured viaecc-executable.
These are the only hard requirements. The following packages are optional:
| Package | Feature |
|---|---|
| ghostel | Terminal emulator for sessions handed over by ecc-tui-open |
| posframe | Floating popups for /btw side-queries and usage reports |
| nerd-icons | Icons for tool calls in the transcript |
| markdown-mode | Major mode for plan and review buffers |
Installation
Section titled “Installation”ecc is not currently on MELPA; install it directly from the Git repository.
Note that the repository name is emacs-claude-code while the package name is ecc. Package managers that infer the package name from the repository URL must be configured explicitly.
Emacs 30 and later
Section titled “Emacs 30 and later”(use-package ecc :ensure t :vc (:url "https://github.com/wakamenod/emacs-claude-code" :rev :newest))Use :rev "<commit-sha>" to pin a specific commit instead of tracking the latest changes.
Emacs 29
Section titled “Emacs 29”M-x package-vc-install RET https://github.com/wakamenod/emacs-claude-code RETThen configure it with a standard use-package declaration (without :vc).
straight.el
Section titled “straight.el”(use-package ecc :straight (ecc :type git :host github :repo "wakamenod/emacs-claude-code"))Initial configuration
Section titled “Initial configuration”Because M-x ecc-start is autoloaded, ecc works without any extra configuration. The most useful initial addition is binding the global keymap:
(use-package ecc :ensure t :vc (:url "https://github.com/wakamenod/emacs-claude-code" :rev :newest) :bind-keymap ("C-c c" . ecc-global-map))ecc-global-map lets you respond to permission prompts, jump to waiting sessions, and open the dashboard from any buffer — so you never have to search for a paused session. See the key binding reference for all available bindings.
Enabling the MCP server
Section titled “Enabling the MCP server”The built-in loopback MCP server allows Claude to query Emacs for editor-specific context: xref references, imenu symbols, and flymake diagnostics. It is disabled by default, and evaluating arbitrary Elisp requires an additional explicit opt-in:
(setq ecc-mcp-enabled t);; Only if you want Claude to be able to evaluate Elisp:;; (setq ecc-mcp-enable-execute-code t)Verifying the setup
Section titled “Verifying the setup”- Open any file in a project.
- Run
M-x ecc-start. - Type a message in the bottom prompt area and press
C-c C-c.
If the CLI fails to start, check the session log buffer (C-c ? then L, or M-x ecc-show-log), which records the exact command executed and the raw output received from the CLI process.
For all other options, run M-x customize-group RET ecc or consult the configuration reference. Pressing C-c ? inside any session opens the transient menu, showing all commands and their keybindings.