On LLM-based TUI coding assistants

Introduction Backdrop Over the past few months, it seems that Big AI™ has finally listened to us terminal users. As someone who exclusively uses nvim + tmux, I did (and continue to) not care about most of the AI-in-IDE assistants, since most of them seemed catered to VS Code (and its forks) or JetBrains users. Neovim has plugins that offer similar functionality such as Avante, and while they work great (so I’ve heard), they’re all entirely community-driven (but it is worth mentioning that Microsoft did release a vim plugin for Copilot, which a community member kindly ported to neovim and continues to maintain to this day)....

October 19, 2025

ZQA Devlog 02

This is part 2 of a series of posts logging development of a RAG system for Zotero that I’m writing in Rust. Here is Part 1. Towards parsing math The next challenge to tackle is math: how does it work? Or more specifically: how are equations and inline mathematical symbols represented in the PDF content stream, and how can we use that information to parse them? For this, the best way to start is to simply create a very simple PDF with some commonly-used symbols and see what the content stream looks like....

July 7, 2025

ZQA Devlog 01

Introduction This is the first in a series of posts logging the development of zqa, a RAG tool I am working on to work with Zotero. The eventual goal is that you will be able to, from your terminal (as an avid terminal user myself), ask questions and have LLMs respond with citations from your Zotero library. I also want this tool to help you find things: so maybe you remember certain details about a paper but don’t quite know what it was about or its title–a problem that has become all too real with my 1,300-item library....

April 16, 2025

Using Google Cloud to host multiple servers on one VM

This blog post presents a solution to the following problem: we want to host two services, and have test1.example.com and test2.example.com route to them respectively. These services should run on one machine, on different ports. Google Cloud Load Balancing makes this relatively easy, although nginx solutions exist. Step 1: Set up a VM We’ll create a VM with default settings. Create two directories, test1 and test2 inside the VM. Within both, we’ll create the same file called server....

January 14, 2023