Hello there!

by Tushar and Divya
2026 June 22
meta emacs-reader pale canvas

Hello there! This is MonadicSheep’s first blog post. Even though this is our first public post, we have been working on several projects over the last few months. This will be a brief overview of the projects and their developments.

1. Emacs Reader: An all-in-one document reader for GNU Emacs.

This project began in the summer of 2025, around late February/early March. It was the result of Divya’s frustrations with pdf-tools (who had been contemplating this project for a while by then). Some of the frustrations were: insane memory usage (in gigabytes!) which made it hard to read multiple large PDF files, having to go back to DocView for EPUBs and the like. DocView itself suffers from many of the similar issues, and also is less featureful (though it does have some interesting unique features).

It was decided in the initial prototype to rely exclusively on MuPDF, the most efficient and performant PDF engine out there, ahead of Poppler (used by pdf-tools). One thing led to another, and Tushar joined the work as well and bullied pushed Divya into getting Emacs Reader polished and published. Tushar helped immensely in the Emacs Lisp side of things, while Divya took care of the dynamic module and integration with MuPDF.

To learn more about what Emacs Reader can do and see it in action, checkout our Emacs Conf Talk from December 2025.

2. PALE & Canvas Patch

We quickly hit a brick wall in developing Emacs-Reader. Our hacks techniques to get Emacs to display the pages were not cutting it for displaying text highlights on the page. And to at least try to keep emacs-reader a little simple, we decided to extract them into a separate library, PALE: Picture & Animation Library for Emacs, and somehow get text highlighting working… Which we were able to get working by dividing the images into smaller images (tiles).

Soon, Daniel Mendler (minad) looked at our work and suggested a “canvas” patch upstream, which would relieve us all of the hacks in PALE, and Emacs-Reader.

Check this web page for demos.

We are currently finalizing a new version of the Canvas patch with Daniel Mendler to be re-submitted to Emacs Devel. The hope is that it gets merged eventually. Meanwhile, we’re also working on integrating Canvas to Emacs Reader to test a few things.

3. Insidious: Youtube Client

This project is an Emacs client for YouTube for fetching video search results. Tushar started working on it because he wanted to have search results from multiple pages, which Yeetube, another package for doing the same, didn't support at the time.

It was submitted for NonGNU ELPA but it wasn't merged because of software freedom concerns: the package, when playing videos, invokes mpv which invokes yt-dlp, which could execute non-free Javascript on the user's system.

The development is currently slow. But we have plans to revive the project in the future, possibly integrating with PALE/Canvas Patch to display the videos directly inside Emacs buffers.