My Helix fork tutors me
The other day I wrote about how I'm now writing in a WebAssembly fork of Helix. This is working great, even though (i) my vim / Helix knowledge is uneven and (ii) the WebAssembly fork is still buggy.
Some extra infrastructure is addressing both of these problems:
- The editor now saves a rolling history of my N most recent keypresses and recent states of the buffer.
- Every so often, this information gets sent to a decision model, which determines whether it describes some sort of Helix user error or inefficiency.
- If the decision model says "yes" with sufficiently high confidence, the same information is sent to a slow LLM, which generates a prose description of what I did wrong and can improve.
- The recent states of the editor are also sent to an LLM when I request code changes via an
Improvebutton at the top of the screen.
Here's what it looks like when a tip pops up:
And here's the Improve modal:
Some further notes:
- Constant monitoring combined with decision-model judgments (or some future alternative to decision models) strikes me as a promising structure for many kinds of education and training.
- If that is correct, getting comfortable with the idea of being continuously monitored by this kind of system is valuable. I've spent enough time working at big tech companies that I'm quite comfortable with the background processing of my keystrokes (and much more).1
- The
Improvebutton was prompted by this Patrick Collison dispatch. If you've automated the process of making pull requests from tickets, then the Engelbartian "liquid software" button is, from another perspective, just an integrated ticketing mechanism. Yet, as Collison notes, it feels quite exciting and transgressive.2 - Part of the transgressive excitement comes from a sense of teamwork. I'm improving it, and it is improving me, in small and frequent ways.
- Yes, this whole system is weird and buggy. But I find it more useful and more comfortable than any alternative. I don't particularly like the idea of maintaining my own text editor, but the payoff is large. I'm using software with the tradeoffs I want, and the path from noticing a bug to having it fixed in production is usually smooth and easy these days. For all its weirdness, I do think it's the best software system in the world for this purpose for me. What a world.