I've thought about creating a Python 3 + Qt 5 interface for
ngspice (open source). That is possible only because
ngspice provides a command line/file-based interface.
Many applications, including Altium Designer 19 and 20, and KiCad 7 and later, do support it already.
KiCad 7 and later have pretty good interface for ngspice, but it could be easier. In particular, I miss the ease of creating new symbols I have in
EasyEDA; and I'd prefer an easy to manage library format, preferably copying both the symbols and the NGSPICE/PSPICE/LTSPICE snippets, instead of file references, for ease of maintenance. And being able to run more than one simulation (based on different schematics) at a time, of course.
Alas, my own user interface preferences seem weird to others, so doing that just for myself isn't worth it. I can live with KiCad's oddities and occasional crashing; I'm just a hobbyist on the electronics side. If I were to actually create such an application, I'd need to see and understand the actual workflows of a few different professionals and a couple of hobbyists, as I
always use need that kind of information to construct proper user interfaces (except for examples and throwaway demos I've shown in other threads, of course). Yet, professionals are hung up on LTspice, and don't seem interested in ngspice at all.