@ygghq/ymacs
v0.1.3
Published
ymacs - GNU Emacs fork on libyggterm in Common Lisp
Readme
ymacs
A GNU Emacs fork on libyggterm written in Common Lisp. Modern defaults. ELPA & MELPA compatibility measured honestly on a pinned GNU ELPA corpus. Uncompromising speed, concurrency, and deep observability.
What is ymacs?
ymacs reimagines the timeless power of Emacs on a modern, ultra-fast substrate:
- Common Lisp Core: Compiled performance, true native multithreading, and interactive meta-programming on a modern Lisp runtime.
- libyggterm Integration: Runs seamlessly inside
yggtermdesktop and remote terminal sessions via OSC 7717, leveraging high-performance visual document surfaces and sidebars. - ELPA & MELPA Compatibility (measured): Plug-and-play access to the Emacs Lisp package ecosystem is the stated goal. Measured on a pinned GNU ELPA corpus (2026-09-04): 1/75 corpus files load, 797/1944 forms evaluate — numbers, method and gap queue in docs/elpa-compat-measurement.md, status ledger in Status.
- Discard the Old: No 1980s legacy clutter. Clean modern keymaps, instant sub-15ms startup, smart completion out of the box, and sensible defaults.
- Deep Observability: Built-in
ytracedynamic probes for measuring redisplay cycles, evaluation latency, and buffer mutations. - Bidirectional yggterm Orchestration: Control yggterm terminals directly from Lisp forms, and let AI agents interact with live buffers deterministically.
- Literate Book Init: Default configuration is authored as an interactive Org mode book (
init.org). - Single Sidebar Window Model: Buffers, project navigators, and org trees live in a dedicated, collapsible sidebar rather than cluttering the editor pane.
Quick Start
curl -fsSL https://raw.githubusercontent.com/yggdrasilhq/yggterm/main/scripts/install.sh | sh
ynpx @ygghq/ymacsRunning ymacs
# Launch interactive ymacs session
ymacs
# Open file directly
ymacs path/to/file.lisp
# Open with specific literate configuration
ymacs --config ~/.config/ymacs/init.org
# Headless evaluation / agent execution
ymacs --eval "(+ 40 2)"Key Highlights
| Feature | Classic Emacs | ymacs |
|---|---|---|
| Core Runtime | C + Elisp bytecode | Native Common Lisp (SBCL/ECL) + Elisp compat layer |
| Concurrency | Mostly single-threaded / cooperative | True native multithreading & async task workers |
| Surface | X11 / Wayland / ncurses TUI | libyggterm Tier A document & sidebar surfaces |
| Buffer Listing | Splits main window into *Buffers* | Single collapsible sidebar rail (max 1 in view) |
| Observability | elp.el / profiler | In-process ytrace microsecond probes |
| Agent Access | Requires external socket / IPC hacks | First-class headless verbs and deterministic buffer RPC |
Status (honest ledger — 2026-09-02)
Verified by audit; details in docs/spec-primitives.md §5.
- Real: daemon/client split, OSC 7717 surfaces, control server, sidebar panes, rope buffer core with value_key persistence, kill-ring/undo/isearch modules, init.org tangle, headless
--evalverbs, ytrace probes, CI. - Skeleton / not yet real: keystroke input plane, working macro recorder, projectile/magit/treemacs (name-only stubs), emd-renderer buffer ownership, frame=row, settings system.
- Design law for the rebuild: Primitives spec — Frame/Window/Buffer with ymacs superpowers, M-x macro-safety law, config layering.
Documentation
- Primitives Law (design SSOT)
- Architecture Overview
- ELPA & MELPA Compatibility Guide
- Sidebar and Buffer Management
- Agent & Automation Contract
- Manual · Vendored Emacs manuals · Divergence ledger
- Literate Book Configuration
- Agent Operating Contract
License & Legal
- Source Code: Licensed under the GNU General Public License v3.0 or later (GPL-3.0-or-later).
- Documentation: Licensed under the GNU Free Documentation License v1.3 or later (GFDL-1.3-or-later) with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
- Third-Party Notices: See THIRD-PARTY-NOTICES.md.
- Trademarks: See TRADEMARKS.md.
