Textual is actually a really quick way to make interactive UIs
📢🎙️Could an #LLM create a full Domain-Specific Language? Can you #vibe your new #DSL? Including a #metamodel, a #textual and a #graphical #syntax?
I tried to answer these and other questions as part of my #talk: “Who will create the languages of the future?” at #OOPLE25.
As an experiment, I used Cursor + Claude to generate a DSL to create #funding.yml files (used in open source projects to specify the management of sponsorship money).
See how it went (and the reflections the experiment triggered!) ⬇️⬇️
https://modeling-languages.com/vibe-dsling/
(thanks to all that came for the very interesting questions and discussions 🙏)
A few weeks ago I did a podcast with Software Engineering Radio.
Here it is...
I haven't listened to it, as I get creeped out by my own voice. 🤷♂️
https://se-radio.net/2025/05/se-radio-669-will-mcgugan-on-text-based-user-interfaces/
I've just released v0.8.0 of Braindrop, my #raindrop #bookmarking application for the #terminal. This version adds the ability to rebind application commands.
Next I should do some docs so it's obvious how.
Trying #Textual (https://textual.textualize.io/) for the first time for some work stuff. It seems fun!
I've released Ganglion. A web server which can publish any number of Textual apps. 🦾
This is good example of a high performance Python async application. Worth a peruse of the code, even if you aren't a Textual dev.
I've released the first version of complexitty: a simple #Mandelbrot set explorer for the #terminal -- it's the successor and replacement for `textual-mandelbrot`. More features to come.
Finally getting around to writing some actual documentation for textual-canvas: https://textual-canvas.davep.dev/
(and also tweaking the library and tidying some things up)
@b0rk Terminal emulators are much more now than just ANSI sequence interpreters, and now include mouse-event handling, enabling TUI programs with mouse support for scrolling, scrollbars, selection, etc. For those of us who thought that ANSI escape sequences for colorizing output and defining scroll regions were the ultimate terminal hack 40 years ago, these modern TUI's are amazing! Go to https://textual.textualize.io/ to see a Python library that enables these GUI-in-the-terminal-console apps #textual
Recently I've been making some updates and improvements to Hike, my #markdown viewer for the #terminal. I've now also started working on some proper documentation for it: https://blog.davep.org/hike/
I have to _blame_ @willmcgugan for rediscovering the power of the :terminal:
His amazing work with #Rich and #Textual for :python: got me to realize how much has happened since GUI and mouse took over the world.
This year it all begins to come together to form a good base with #ArchLinux :archlinux: #Ghostty 👻 #Starship 🚀 #Tmux and #Neovim :neovim: to really get going with.
Working on rewriting the character creation for Sword for Hire. The main adventure depends on the Curses termcap library, but there's no reason for the character creation and town map to be limited like that. This uses the Textual UI package, which tries to emulate a web page in ASCII. #TunnelsAndTrolls #Textual #SwordForHire
I've released v0.3.0 of AgiNG, my #NortonGuide reader for the #terminal. The main addition in this release is searching.
See https://blog.davep.org/2025/03/22/aging-0-3-0.html for more details.
10 minutes of work tweaking a preexisting program and I now have a functional archive file browser in the terminal 🎉
Stuff like this is what makes working with Python (and especially Textual https://textual.textualize.io/) enjoyable!
What is this? An API client for ants??
With the right config you can get super compact!
Compact mode is working nicely with different themes, horizontal mode, and jump mode.
I also added a subtle background colour to indicate which tab has focus-within - something that I lost by hiding the tab underlines.
#python #OpenSource #programming #software #unix #terminal #textual
Just released v0.2.0 of AgiNG, my #NortonGuide reader for the #terminal. This adds a wee bug fix and adds more guide directory management support. https://github.com/davep/aging
Also, fun fact: if you set up textual-serve you can use this as a browser-based Norton Guide viewer.