
Will McGugan
@willmcgugan • 41,681 subscribers
Former presidential speech writer. Hyperborean Python expert, PSF fellow, author, humanist, husband. He/him @[email protected]
Shorts
Videos

Alrighty. The Toad is out of the bag. 👜🐸 Install toad to work with a variety of #AI coding agents with one beautiful terminal interface. Check out the blog post for more information... I've been told I'm very authentic on camera. You just can't fake that kind of awkwardness.
Will McGugan203,333 Aufrufe • vor 8 Monaten

I've been playing with a feature for my prose editor, I call "ghost cut". Y'all know how to cut and paste. You hit ctrl+x, the text disappears and goes into the clipboard. Then you move the caret and ctrl+v to paste it into a new location. You've done that a bazillion times, I bet. An annoyance I have with this is that as soon as you cut, the text reflows—and you have to reorient yourself in the "page". The solution I'm playing with is to ghost the text that was just cut. It only disappears from view once you paste it. I'm kinda liking it so far. But there is more testing to be done. Does anyone know of any precedence for this? I've not seen this in any editor or word processor.
Will McGugan20,238 Aufrufe • vor 2 Monaten

Cute! But does it have sub-cell mouse drag and easing animation?
Will McGugan54,297 Aufrufe • vor 9 Monaten

A little bit more on my Novel editor. One of the things I loath about word processors is that they are so unaware of how prose is structured. They treat the line as the most atomic unit of text. But writers think in words, sentences, and paragraphs. Never lines. The editor I am working on has navigation tools for word, sentence, paragraph, and scene. You can navigate and move content at each level. All from the keyboard with some intuitive hotkeys. A pointing device like trackpad or mouse engages the part of your brain that processes spatial input. That's not where you want to be when writing. It can take you out of your flow state. And it is physically quite slow because your hands must move away from the keyboard. So I'm rethinking editing with the keyboard. It's not hard to learn, and it makes editing faster. I haven't been using it long and already I'm barely reaching for the trackpad. Follow me to be the first to try this out. #WritingCommunity
Will McGugan16,055 Aufrufe • vor 2 Monaten

Writers, if I may have your attention... I am a solo software developer. I'm building a distraction free writing app for novelists. All the features of other distraction free apps, but it doesn't use Markdown—so you can have beautiful typography and formatting. It manages chapters, with auto numbering. Front matter, back matter. And you can export to a variety of formats, including EPub and Word (in Shunn manuscript format). Mac initially, Windows and Linux to follow. Follow me if you want to be the first to try this out. 🙏 #WritingCommunity
Will McGugan15,072 Aufrufe • vor 2 Monaten

I do believe I've nailed the table scaling. 💪 I was stuck on this last night. Just couldn't get it. Got it working this morning before I had finished my coffee. ☕️Proving once again the best debugging technique is a good night's sleep Turns out it is a two-step problem. First step is to subtract space from the columns, but maintain a minimum column width that fits at least the largest word. If the table is still larger than the desired width, then the excess space is subtracted from columns proportionally to the column width. So wide columns shrink first. This keeps the table legible for as long as possible. If cells are crushed, then tooltips will help. It is also entirely possible to make the table scroll horizontally. But nobody likes horizontal scrollbars...
Will McGugan49,683 Aufrufe • vor 1 Jahr

I've been building a "front page" for Toad (my terminal UI for agentic coding). This will the first page the user will see if they run "toad" from the command line without additional arguments. For here they can browse / search for agents and install directly from the command line. There are 10 agent supported so far, with more being added all the time. I also see this is a place to install other more specialized AI tools in addition to agentic coding. Check out the video! #toad #AI
Will McGugan35,626 Aufrufe • vor 9 Monaten

Now I have a "split" diff view. Not bad for an hour and a half's work. WDYT?
Will McGugan40,177 Aufrufe • vor 11 Monaten

Here's why I think Zed 's Agent Client Protocol is an important technology. It allows lunatics like me to take the magic of Gemini CLI and other agents, and build a custom terminal UI around them. Here I am comparing Toad's TTY support with Gemini's. Toad is very close to a release BTW. Join the toad channel on Textualize discord to be the first to try it out.
Will McGugan29,180 Aufrufe • vor 9 Monaten

Well that was an adventure. Toad's fuzzy file search boosts first characters, smallest number of groups, and it highlights the best scoring match. So you can locate a file with the bare minimum of keypresses. It's an expensive algorithm as it scores every possible combination of the query characters. For any given path there could be many indices which match, and each of them is scored separately. Still, it was fast enough to search as you type for my largest repository. Alas, it was slow for very large repos. Like Microsoft's Typescript, which has more than 84,000 files. I figured I'd reach the limit of what I could do with Python. So my options were to use something like ripgrep or re-implement the fuzzy searching in a faster language. I didn't want to add the ripgrep dependency, so I built a Rust version (with the help of AI) which eventually yielded a ~14X speedup. Nice. Better. But it could still become painful to type under certain pathological conditions. An inefficient algorithm can always be slow if you add more items. So I scrapped the Rust solution and built an index in Python—so the fuzzy search could throw away most paths that wouldn't match or have low scores. And its faster than the Rust solution was. The only downside is that there is a little additional work upfront (done in the background). I think this will do for a while. Until I get an issue that it is slow with 10million files. Rust is still an option, as is doing the work in parallel. This will be in the next version of Toad. Here I am searching the Typescript repo... #Python
Will McGugan12,261 Aufrufe • vor 6 Monaten

SO Gemini CLI announced they have a new flicker free experience, and also that they can embed interactive commands. But I can't for the life of me see it working. I've updated to the latest, but it doesn't seem any less flickery. And commands are quite broken. Is this the right version? ❯ gemini -v 0.19.1
Will McGugan12,256 Aufrufe • vor 9 Monaten

Textual is pretty fast these days. Who would have thunk that you could implement a CSS layout and rendering engine in #Python and have it perform this fast, in a *terminal* ? It's fast enough, but there are still wins remaining. And we haven't done any C or Rust extensions.
Will McGugan24,704 Aufrufe • vor 3 Jahren