WinUIpad: AI to the Rescue ⭐

WinUIpad: AI to the Rescue

It’s been three months since my last WinUIpad update, though I’ve never really stopped working on this project. It’s been frustrating. The Windows App SDK is a classic double-edged sword, in that it’s the only framework that makes sense if I want to use the latest WinUI 3 controls and capabilities and stick with C#, but it’s also a nightmare of missing functionality that’s available and/or much easier to use in the older Windows Presentation Foundation (WPF) framework.

The central irony here is that I switched to the Windows App SDK specifically so I could implement multiple tabs and documents, as the tabs implementation in WPF is decades old and not designed for modern, multi-document apps. But knowing that I had to figure out the Windows App SDK to some degree, I started with a basic, single document version of the app first. And then consistently struggled to get it up to speed with the features in the WPF version of the app (called .NETpad). In fact, it was so bad, I just started stripping features out so I get a solid if limited base with which to move forward.

I had hoped to complete that more limited version of WinUIpad by late 2025 or early 2026, but I never felt good about the state of this project. And so I kept going in and out of the code, continued being frustrated, and started considering my options. For example, I could start over, yet again, with another framework, but that would take time and I can’t claim that doing so with the Windows App SDK this past year has been in any way rewarding.

I did spend time on that, of course. I brought my MacBook Air to Mexico specifically with the idea that I would spend some time trying to learn Swift and SwiftUI, though whatever apps I would make would only run on the Mac or some other Apple platform. For what feels like the hundredth time, I looked into React Native, another way I could use WinUI 3 for a Windows app, but with JavaScript, which feels like three steps back. I could try to stick with C# and go cross-platform with Uno Platform, which admittedly is somewhat appealing. Or I could just give up. Honestly, I was at the point where that was almost the most appealing option of all. The Windows App SDK is terrible, and doubly so because we all know Microsoft is never–never, never, never–going to fix this mess. Ever.

?‍? Pair programming experiments

I have used various pair programming tools, mostly GitHub Copilot, to help me get past some issues in WinUIpad. I long ago lost track of my efforts in this space, and I never really took good notes anyway. But the way I remember this is that GitHub Copilot started off very promising and then devolved into something beyond useless.

The workflow, such as it was, is that I would ask it to solve a very specific code issue, it would suggest changes, I would approve those changes, and then I’d try to compile the code but it would produce a new error. Which I would present to GitHub Copilot and then be told, a bit too jauntily, that, ah yes, it could see the problem, suggest further adjustments, and around and around we’d go, pretty much forever. I needed help and all it would do is introduce new coding issues. And then I would run out of my free monthly credits thanks to the mistake it had made. Great.

Over the past year, I had read many, many stories about how successful developers were with whatever AI solution was hot that week. Cursor had its moment about a year ago, with developers raving about a paid tool that was basically just Visual Studio Code, a free tool, but I saw the same patterns there that I did with GitHub Copilot. ChatGPT, Claude, and then Gemini all had their big moments in the sun throughout late 2025. And the Claude Code, in particular, jumped to the forefront heading into 2026.

Regardless of the AI, the idea here seems to make sense. AI models are made by engineers and developers who grew up on Stack Overflow and API documentation and the models themselves are trained on that same data. We know that AI models work better when they are grounded in a finite data set, and there is no more finite data set than the documentation for a programming language or framework. And so the best examples of AI working well are inevitably for software development. That the best AI developer tools might then be successfully adapted to productivity scenarios, as we see with Claude Cowork, feels like it should have been predictable. But it’s happening. Great.

Great for others, I guess. Heading into early 2026, I’d never seen a transformational step forward with AI. All I’ve seen are small positive steps here and there. And many, many defeats. I watched as our industry miscommunicated what vibe coding was and then later backed off when they realized that asking AI to bring up a simple program is fine but then you’re stranded if you want to do more or need to fix any problems. These people are like the characters in the Foundation books, using technology that they do not understand and cannot fix when things go wrong.

Which, come to think of it, is how I often feel myself when it comes to using AI to get anything done. It’s great at starting something, and is always very enthusiastic. But it never seems to stick the landing.

?️ A focus month

Heading into early 2026, I had also resolved to try to have a monthly focus this year. January became a security focus, for example. And in February, I wrote most of De-Enshitty Windows 11 and got that published in near-final form. Well, it’s March now, and I’d been experimenting with a few ideas that might make sense as a focus for this month, one of which was using AI to get WinUIpad over the top. And thanks to a very recent step forward, I think I’m ready to move forward with that.

