EmacsLisp

Guide Emacs Lisp development with ERT testing and MELPA/ELPA publishing workflows.

Updated Aug 23, 2026
One-click install
npx skills add https://github.com/vdemeester/home --skill emacslisp
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: EmacsLisp
Source: https://github.com/vdemeester/home/tree/main/dots/.config/claude/skills/EmacsLisp
Command: npx skills add https://github.com/vdemeester/home --skill emacslisp

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill guides Emacs Lisp development, testing with ERT, packaging, and MELPA/ELPA publishing best practices.

Core Features & Use Cases

  • Testing & Linting: ERT-based tests and package-lint checks.
  • Publishing: MELPA, GNU ELPA, and NonGNU ELPA workflows.

Quick Start

Create a minimal Emacs Lisp package and run the test suite.

Frequently Asked Questions about EmacsLisp

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I publish an Emacs Lisp package to MELPA?

Publishing to MELPA requires a package with proper headers, lexical-binding declaration, and passing package-lint checks. Use Eask to automate builds and testing, then submit your repository to MELPA's GitHub. The Skill covers the full workflow including header conventions, native compilation readiness, and MELPA submission pipelines.

What's the best way to test Emacs Lisp code?

ERT (Emacs Lisp Regression Testing) is the standard framework for testing Emacs Lisp packages. Write test cases using ERT's assertion macros, run them with your build tool, and integrate checks into your CI pipeline. This Skill provides guidance on structuring ERT-based test suites and linting with package-lint and checkdoc.

How do I set up a modern Emacs Lisp development environment?

Configure your init file with proper conventions, enable lexical-binding in your source files, and use Eask for dependency management and build automation. This Skill covers Emacs configuration best practices, native compilation readiness, and tooling setup for package development workflows.

Can I publish to both MELPA and GNU ELPA?

Yes. MELPA accepts any package meeting technical standards, while GNU ELPA and NonGNU ELPA have stricter requirements and licensing rules. This Skill documents publishing workflows for all three repositories, including how to prepare releases and meet each platform's specific header and documentation conventions.

What are the requirements for Emacs Lisp package headers?

Package headers declare metadata like version, dependencies, and description using standardized conventions. They enable proper parsing by package managers and are validated by package-lint and checkdoc. This Skill covers header structure, lexical-binding declarations, and native compilation markers required for modern package publishing.

How do I lint and validate my Emacs Lisp code?

Use package-lint to check metadata and conventions, and checkdoc to validate documentation strings. Both tools catch common mistakes before publishing. This Skill integrates these linters into development workflows via Eask, ensuring compliance with MELPA and ELPA submission standards.