I tried different terminals and multiplexers for agent development: tty7, Warp, Herdr... Now my favorite is tty7. It does exactly what i wanted from a modern terminal, what Warp should have become.
If you squint, Godot has a cross platform hardware accelerated GUI. The editor is itself, in a sense, a Godot app and has builds for VR Headsets, Android, web apps, all the usual platforms. The extension api works pretty good too for Rust, and Rust itself has a fantastic cross platform and WASM story. It might be cursed, but it can get complicated stuff out the door and in anyone's hands fast.
edit: they also recently created libgodot, which flips the model. Your application owns and controls whatever components you want to pull from Godot. Being open source and relatively legible of a code base you could presumably strip out a lot you don't need.
Fyne.io in Go also doesn't want to do a browser, but that is basically how to build developer mindshare. (Kind of like deciding whether or not to implement a default data grid in a UI toolkit.)
Can you add a "why?" / "why now?" section?
Don't be another project that is a bunch of how that is leaving out to explain why it exists or exemplify what classes of problems it unlocks solutions for (applicability).
Yeah, the README doesn't have screenshots; but the docs site does - https://godot-pty.github.io/gpty/ - 1 for now, but each release's blog entry gets the main app page + one for any salient features.
I'll add that in; maybe defaulted to folded on the README, a gallery of app screens or snippets. I need to spend some time on the UX, but yeah, screenshots is something I should've also added to the README.
Godot is a pretty monolithic engine and I don't know if you can really compile it down to a reasonable size for non game use cases. The scripting language is pretty slow and I remember coding in C++ was painful even after 4.0. I think you're better off with Raylib, Bevy or plain SDL.
This is just straight up false. You can compile subsets of the engine even in Godot 3. Godot 4 has made this a first class citizen.
C++ coding is just fine. It's not painful. It can be a bit of boilerplate to expose c++ member fields and functions to the rest of the engine but you get some great power out of that. Just use compile your own module right into the engine. Don't use gdnative.
As someone who's codes a lot of c++ in Godot I really am not sure what your talking about here.
SDL isn't even in the same dimension of usability compared to the Godot editor.
Thanks, wasn't familiar with these, I'll look into them though the project direction is unlikely to change to swap Godot out. As of now, the binaries are in the 60-80 MB range; so not tiny - but not something I'd consider massive for what it is.
Usage has been relatively snappy (could be better, I suppose, I need more time). Definitely not sluggish.
A concern is that RAM usage is on the higher side (this is something I'll look at on the next release).
While I appreciate the creativity around using a game engine for non gaming applications, this does not seem like a particularly good fit.
If most of your problem is 2d window/text stuff, the web browser is probably the best foundation to work with. UI and hud functionality in COTS game engines is light years behind what chromium and friends can do today.
Agree on Chrome being top-dog in this space. Electron would've been the easy (pragmatic?) choice. But the design decision was to use Godot and not create yet-another-Chrome-Electron app. It's certainly not pretty to look at in its current state.
This is something I'm mainly working on it on my free time so figured why not see how far I could push things.
I'll be honest with you: I'm not going to use what you have made. I don't mean that offensively, it's just not what I want to use for my workflow. Keep making tools you enjoy using though. That's the spirit of the computer.
That said, for your browser problem, what if you embed the browser inside of godot? Chromium embedded framework does this. I was able to get this to work for me to see Chrome inside of my godot exported projects. https://github.com/dsh0416/godot-cef I believe this is only for desktop exports though, no html5/mobile builds.
Only downside is you have to use Chromium ;)
* putting a quick note in here-- godot-cef is not my project
Thanks for your honest response. It's okay. At its core, it's a fun hobby/side project, not my day job. And I like it. But I'm realizing maybe this wasn't the platform to post on.
The browser is probably a non-issue, more a passing thought now. I definitely do not want to bundle or bring in Chromium. If it was a deal-breaker, I would've just gone the Electron route. Appreciate you sharing your WebView extension though, looks neat!
No, this is the platform to post on. You hacked something neat together and posted about it. I really liked how you made it agent first and gave it an MCP server so you can give any agent a tmux like multiplexer to use as subagents.
So many times I see projects here I don’t really need, but I always learn something from their readme and code. A lot of time I learn something I can apply to my project. In this case, I use Node-PTY for my terminal control plane but when I run more than 50 agents, it crashes. Maybe using your pty will let me run more agents.
Thank you for your kind words, that's generally how I see other's projects too.
I haven't performance or load tested, it's on the backlog; so I'd be curious on whether this works for your use-case. And if not, feel free to log an issue!
The concepts/reg-ex redirect is how I was imagining the autonomous agent automation. It does need to be fleshed out a bit more, but essentially, it was an easy way to let a process to know what's happening in another process so it could react appropriately. The e2e tests are a good use-case, but not something I've looked into yet (in theory, the framework should hold up for it)
Original intent was just a hobby/side project. As it grew, I thought maybe posting about it would be alright in case people find the idea interesting.
lmao how is this on the front page at the 2 spot? People upvoting based on seeing buzzwords I assume? It's cool that small projects can get recognition here but this is not useful software
This is such a cursed combination... I really don't understand what you get from Godot that benefits you for building a TTY "multiplexer."
Wildly vibe-coded to the extent that it's more misguided than Doom on a pregnancy test...
Also looking at OP's notes here, there doesn't even seem to be a need for this to exist, "FPS counter" ..? Perhaps, I don't know, fake terminals on a spaceship or something. Yueash...
a note about "Doom on a preganancy test". It wasn't actually running on the pregnancy test. It was displayed on the tests 1 color LCD screen, but everything else was different hardware. It was a test of hacking the display and what it was capable of in cheap disposable device, not the processing power of the electronics in the test.
edit: they also recently created libgodot, which flips the model. Your application owns and controls whatever components you want to pull from Godot. Being open source and relatively legible of a code base you could presumably strip out a lot you don't need.
I'll add that in; maybe defaulted to folded on the README, a gallery of app screens or snippets. I need to spend some time on the UX, but yeah, screenshots is something I should've also added to the README.
C++ coding is just fine. It's not painful. It can be a bit of boilerplate to expose c++ member fields and functions to the rest of the engine but you get some great power out of that. Just use compile your own module right into the engine. Don't use gdnative.
As someone who's codes a lot of c++ in Godot I really am not sure what your talking about here.
SDL isn't even in the same dimension of usability compared to the Godot editor.
Usage has been relatively snappy (could be better, I suppose, I need more time). Definitely not sluggish.
A concern is that RAM usage is on the higher side (this is something I'll look at on the next release).
If most of your problem is 2d window/text stuff, the web browser is probably the best foundation to work with. UI and hud functionality in COTS game engines is light years behind what chromium and friends can do today.
This is something I'm mainly working on it on my free time so figured why not see how far I could push things.
That said, for your browser problem, what if you embed the browser inside of godot? Chromium embedded framework does this. I was able to get this to work for me to see Chrome inside of my godot exported projects. https://github.com/dsh0416/godot-cef I believe this is only for desktop exports though, no html5/mobile builds.
Only downside is you have to use Chromium ;)
* putting a quick note in here-- godot-cef is not my project
The browser is probably a non-issue, more a passing thought now. I definitely do not want to bundle or bring in Chromium. If it was a deal-breaker, I would've just gone the Electron route. Appreciate you sharing your WebView extension though, looks neat!
So many times I see projects here I don’t really need, but I always learn something from their readme and code. A lot of time I learn something I can apply to my project. In this case, I use Node-PTY for my terminal control plane but when I run more than 50 agents, it crashes. Maybe using your pty will let me run more agents.
I haven't performance or load tested, it's on the backlog; so I'd be curious on whether this works for your use-case. And if not, feel free to log an issue!
Original intent was just a hobby/side project. As it grew, I thought maybe posting about it would be alright in case people find the idea interesting.
So we get an abundance of (useless) software.
Wildly vibe-coded to the extent that it's more misguided than Doom on a pregnancy test...
Also looking at OP's notes here, there doesn't even seem to be a need for this to exist, "FPS counter" ..? Perhaps, I don't know, fake terminals on a spaceship or something. Yueash...
There's a new one every day posted on r/tmux