To be clear, each monthly focus will extend beyond that time frame. I’m not done writing up the article I have for the January security focus, for example, and I will do so. The book work is ongoing, though I think that will wind down for the most part in the next few weeks. And for future focuses, there is a lot of prep work to do ahead of time. I’ve been installing and using various Linux distributions and related OS platforms ahead of a coming Windows alternatives focus. None of this is particularly clean, and so far none has fit cleanly into a single month. It is what it is.

Back in August 2024, I wrote that I will not pay for AI. This was misunderstood by many, and given the ADHD nature of this audience, I will be reminded of that statement every single time someone perceives that I am, in fact, paying for AI. But I knew that going in. And as with the vibe coding misunderstandings of a year ago, I also knew what it really meant. I will not pay for some AI “thing,” an AI product or service. I will pay for products or services that use AI, of course, just as I pay for products and services that use spelling and grammar checking. AI contributes to features, it’s not a unit of payment. Not for me.

Well, there is one caveat to that, I think. Were I a professional developer, were this my sole focus, I would absolutely pay for AI. I would aggressively move from service to service if and I when needed, depending on the capabilities of the day. And I would probably pay as much as I could pay, if required, meaning I would go for that $200 per month option so many of these services seem to offer. That cost would be easy to justify. If I were a professional programmer.

I am not a professional programmer. But back in early February, I decided to pay for Anthropic Claude Pro, which costs $20 per month. I justified this cost easily, because I would use it to try and improve WinUIpad, which I could write about. And if a month or two went by and I was out $20 or $40, so be it. I could at least see where this thing was at and whether the AI flavor of the month—oops, the industry already moved on to OpenClaw, go figure, another blink and you missed it AI advance—could get me over the top.

It started off OK and then quickly devolved into the same experience I’d had with GitHub Copilot. Part of the problem is that the Windows App SDK is just not as well documented as longer-lived frameworks like WPF, I think. Part of it that the Windows App SDK just sucks, and we must never forget that or forgive Microsoft for leaving it like it is. But whatever. I found myself quickly doubting that I would even make it to a focus month because it wasn’t clear that this could solve the issues I face with this project.

When it comes to AI pair programming, there are two basic approaches, at least to my mind. You can use it to evaluate an existing code base and have it suggest improvements. Or you can use it to start a project from scratch—literally, what vibe coding is—and then take that codebase and improve and evolve it yourself. And then I guess you could move forward using the AI to improve its code with you.

I think about starting over a lot, but then I do start over a lot when it comes to this project, so maybe that makes sense. For WinUIpad, I didn’t want to go directly to a prompt like “make a 100 percent complete clone of the Notepad app in Windows 11” for reasons I’m having trouble summoning as I write this. But whatever, it did occur to me that I could ask Claude to create a version of the Notepad app, but for macOS, and using SwiftUI.

So I did.

Swiftpad, as I called this thing, seems to work really well. At first I was confused by the lack of tabs, but they’re there and the tab bar is hidden by default. This app integrates nicely with the Mac system-wide menu, offers all the major features I’d expect, and it even offers a view I never thought of, thanks, no doubt, to native capabilities available to developers on the Mac. For example, there’s a Duplicate option in the File menu, and Share. You also get automatic Apple Intelligence-based Writing Tools support. It’s pretty impressive.

I don’t know Swift or SwiftUI well enough to do much with this. But it was enough of a success to keep me going. There is something in there, something that can work. If only I could harness it somehow. I would keep trying.

? Enter Clairvoyance

Brad’s company, Stardock, has been working on an AI tool called Clairvoyance that Brad feels is transformational. Like any good software, Clairvoyance came about because the people who made it wanted something like it. And then it proved so useful that it started making its way around the company. Now, almost everyone there is using it. And anyone outside the company can try it for themselves as well.

Clairvoyance doesn’t sit neatly among Stardock’s other tools, most of which are Windows utilities, like Start11, Fences, and WindowBlinds. Clairvoyance is, by nature, cross-platform, or perhaps platform agnostic. Or, it will be. Right now, there’s only a Windows app, though macOS and Linux versions are planned. But anyone can access Clairvoyance on the web, too.

As with other AI tools, there’s some language to get around. Clairvoyance has agents, of course, everyone is doing it, but in this world they’re called “AI staff,” and you can multiple AI staff, all off working autonomously on your behalf in parallel. It has Workspaces, Notes, Canvases, and Reports. And perhaps most confusing, something called Exhibits, which I would quickly find to be quite useful.

There are some complexities, too, which is also common with AI. Clairvoyance doesn’t do anything by itself, you have to bring your own AI, which will be something you pay for, like Claude Pro. More specifically, it needs a CLI, so what it’s really using behind the scenes is Claude Code, Codex CLI, Copilot CLI, or Gemini CLI.

