Session Management: Redux #12571
Replies: 1 comment 1 reply
-
Agent knowledge and a browser would never be built in anyways. Its already been noted in many other discussions ghostty will not get built in AI features if you really need that use a separate terminal like warp or once a plugin system exists (if ever) build them into ghostty as a plugin. A terminal isnt a browser that would never be added, there are a few TUI based browsers that exist that is where a browser would exist not at the physical terminal emulation level.
From quick thinking this only seems like an AI feature so again it would not be added.
What is resurrection? Sounds alot more like #2353 to me if you mean setting up some initial state of tabs / launching programs.
thats specifically a tmux (and maybe zellij) problem because they eat every escape before the real terminal if session management is built in there is no second layer eating everything. Foot is already a server / client architecture from my understanding, if there is no middle level then the cost isn't really there besides a minor slowdown of however the client gets the data from IPC.
I have never heard of a real usecase of what a project is outside of AI driven workflows except this below. Things can be their own features that don't have to be related to sessions or scripting in any form what you are asking for to me seems covered all by existing discussions.
Since it seems you are already on macos applescript stuff can do quite a bit now perhaps try that out before saying there isn't anything built in yeah its not cross platform but it exists for users today.
While ghostty is cross platform the number of users that actually use ghostty on both of the supported platform is very low so yeah cmux does just work for alot of mac users since they never will or want to use linux so im not sure this is a extremely convincing argument
I would like to point out ghostty is FOSS. Where the maintainers work on what they want and right now sessions / more scripting capabilities is less of a priority to the maintainers from my understanding. Mitchell for example is highly focused on Ghostty is also in the process of migrating from github so that is a priority right now
I'd highly recommended that you have a much more concrete idea of how the implementation looks and how it can be split up into pieces otherwise there is almost a 100% chance it will be rejected. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I think the creation of tools like cmux really shows the need to prioritize #3358. Basically, cmux is a drillbit people are using, I suspect, to whip eggs; complete overkill. What many of us need is simple session management wrapping ghostty. Socket connections, ssh sessions, agent knowledge, fancy sidebar, built-in browser, etc. all being really neat features, they aren't strictly necessary so solve a vast many of the practical workflow needs. I think this feature could be taken on very subtly to start.
At the minimum, one ghostty window with cli / palette commands to create, list, and switch to sessions, each session being a running emulation instance. Being able to fire and subscribe to notifications from these sessions would be great, but I really don't think it is critical. I also think users picking up tools like cmux to satisfy this paltry need is not good. If you need session management, but don't need a browser, claude hooks, or a sidebar, why should somebody switch to a single-platform tool? It doesn't make sense.
I agree with @mitchellh and @kovidgoyal that a multiplexer is not the best solution. I am a happy zellij user when I'm running ghostty, but it is a solution that comes with its own problems.
I understand we already have a topic on the matter #3358, but we need to be able to talk about this, I believe.
My specific usecase may be helpful to specify. When in Wezterm using the built-in muxing or in Ghostty using Zellij, I have one workspace per git repository. In each of those I have some terminal tabs, one neovim server instance, one lazygit instance, one yazi instance, and a few others. Each isn't always open, but I use switch-to-or-create tooling for those. I typically need some combination of those while working across projects. I don't care about session resurrection (though nice-to-have), but I do care about project isolation. There is no good way to do that currently. The cost of cmux is less portability and too many features that are moving quickly. The cost of a multiplexer is well-known; less actually terminal features like image support, performance cost, more complex interactions, etc. There must be others that would benefit from a very simple session implementation; we can tell by the counts on #3358.
One alternative considered is a personal tool for tracking ghostty windows to just use one window per project, then using this tool to switch to this window. That is a decent option, but not a great one. It is doable as a bolt-on but selecting and raising the correct window can feel fragile across systems, and a built-in method would just be superior.
I understand if this is squashed as a duplicate immediately, but I thinking killing the discussion and relying on emoji responses on a feature this popular is maybe less productive. Maybe I'd be willing to pick up and work on this feature, if enough agree that the simple approach is a good start.
Beta Was this translation helpful? Give feedback.
All reactions