mit einem Klick
emacs
// GNU Emacs as a stateful Lisp machine for agents — daemon, moo-* protocol, emacs.py router, emacs:// URLs, spoken grammar, play-learn-lift.
// GNU Emacs as a stateful Lisp machine for agents — daemon, moo-* protocol, emacs.py router, emacs:// URLs, spoken grammar, play-learn-lift.
Portable tokens of capability, identity, and access
The grammar rules that make MOOLLM's file system object-oriented. Plural directory names declare element type; UPPERCASE marker files declare interface exports (COM-style, minus the UUIDs); directories are implementation classes exporting every interface whose marker file sits at their root.
Mother skill for platform-descriptor sister skills. Defines what a BIOME is — a bounded region of an ecosystem (coexisting, exchanging, never isolated) for one platform you operate — and what files, subdirectories, and cross-biome bridges every daughter biome inherits.
A skill is documentation that learned to do things.
Schemapedia — schema plugins, families, gateways, formats.yml, mechanism_relations; self-object kernel; delegates to sibling skills.
Datasette — serve SQLite over HTTP with metadata YAML, JSON API, plugins; MOOLLM path from cursor-mirror export.
| 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 |
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.
(moo-rename-symbol "a" "b" :scope 'project) style (to be implemented in elisp; names in CARD).(moo-in-defun "foo" ...) , (moo-try BODY) with atomic-change-group.(emacs.py eval "(+ 1 2)") or direct emacsclient --eval.scripts/emacs.pySubcommands (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 use spoken-grammar.yml + optional local LLMurl EMACS_URL — resolve and dispatch (staged implementation)Environment:
EMACSCLIENT — path to emacsclient (default: emacsclient)MOO_EMACS_TARGET — default target nameLogs: append JSON lines to .moollm/skills/emacs/logs/command-log.jsonl when run from a MOOLLM workspace.
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 hooksspoken-grammar.yml comments carry semanticsOptional: 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 ….
Repo README, skills/README.md.