Clairvoyance isn’t broadly available yet, but you can sign up for a waitlist or get early access through Object Desktop if you’re already using that. Brad got me in, of course, and he was nice enough to do a bit of hand holding the other day so I could get started more easily and he could see what the experience was like for someone who wasn’t living in this tool every day.

I was immediately successful with Clairvoyance in ways that I had never experienced before. I can’t explain this, and I want to emphasize that this tool is not only for developers, anyone can use it for projects of almost any kind, big or small. Brad’s daughter uses it to create one-off apps that help her prep for tests in school. You might use it to do market research, prototype user interfaces, visualize data, or just about anything else.

But I am focused on programming. On first run, I did choose one of the suggested starter projects, and Clairvoyance quickly spun up a working Asteroids clone that looked and played wonderfully. But then I went right for WinUIpad, using my cloned project source code.

I will describe what I did in far more detail in the next installment, but I would like to at least give you an idea of what this is like.

First, you create a Workspace, which will be a folder somewhere on the PC, meaning it can sync between PCs if you use OneDrive or whatever else. Because I needed to work on an existing codebase, I just pointed the Workspace at the existing folder.

Then, I just asked it to evaluate the codebase and tell me about any issues I should fix and any other suggestions it might have, similarly to how one might use a tool like Cursor. It churned for a bit and then spit out a detailed report, organized by severity, with the most serious issues at the top. And then in that disarmingly familiar manner that AI has, it recommended the three issues it felt were most important.

If I’ve learned anything about AI and coding, it’s that breaking down problems into individual units is key because the thing is going to change your code, and if it changes too much, in too many different places, keeping track of it all will be difficult. So I let it go for the three biggest issues, but one at a time. One of them was fascinating to me because I had identified the problem and put some notes to myself in the code, but I had never solved it.

Clairvoyance solved it. In time, it solved every problem it found, as well as every feature request I suggested independently. But starting small, I stepped through those major issues first, one at time. Which it fixed. Each time.

I do have some questions about how one would typically use Clairvoyance, in this case meaning, I code in Visual Studio and it’s not clear what it means to use these things side by side. (Many, including developers, will use Clairvoyance as a standalone app, I suspect.) But after each change, most of which took just several seconds, I would switch back to Visual Studio, compile and run the app to ensure there were no issues, and then look at the code changes there. Unlike with my previous AI pair programming experiences, it has never introduced any problems of its own. And everything it’s done works.

Brad recommended a workflow I would never have come to on my own. When I want to add a new feature, for example, have it implement the Recent Files sub-menu under Files, a feature I had started adding to .NETpad but had not yet attempted with WinUIpad, I could ask it to create an Exhibit with four or five example implementations that I could compare and then choose from. This is fascinating to me.

For my first attempt, the Recent Files implementation, Clairvoyance created an infographic-like presentation detailing four options with the pros and cons, and complexity rating, of each. The simplest is the one I would have created myself, a string collection in the app settings, and the most complex was a SQLite database-based solution that is far too complex for this app. So I asked it to go ahead and implement the first, simplest solution.

I wasn’t expecting much. I have far too many disappointing experiences with AI pair programming behind me to think otherwise. But Clairvoyance quickly churned through the work, updated three files in the project, and declared that it was done. This didn’t seem possible, it had been perhaps a minute, probably less. But I opened Visual Studio, recompiled the project, and ran the app. There was a Recent files menu and an associated Clear recent files menu. I started opening documents. I cleared the menu. Ran and re-ran the app. It works.

That is rather incredible. I know it may not seem transformational to some, it’s just a single feature with a few menus. But in my experience with the Windows App SDK, doing anything like this is like pulling teeth. Clairvoyance made it look easy.

I went on to step through the rest of the changes and code improvements that Clairvoyance recommended. I will soon start adding features I had chopped out of WinUIpad so I could just get to something that worked. I will add new features like the AI writing assistance and spell-checking functionality I never got to. And then, I think, I will finally take on my version of Ahab’s white whale. I will see whether Clairvoyance is good enough to help me finally add multiple tabs and documents to this app. Or maybe start over with something like that from scratch.

We’ll see. But this is exciting. This is more success in a short period of time than I saw over many, many months previously. I have yet to run into any snags, or problems of whatever kind. It has to happen eventually, I know. But so far, so good isn’t an adequate term for what I’ve experienced here. This is impressive.

More soon.

Gain unlimited access to Premium articles.

With technology shaping our everyday lives, how could we not dig deeper?

Thurrott Premium delivers an honest and thorough perspective about the technologies we use and rely on everyday. Discover deeper content as a Premium member.

Tagged with

Share post

Thurrott