Skip to content
Back to skills

Emacs

ASecurity

GNU Emacs as a stateful Lisp machine for agents — daemon, moo-* protocol, emacs.py router, emacs:// URLs, spoken grammar, play-learn-lift.

  • 56 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 6, 2026
toolsshell

Works with

  • cursor
  • terminal
  • cli

Security analysis

A100/100

Pro scans all 15 files and shows the line behind each finding

Scanned October 6, 2026

npx -y skills add SimHacker/moollm --skill emacs --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Emacs?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Emacs
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/simhacker-emacs/badge)](https://www.skillsdirectory.com/skills/simhacker-emacs)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: emacs
description: GNU Emacs as a stateful Lisp machine for agents — daemon, moo-* protocol, emacs.py router, emacs:// URLs, spoken grammar, play-learn-lift.
allowed-tools: [read, grep, glob, run_terminal_cmd]
related: [sister-script, play-learn-lift, yaml-jazz, cursor-mirror, robust-first]
license: MIT
---

# Emacs (MOO)

## What this skill is

GNU Emacs with `emacs --daemon` is a **long-lived evaluator**: buffers, modes, and elisp are the program. Agents and humans share **persistent context** (open files, marks, narrowing, undo). The **sister script** `scripts/emacs.py` adapts `emacsclient` for tools: **JSON-shaped results**, **named targets**, **batching**, **logging**, and **`emacs://`** routing.

This is **not** a thin “run one shell command” wrapper. The value is the **protocol**: what to return after each operation, how to name multiple daemons, how speech and intent map to elisp.

## Three interaction tiers

1. **Intent** — `(moo-rename-symbol "a" "b" :scope 'project)` style (to be implemented in elisp; names in CARD).
2. **Structural** — `(moo-in-defun "foo" ...)` , `(moo-try BODY)` with `atomic-change-group`.
3. **Raw elisp** — `(emacs.py eval "(+ 1 2)")` or direct `emacsclient --eval`.

## Sister script: `scripts/emacs.py`

Subcommands (see `--help`):

- `status` — daemon up, current target
- `eval SEXP` — evaluate, print JSON `{ok, value, error}` where possible
- `target list | current | use NAME` — `~/.emacs.d/moo/servers.yml`
- `speak TEXT` — placeholder: will use `spoken-grammar.yml` + optional local LLM
- `url EMACS_URL` — resolve and dispatch (staged implementation)

Environment:

- `EMACSCLIENT` — path to emacsclient (default: `emacsclient`)
- `MOO_EMACS_TARGET` — default target name

Logs: append JSON lines to `.moollm/skills/emacs/logs/command-log.jsonl` when run from a MOOLLM workspace.

## Elisp side (templates/)

Install copies under `~/.emacs.d/moo/` (see `templates/init.el`):

- `moo-protocol.el` — `moo-with-effects`, standard result plist
- `moo-structural.el` — structural helpers
- `moo-oneshot.el` — oneshot define / log / promote
- `moo-macros.el` — macro capture and schema export hooks

## Integration

- **play-learn-lift** — oneshot log + macro list + command-log.jsonl
- **cursor-mirror** — optional: correlate agent edits with Emacs log
- **yaml-jazz** — `spoken-grammar.yml` comments carry semantics

## Cursor prompt / aiService snapshot

Optional: [reference/cursor-aiService-prompts.yaml](reference/cursor-aiService-prompts.yaml) holds `aiService.prompts` and `aiService.generations` from the workspace DB (see [reference/README.md](reference/README.md)). Regenerate with `cursor-mirror export-prompts <workspace-id> -o …`.

## Part of MOOLLM

Repo [README](../../README.md), [skills/README.md](../README.md).

Files in this skill

  • CARD.yml2 KB
  • DESIGN.md3.4 KB
  • GLANCE.yml921 B
  • SKILL.md2.8 KB
  • reference/README.md726 B
  • reference/cursor-aiService-prompts.yaml57.9 KB
  • scripts/emacs.py8.4 KB
  • spoken-grammar.yml1.5 KB
  • templates/init.el307 B
  • templates/moo-macros.el388 B
  • templates/moo-oneshot.el592 B
  • templates/moo-protocol.el523 B
  • templates/moo-structural.el439 B
  • templates/moo-template.el271 B
  • templates/servers.yml.example636 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…