2026-04-18: The path to Humbug v43

Published: 2026-04-18

Fresh from the UI updates in v42, I've been spending some time improving the usability of v43...

git integration and diffs

While I've been building Humbug I've still tended to use VSCode alongside it. This has been a little frustrating as the whole idea was to not need an IDE, but there are a few things that VSCode did particularly well and I had assumed would take a lot of work in Humbug. Probably the single biggest of these reasons was that VSCode has a nice integration of a diff viewer and git.

It turns out Claude Sonnet 4.6 and about $70 of API tokens could solve that particular problem for me!

v43 now has a git watcher that updates a new mindspace panel with files that have been modified and not committed. It also adds a new "diff" tab type that shows the original and modified code side by side. It also features some nice menu options with keyboard shortcuts to navigate to the next/previous hunk in the diff.

For bonus credit, we also changed all the scrolling logic in Humbug to use smooth scrolling. This is particularly pleasing in the editor tabs, as the LLMs often use the editor tabs for reading and modifying large files. Now you get to watch the AI scrolling around the file as it updates it.

The new diff tab in Humbug v43
The new diff tab in Humbug v43

Claude impresses again

One interesting thing happened during the last few updates to the diff tab. I didn't have an integration in the Humbug shell so I asked for one:

"we have recently added a diff viewer tab type (see src/humbug/tabs/diff). It is not yet integrated into the Humbug shell (src/humbug/tabs/shell and src/humbug/main_window.py). Please review the code and propose an integration"

Left it running for about 30 seconds and aside from what I asked it to design, it spotted 2 bugs, and 2 missing integrations that I had been planning to ask it to do next.

In the next 9 minutes, it one-shotted the fixes/enhancements across 8 files, including noticing that it needed to update the French and Arabic translations of the UI commands!

Humbug is a very structured codebase and there are precedents to all of the items it identified, so that open ended request to review things undoubtedly triggered a lot of in-context pattern matching.

Alternatively, maybe it really just liked the idea of making its own tool framework better 🤣

Claude's analysis of the Humbug codebase
Claude's analysis of the Humbug codebase

Attaching files to prompts

Tharik had proposed a design to attach files to prompts. Claude and I discussed the implementation and found it did a few slightly awkward and inconsistent things, but the diffs served as a stimulus to allow Claude to come up with a new, simpler, implementation.

Visually the two ended up very similar (which is what I'd hoped for).

Moving Menai to the C VM on Windows

Until now, only MacOS has supported the C VM for Menai. As of today we can now build it on Windows, giving dramatically higher performance there.

Crossing 100k lines of Python

Today Humbug crossed the 100k lines of Python code metric. On top of this it has just under 9k lines of C and 66k lines of Python test code.

Version 43

Given all the changes in the last week, this feels like a very worthy v43!

New features:

  • Improved performance across the Menai VM.
  • The C implementation of the Menai VM now compiles and runs on Windows as well as on MacOS.
  • Added a new "diff" tab type that allows you to compare the current version of a file with the last version stored in git.
  • Added a new mindspace view for revision control, allowing you to see which files have been modified vs git HEAD.
  • Shift+Home/End now selects text in editor tabs, making things consistent with other shift+movement operations.
  • Switched find operations to use smooth scrolling in all tab types.
  • Added the ability to attach (and remove) files in a prompt.

Bug fixes:

  • Resolved a problem with the preferred width calculations for tabs. This could make terminals use a horizontal scroll bar when they didn't need to.
  • Resolved a problem where tabs that were moved between columns did not result in files being unwatched.
  • Fixed broken find operations in conversation, Humbug shell, and mindspace log tabs.
  • Resolved a problem with smooth scrolling operations that could make things appear to "jump" right at the end of the scroll.
  • Fixed the selection colour in terminal tabs.
  • Enabled faster drag-scrolling in all tab types.
  • Resolved a problem that could cause file watching to trigger unnecessary reloads of tab content.