æmacs: having a hoot with a guile emacs

Akira Kyle (he/him) - https://akirakyle.com/ , @akira.social on bsky, @akyle@mathstodon.xyz on fediverse, akira@akirakyle.com

The following image shows where the talk is in the schedule for Sat 2026-12-12. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.

Schedule for SaturdaySaturdaySat 9:00- 9:10 Saturday opening remarkssat-openSat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.planningSat 9:50-10:10 Emacslisten: Controlling Emacs by voicelistenSat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspectiveemacspeakSat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamerltx-talkSat 1:00- 1:20 Plots with ROOTs and SHAPEs: Resilient data visualization with Emacs, Org and gnuplotplotsSat 1:40- 2:00 Personal task management under stress (with Org mode)tasksSat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problemsmobileSat 2:50- 3:10 Hyperbole, My Dear WatsonhyperboleSat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for EmacskoutlinerSat 4:10- 4:30 Close the writing accountability gap with EmacswritingSat 4:50- 5:00 Saturday closing remarks / open sessionsat-closeSat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and GrowthcommunitySat 1:00- 1:15 Emacs as my portable user space across operating platformsportableSat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systemsosSat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integrationcadetSat 2:45- 3:00 El Remoto: browse any GitHub repos without cloning themremotoSat 3:20- 3:40 æmacs: having a hoot with a guile emacsguileSat 4:00- 4:20 Plain text presentations in GNU Emacs with ffsffs9 AM EST10 AM EST11 AM EST12 PM EST1 PM EST2 PM EST3 PM EST4 PM EST5 PM EST

Format: 20-min talk ; Q&A: BigBlueButton conference room https://media.emacsconf.org/2026/current/bbb-guile.html
Etherpad: https://pad.emacsconf.org/2026-guile
Discuss on IRC: #emacsconf
Status: Waiting for video from speaker

Times in different time zones:
Saturday, Dec 12 2026, ~3:20 PM - 3:40 PM EST (US/Eastern)
which is the same as:
Saturday, Dec 12 2026, ~2:20 PM - 2:40 PM CST (US/Central)
Saturday, Dec 12 2026, ~1:20 PM - 1:40 PM MST (US/Mountain)
Saturday, Dec 12 2026, ~12:20 PM - 12:40 PM PST (US/Pacific)
Saturday, Dec 12 2026, ~8:20 PM - 8:40 PM UTC
Saturday, Dec 12 2026, ~9:20 PM - 9:40 PM CET (Europe/Paris)
Saturday, Dec 12 2026, ~10:20 PM - 10:40 PM EET (Europe/Athens)
Sunday, Dec 13 2026, ~1:50 AM - 2:10 AM IST (Asia/Kolkata)
Sunday, Dec 13 2026, ~4:20 AM - 4:40 AM +08 (Asia/Singapore)
Sunday, Dec 13 2026, ~5:20 AM - 5:40 AM JST (Asia/Tokyo)
Find out how to watch and participate

Description

I spend most of my computing time split between two programs: Emacs and a web browser, and only one of them sparks joy. That's what drove my pandemic project, emacs-webkit, which put a browser inside pgtk Emacs. I came away thinking the more emacs-y design would be the other way around: an emacs that lives within the web platform. I've since tried starting on it more times than I'd like to admit, from attempting to rebase the original guile-emacs, to deleting as much C as I could get away with, to compiling Emacs with emscripten. Each attempt left me better understanding how GNU Emacs became the emacs, but the human-hours needed to disentangle, let alone port, the horrors from the depths of src/ haunted my dreams.

Meanwhile, pieces of this puzzle of bringing emacs 2 da web started falling into place. In 2023 the Spritely Institute announced Hoot: compiling Guile Scheme to WebAssembly with Wasm GC. Then at EmacsConf 2024, Robin Templeton announced the revival of the OG Guile Emacs, building on work by Larry Valkama (lyrra), who successfully rebased the decade-old branch onto GNU Emacs 31. Finally, LLM agents started seemingly autonomously coding compilers from scratch. With human-hours apparently no longer a barrier, why not try? After all, if the web is evolving toward a polyglot wasm environment, it ought to have an emacs! I'd either find out the limits of agentic coding, or end up with my "perfect emacs" (a win-win, or so I thought).

æmacs is the result: my apologetically vibe-coded step towards that idea. The æmacs frontend is implemented in Guile, compiled to wasm with Hoot, and renders the UI in a webview. The backend is my fork of lyrra's exploratory "guilemacs" branch, which, after a year of slogging through slop, is now a pure Guile Scheme implementation of Emacs Lisp: no C src/ horrors remain! All state lives in this backend, which talks to a frontend over a sexp websocket protocol, letting the UI render on a different machine. Perhaps someday, Hoot may compile guilemacs itself for the browser.

æmacs/guilemacs breaks with full GNU Emacs compatibility (e.g. unicode only), but loads most of Emacs' lisp/ unmodified, plus packages like org-mode and magit. Focusing on bootstrapping myself into æmacs as my main editor has kept the scope somewhat sane. But bootstrapping an editor with LLMs inevitably led to bootstrapping a coding harness into it too. gptel-agent allowed me to retreat from Claude Code's we-know-best, one-size-fits-all TUI back into the zen of an emacs' diy kitchen sink, and vibe code æmacs inside æmacs.

That's how I got what I've wanted since I started using Emacs: smooth, continuous, inertial scrolling, not just through org-mode buffers full of images, but through PDFs with aemacs-pdf and web pages with aemacs-webkit. Doing this takes hacks in GNU Emacs, but no disrespect, emacs is built for hacking. Unfortunately, while LLMs never tire of hacking, I do. The limits I found were my own, but at least æmacs is now my imperfect emacs.

About the speaker:

I'm a PhD student who has been trying to live inside emacs for over a decade. I've desperately wanted org literate notebooks with inline interactive plotting, so I wrote emacs-webkit as a pandemic project. I came away from thinking it would be far more Emacs-y to have Emacs run inside a browser instead. Unfortunately the estimated human-hours of work were far too much, even for a grad student. So the idea percolated until it seemed like maybe it might be possible to prototype with LLM assistance. This is the story of my journey so far with emacs, web browsers, and now for-better-and-worse, LLM agents.

Questions or comments? Please e-mail akira@akirakyle.com