Spent a bit of free time polishing ollama-buddy - github Copilot is now onboard!

February 4, 2026 10:40

I've had a little free time recently (figuring out this baby stuff!) and thought I would spend time revisiting and refining my AI assistant ollama-buddy I've been playing around with agentic coding and keeping up-to-date on the rapid development of the Emacs AI package landscape and I think I have refined in my own mind my idea of what I would like to see in an Emacs AI assistant. The headline change regarding the latest release of ollama-buddy is GitHub Copilot integration; the rest of the work is about smoothing the UI and simplifying day-to-day use.

Ollama buddy now supports cloud models!

January 28, 2026 08:29

Having another look at my AI assistant - ollama-buddy, its been a while and it seems ollama has moved on since I started creating this package last year, so I have developed a new roadmap and the first step is to add ollama cloud models!

Auto-Populating Weekly Dates in Org-Mode Tables

January 26, 2026 10:13

Here is just a quick one, I was working with an org-mode table for tracking work weeks and needed to auto-populate a Date column where each row increments by exactly one week. The table structure looked like this:

Speed Reading in Emacs: Building an RSVP Reader

January 18, 2026 10:30

I recently came across a fascinating video titled "How Fast Can You Read? - Speed Reading Challenge" that demonstrated the power of RSVP (Rapid Serial Visual Presentation) for speed reading. The concept is quite nice and simple and I vaguely remember seeing something about it a few years back. Instead of your eyes scanning across lines of text, words are presented one at a time in a fixed position. This eliminates the mechanical overhead of eye movements and can dramatically increase reading speed!

A single function ripgrep alternative to rgrep

January 9, 2026 09:43

For years, rgrep has been the go-to solution for searching codebases in Emacs. It's built-in, reliable, and works everywhere. But it's slow on large projects and uses the aging find and grep commands. Packages like deadgrep and rg.el provide ripgrep integration, and for years I used deadgrep and really liked it. But what if you could get ripgrep's speed with just a single function you paste into your config?

New package dired-video-thumbnail added to MELPA!

December 31, 2025 18:34

I have created another package!, this time something that I thought was missing from the mighty Emacs and that is the ability to show video thumbnails in a grid and to be able to filter, sort e.t.c. Basically like an enhanced image-dired. I have been increasingly using image-dired for my image editing and management needs and am always adding little improvements, to such an extent I decided to create a video thumb grid package, enjoy!

Setting Up Emacs for C# Development on Windows

December 16, 2025 08:25

Introduction

I have been developing C# with .NET 9.0 for the last year on Windows and I thought it was probably time to write down my current setup, and maybe someone might even find this useful! So, this guide documents my setup for running Emacs 30.1 on Windows with full C# development support, including LSP, debugging (through DAPE), and all the ancillary tools you'd expect from a modern development environment. The setup is designed to be portable and self-contained, which is particularly useful in air-gapped or restricted environments. A version of this can be found at https://github.com/captainflasmr/Emacs-on-windows which will be a living continually updated version!

Convert copied jira kanban to org (jira-to-org)

November 28, 2025 14:56

I have been fiddling around with some very rudimentary Jira integration to org, basically something very simple, just a regular copy from the kanban and then convert into org headlines! This package is designed for simpler workflows where you copy data from Jira rather than maintaining API integration.

The Ping Localhost Hack for Emacs Shell on Windows

November 1, 2025 15:24

For a little while now, I've been developing software that needs to run on Windows (I know, I know!) and occasionally firing up batch scripts from within Emacs shell. Everything was working perfectly until I needed to add a simple delay between commands. That's when I discovered one of Windows batch scripting's more peculiar quirks.

Planning my Weekly Meals in Emacs!

September 26, 2025 10:05

And what have I been working on recently?, well lets consider the following questions…

  • What should we eat Monday through Friday?
  • What about the weekend when we have more time to cook?
  • Didn't we just have pasta last week? And the week before?
  • How do I plan for batch cooking without ending up with the same meal rotation?
  • Where did I put that list of meal ideas again?

Debugging Software Breakage with Git Stash and Emacs

September 10, 2025 08:00

We've all been there, your code was working perfectly from a clean checkout, but after making a bunch of changes across multiple files, something has broken. The dreaded question arises! which change caused the break? This is the story of how a debugging session led me to discover gaps in Emacs' VC mode and ultimately create a custom solution.

