Will McGugan
@willmcgugan.bsky.social
CEO / Founder of https://textualize.io Hyperborean Python expert, author, humanist, husband, sometimes wildlife photographer. Carbonara aficionado. He/him.
Put some final touches to Toad's permission request screen.
When the agent has an update, it pops this screen up. You can review the diffs in unified or split view, then decide if you want to accept or reject the changes.
Watch this space!
When the agent has an update, it pops this screen up. You can review the diffs in unified or split view, then decide if you want to accept or reject the changes.
Watch this space!
September 22, 2025 at 9:05 PM
Put some final touches to Toad's permission request screen.
When the agent has an update, it pops this screen up. You can review the diffs in unified or split view, then decide if you want to accept or reject the changes.
Watch this space!
When the agent has an update, it pops this screen up. You can review the diffs in unified or split view, then decide if you want to accept or reject the changes.
Watch this space!
I've been working on a new fuzzy search file picker for Toad (my terminal AI interface).
It is similar to the other terminal based agentic coding tools, but I want to address a few UX issues, and hopefully make it prettier in the process!
It is similar to the other terminal based agentic coding tools, but I want to address a few UX issues, and hopefully make it prettier in the process!
August 25, 2025 at 9:07 PM
I've been working on a new fuzzy search file picker for Toad (my terminal AI interface).
It is similar to the other terminal based agentic coding tools, but I want to address a few UX issues, and hopefully make it prettier in the process!
It is similar to the other terminal based agentic coding tools, but I want to address a few UX issues, and hopefully make it prettier in the process!
I don't see many people customizing Rich tables. And it saddens me!
June 24, 2025 at 8:43 AM
I don't see many people customizing Rich tables. And it saddens me!
Textual inherited its markup from Rich, and suffers from the same gotcha.
Consider this:
f"Hello [b]{name}[/b]"
If 'name' contains markup tags like [blink], then they will be treated like tags.
Textual's new Content markup fixes this.
Consider this:
f"Hello [b]{name}[/b]"
If 'name' contains markup tags like [blink], then they will be treated like tags.
Textual's new Content markup fixes this.
February 4, 2025 at 12:53 PM
Textual inherited its markup from Rich, and suffers from the same gotcha.
Consider this:
f"Hello [b]{name}[/b]"
If 'name' contains markup tags like [blink], then they will be treated like tags.
Textual's new Content markup fixes this.
Consider this:
f"Hello [b]{name}[/b]"
If 'name' contains markup tags like [blink], then they will be treated like tags.
Textual's new Content markup fixes this.
Did you know you can play a "game" on the Textualize website??
Go to textual.textualize.io
Scroll down.
Click Start
Click the app
Press G
Go to textual.textualize.io
Scroll down.
Click Start
Click the app
Press G
January 10, 2025 at 6:20 PM
Did you know you can play a "game" on the Textualize website??
Go to textual.textualize.io
Scroll down.
Click Start
Click the app
Press G
Go to textual.textualize.io
Scroll down.
Click Start
Click the app
Press G
I do believe I nailed text selection in Textual.
Coming to the next version...
Coming to the next version...
January 6, 2025 at 5:36 PM
I do believe I nailed text selection in Textual.
Coming to the next version...
Coming to the next version...
Some widgets are a special case when it comes to text selection.
The Digits widget displays a number with box characters. You can select digits as a whole, and when you copy them you get a readable string, and not a jumble of funny characters.
The Digits widget displays a number with box characters. You can select digits as a whole, and when you copy them you get a readable string, and not a jumble of funny characters.
January 3, 2025 at 3:49 PM
Some widgets are a special case when it comes to text selection.
The Digits widget displays a number with box characters. You can select digits as a whole, and when you copy them you get a readable string, and not a jumble of funny characters.
The Digits widget displays a number with box characters. You can select digits as a whole, and when you copy them you get a readable string, and not a jumble of funny characters.
Arbitrary text selection is working in Textual.
This was an *ordeal* to get working. A few more gray hairs in my beard from this PR.
This was an *ordeal* to get working. A few more gray hairs in my beard from this PR.
January 3, 2025 at 9:31 AM
Arbitrary text selection is working in Textual.
This was an *ordeal* to get working. A few more gray hairs in my beard from this PR.
This was an *ordeal* to get working. A few more gray hairs in my beard from this PR.
Selecting arbitrary text is a surprisingly gnarly problem.
Here it is working in Textual with the simple case of two vertical stacked widgets.
Here it is working in Textual with the simple case of two vertical stacked widgets.
December 21, 2024 at 2:14 PM
Selecting arbitrary text is a surprisingly gnarly problem.
Here it is working in Textual with the simple case of two vertical stacked widgets.
Here it is working in Textual with the simple case of two vertical stacked widgets.