Emacs (MOO)
SkillAI & modelsGNU Emacs as a stateful Lisp machine for agents — daemon, moo-* protocol, emacs.py router, emacs:// URLs, spoken grammar, play-learn-lift.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Emacs (MOO) skill
What this skill tells your AI
The instructions your AI receives, as published by simhacker/moollm in skills/emacs/SKILL.md and read by ahel’s review.
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
- Intent —
(moo-rename-symbol "a" "b" :scope 'project)style (to be implemented in elisp; names in CARD). - Structural —
(moo-in-defun "foo" ...),(moo-try BODY)withatomic-change-group. - Raw elisp —
(emacs.py eval "(+ 1 2)")or directemacsclient --eval.
Sister script: scripts/emacs.py
Subcommands (see --help):
status— daemon up, current targeteval SEXP— evaluate, print JSON{ok, value, error}where possibletarget list | current | use NAME—~/.emacs.d/moo/servers.ymlspeak TEXT— placeholder: will usespoken-grammar.yml+ optional local LLMurl 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 plistmoo-structural.el— structural helpersmoo-oneshot.el— oneshot define / log / promotemoo-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.ymlcomments carry semantics
Cursor prompt / aiService snapshot
Optional: reference/cursor-aiService-prompts.yaml holds aiService.prompts and aiService.generations from the workspace DB (see reference/README.md). Regenerate with cursor-mirror export-prompts <workspace-id> -o ….
Part of MOOLLM
Repo README, skills/README.md.
Signals
- GitHub stars
- 52
- Forks
- 5
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
emacs- Source
- github.com/simhacker/moollm