Customizing Emacs Completion: From Fido's Fuzzy Matching to Literal Substring

September 5, 2025 10:06

For my completion framework, I'm currently using fido-mode, and more recently, fido-vertical-mode. However, I'm scratching yet another itch in my ongoing quest to be more efficient in Emacs, specifically to jump to files more quickly. I explored this in a previous post where I enhanced the recentf functionality to work through completing-read in a predictable order, but what about the completing-read interface itself?

A Better Way to Indent Your Entire Buffer in Emacs?

August 26, 2025 09:56

As an Emacs user, you've probably found yourself wanting to clean up the indentation of an entire file. The standard approach is to select all (C-x h) and then run indent-region (I think, correct me if I am wrong!), but this has an annoying side effect: it destroys your current mark position, which might have been carefully set for other operations.

Fast Recent File Navigation in Emacs

August 16, 2025 19:07

As an Emacs user, you're always hunting for ways to shave milliseconds off common tasks and generally noodling around and shaving some more of that yak!. File switching is one of those operations you do hundreds of times a day, so even small improvements compound dramatically. Today, I want to share a workflow that I have been tinkering with that combines the best of Emacs's built-in recent file tracking with modern completion interfaces.

Emacs gives us several ways out of the box to quickly access files:

  • find-file
  • switch-to-buffer for open buffers
  • Registers
  • Bookmarks
  • recentf-mode for recently accessed files

Ollama Buddy v1.0: A Simple AI Assistant

July 23, 2025 09:20

After months of development and refinement, I'm excited to announce Ollama Buddy v1.0 - an Emacs package that simply interfaces mainly to ollama, for local LLM usage, but can be integrated to the major online players. This project initially started as a simple integration with Ollama and since then has somewhat evolved into a more fully fully-featured AI Emacs assistant. The main focus with this package is a front facing simplicity but hiding (hopefully) all the features you would expect from an AI chatbot - wait I hate that term, I mean, assistant :). There is also the ability to craft a customizable menu system for different roles.

I had a blast developing this package and next up is RAG!. I saw recently that a package called vecdb was introduced into the package ecosystem to help with the storage of vector embeddings, so as ollama can return embedding vectors for semantic search I thought I would combine my package, vecdb, also probably initially a PostgreSQL database with a pgvector extension and ollama into something that could ingest files directly from Emacs. I think I have figured this out now, I just need to do it (when the baby is asleep, probably!)

Why Choose Ollama Buddy?

Building an Emacs Package from Scratch: Cursor Heatmap Tutorial Part 2

July 22, 2025 13:26

In our ongoing quest to construct a new fully functional Emacs package, in Part 1, we built the foundation and have a very basic package for our cursor heatmap package. Now we're ready to tackle the core challenge, actually tracking where the cursor is and detecting when it moves! So, where is the cursor?, this seems simple, but with Emacs and of course generally software engineering there are several different approaches and concepts to understand and think about before we move on to some implementation.

  1. Point: The character position in the buffer (like character 1,847)
  2. Line and column: Traditional text coordinates (line 42, column 15)
  3. Window coordinates: Position relative to the current window
  4. Frame coordinates: Position relative to the entire Emacs frame
  5. Pixel coordinates: Exact pixel position on screen

Ollama-Buddy 0.13.1: Curl backend support and some optimizations

June 21, 2025 10:05

This is more of a maintenance update. The main headline is the addition of an option to select a curl-based backend for those who may encounter networking issues. By default, ollama-buddy uses built-in low-level networking calls, but if you have network issues, you can now switch to curl!

Emacs dired with Ultra-Lightweight Visual Icons

June 12, 2025 22:37

If you spend any time browsing files in Emacs, you've probably wished for a bit more visual distinction in dired buffers?. While packages like all-the-icons-dired provide beautiful icon sets, they come with dependencies, font requirements, and potential compatibility issues. What if you could get meaningful visual file type indicators with just a few simple lines of pure Elisp? I have adapted the original idea provided by Emacs-solo and focused more on the earlier Unicode characters that are most likely to always be present in an Emacs environment. Popular dired icon packages often require:

  • Installing specific icon fonts
  • Managing font fallbacks across different systems
  • Dealing with alignment issues in terminal Emacs
  • Large dependency chains that slow down startup
  • Compatibility headaches when sharing configs