Skip to content

Installation

  • Emacs 29.1 or later. ecc needs no other package; transient is part of Emacs.
  • The Claude Code CLI, on your PATH or set in ecc-executable.

These 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
mermaid-cli ```mermaid blocks in replies drawn as diagrams

ecc is not on MELPA; install it from the Git repository. The repository is emacs-claude-code and the package is ecc, so a package manager that takes the name from the URL needs to be told.

(use-package ecc
:ensure t
:vc (:url "https://github.com/wakamenod/emacs-claude-code" :rev :newest))

:rev "<commit-sha>" pins a commit.

M-x package-vc-install RET https://github.com/wakamenod/emacs-claude-code RET

Then configure it with use-package without :vc.

(use-package ecc
:straight (ecc :type git :host github :repo "wakamenod/emacs-claude-code"))

M-x ecc-start is autoloaded, so ecc works without configuration. Bind the global keymap to a prefix:

(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 answers requests, jumps to waiting sessions and opens the sidebar from any buffer. The site writes its keys with C-c c; see Key bindings.

For a fuller example, see the author’s configuration in the README.

The built-in MCP server, on the loopback interface, lets Claude read xref references, imenu symbols and diagnostics from Emacs, work in the review, and hand work to a session in a worktree. It is off by default, and evaluating Elisp is a separate 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)

Open a file of a project, run M-x ecc-start, type a message in the prompt region at the bottom and press C-c C-c. A first session goes on from there.

If the CLI does not start, M-x ecc-show-log (C-c ? then L) shows the command ecc ran and what the CLI wrote back.

Every setting is in M-x customize-group RET ecc and on the configuration page.