fenix-skills/skills/emacsclient/SKILL.md

1.4 KiB

name description tools
emacsclient 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. 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.