| name | emacsclient |
| description | Always use emacsclient instead of emacs. This applies to all Emacs operations: user requests, byte compilation, check-parens, running ERT tests, and any other elisp evaluation. |
| tools | Bash |
Always use emacsclient
The user has an Emacs server running. All Emacs operations must go through emacsclient, never emacs or emacs --batch. This includes both user-requested actions and agent-initiated operations like byte compilation, syntax checking, or running tests.
Examples
- Open a file:
emacsclient --no-wait "/path/to/file"
- Evaluate elisp:
emacsclient --eval '(some-function)'
- Open at a line:
emacsclient --no-wait +42 "/path/to/file"
- Byte compile a file:
emacsclient --eval '
(byte-compile-file "/path/to/file.el")'
- Check parentheses:
emacsclient --eval '
(with-temp-buffer
(insert-file-contents "/path/to/file.el")
(check-parens))'
- Run ERT tests:
emacsclient --eval '
(progn
(load "/path/to/test-file.el" nil t)
(ert-run-tests-batch-and-exit "pattern"))'
Rules
- Always use
emacsclient, never emacs or emacs --batch.
- Use
--no-wait when opening files so the command returns immediately.
- Use
--eval when evaluating elisp.
- Always format
--eval elisp across multiple lines with proper indentation.
- Run
emacsclient commands via the Bash tool.