Back to the talks Previous by time: Bidirectional links with eev Next by time: Short hyperlinks to Python docs Track: General

Edit live Jupyter notebook cells with Emacs

Blaine Mooers (Blane Moors, he/him,

In this talk, Blaine Mooers shows how to use GhostText and Atomic Chrome to edit Jupyter notebook cells and other text areas within Emacs. Afterwards, he will handle questions via BigBlueButton.

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

Schedule for Saturday Saturday 9:00- 9:05 Saturday opening remarks sat-open 9:05- 9:25 Emacs journalism (or everything's a nail if you hit it with Emacs) journalism 9:45- 9:55 Back to school with Emacs school 10:05-10:15 How to incorporate handwritten notes into Emacs Orgmode handwritten 10:45-11:05 Writing and organizing literature notes for scientific writing science 11:25-11:35 The Emacs Buddy initiative buddy 1:00- 1:20 Attending and organizing Emacs meetups meetups 1:40- 1:55 Linking personal info with Hyperbole implicit buttons buttons 2:15- 2:40 Real estate and Org table formulas realestate 3:00- 3:25 Health data journaling and visualization with Org Mode and gnuplot health 3:45- 4:05 Edit live Jupyter notebook cells with Emacs jupyter 4:50- 4:55 Saturday closing remarks sat-close 10:00-10:15 Tree-sitter beyond syntax highlighting treesitter 10:25-10:45 lsp-bridge: a smooth-as-butter asynchronous LSP client lspbridge 10:55-11:15 asm-blox: a game based on WebAssembly that no one asked for asmblox 11:25-11:35 Emacs should become a Wayland compositor wayland 1:00- 1:25 Using SQLite as a data source: a framework and an example sqlite 1:50- 2:30 Revisiting the anatomy of Emacs mail user agents mail 2:50- 3:10 Maintaining the Maintainers: Attribution as an Economic Model for Open Source maint 3:35- 3:40 Bidirectional links with eev eev 3:50- 3:55 Short hyperlinks to Python docs python 4:05- 4:35 Haskell code exploration with Emacs haskell 9 AM 10 AM 11 AM 12 PM 1 PM 2 PM 3 PM 4 PM 5 PM

Format: 18-min talk followed by live Q&A (
Discuss on IRC: #emacsconf-gen
Status: Talk captioned

Times in different timezones:
Saturday, Dec 3 2022, ~3:45 PM - 4:05 PM EST (US/Eastern)
which is the same as:
Saturday, Dec 3 2022, ~2:45 PM - 3:05 PM CST (US/Central)
Saturday, Dec 3 2022, ~1:45 PM - 2:05 PM MST (US/Mountain)
Saturday, Dec 3 2022, ~12:45 PM - 1:05 PM PST (US/Pacific)
Saturday, Dec 3 2022, ~8:45 PM - 9:05 PM UTC
Saturday, Dec 3 2022, ~9:45 PM - 10:05 PM CET (Europe/Paris)
Saturday, Dec 3 2022, ~10:45 PM - 11:05 PM EET (Europe/Athens)
Sunday, Dec 4 2022, ~2:15 AM - 2:35 AM IST (Asia/Kolkata)
Sunday, Dec 4 2022, ~4:45 AM - 5:05 AM +08 (Asia/Singapore)
Sunday, Dec 4 2022, ~5:45 AM - 6:05 AM JST (Asia/Tokyo)
Find out how to watch and participate


My talk will address a dilemma faced daily by many technical writers and programmers. Like many academics, I use several web-based platforms for writing prose (e.g., 750words, Overleaf) and interactive computing (Jupyter Notebook, Google Colab Notebooks). The first group lacks support for snippets. The second group has support for snippets, but this support does not include tab triggers and tab stops. The absence of tab stops can increase the number of bugs by overlooking parameter values in the snippet that need to be changed to adapt the snippet to the current problem. One solution to the absence of full-powered snippets is to apply Emacs with yasnippets to these web-based platforms.

One route to doing so is to use the atomic-chrome package for Emacs and the GhostText Extension for web browsers. These two software packages enable two-way communication via a web socket between an Emacs buffer and the text area of the web page. Edits made on the web side of the socket are immediately sent to the Emacs buffer and vice versa. The Emacs's snippets and other editing tools only work in the Emacs buffer. The connection can be closed from either side. This route has enabled me to apply snippets of LaTeX code to my daily writing in 750words. I have been able to convert 750words into a platform for writing in LaTeX; by default, it uses markdown. I have also been able to apply code snippets for Julia, Python, R, and so on in Jupyter notebook cells. In other words, I get to extend my time writing in Emacs.

In my ten-minute talk, I will describe my problems with web-based platforms and their solution with Emacs. I will describe where to find the required software and how I configured Emacs. I will present several precautions for using GhostText and describe the limitations of its application. I will provide links to collections of snippets I found handy daily usage of 750words and Jupyter.

Questions or comments? Please e-mail

Back to the talks Previous by time: Bidirectional links with eev Next by time: Short hyperlinks to Python docs Track: General