Looking at the screenshots, I find it really difficult to parse. Maybe if they simplified the prompt a bit it would be easier, but my focus is bouncing all around the screenshots trying to find the prompt. You’re typing in the centre of the screen not the left because of all that junk? What is the point in having status in the prompt if you control the window chrome and can put that status in a more convenient place?
It’s also kinda weird how they try to add styling everywhere possible… except remove the styling from the output of ls so you can’t distinguish between file vs directory, executable vs non-executable, symlink vs regular file, etc.
I really don’t understand what they are getting at with the copy either:
> The modern terminal that keeps your flow in line
> Keep development moving forward without the copy, pasting, saving, and exporting headache.
What copy, pasting, saving, and exporting headache are they talking about?
I thought it was just the marketing trying to show off too many features at once, and I'd really like a more workspace-centric approach to terminals, so I gave it a download -- unfortunately the actual UI is worse than the screenshots they show.
- Sidebar that is either HUGE (and branded) or nonexistent (I'd like to see something like Discord's approach here)
- Only UI settings are a font size selector
- The input and cwd are on different lines for some reason (though it shows huge helper text inline with the input)
- Weird borders and shadows on elements that are super jarring.
I haven’t tried this yet (so please take my commentary with a grain of salt), but my initial thoughts are: (1) it looks interesting, (2) it looks overwhelming (there’s a lot going on in those screenshots), and (3) it’s likely slow (I might be completely wrong).
To elaborate a bit…
1. I love good design work and well-designed (UI-wise) software, and it certainly looks like the creators of Wave Terminal have made that a priority.
2. UX-wise, there’s just too much going on. As someone who lives in my terminal (with the exception of browsing the web, I do virtually everything in my terminal), it’s the single most critical piece of software on my computer and it can never get in my way. I used the same terminal for many years and only switched to kitty [0] a couple years ago after testing it for months. In all of those years, every single terminal I tested managed to get in my way. Somehow, kitty manages to be packed full of features without ever—not even once—getting in my way, being slow, or freezing up on me.
3. Generally speaking, I think building on open web standards is a great thing and a plus. Unfortunately though, even in 2023, my experience has been that it’s really hard to build performant software meant to be run on native platforms using web technologies; the few who get this right—e.g., Figma—are anomalies and they generally invest an enormous amount of time and engineering capital into squeezing out as much performance as possible. As I explained in #2, for something as critical as my terminal, not being performant is simply not an option, so as much as I love the idea of building on open web standards, it actually scares me for software like this.
That said, I’m obviously judging before trying here, so I’ll make some time to test Wave Terminal.
Tried Kitty for a few months. Didn't like the developer's attitude when people raised concerns and asked for "tabs". He said "just go use tmux on top of Kitty." I use tmux sometimes, but the idea that you have to glue together several pieces of software (each of which can break at any point) just to get basic functionality (like tabs that some people want) is insane.
I stopped using Kitty and switched over to iTerm2 and have been happy ever since. Most importantly, it allows me to set a custom keyboard shortcut to summon my terminal any time on macOS.
First time I saw an idea like this was with termkit [1], which I thought was great and was sad to see it didn't get continued development.
I really feel like we overlook the ways in which we limit ourselves by having our CLI interfaces be tied to a thing that emulates a terminal from the 80s.
The composability, scriptability, history, etc. of CLIs is great, but why should that preclude us from being able to quickly show a PNG or graph a function?
> we limit ourselves by having our CLI interfaces be tied to a thing that emulates a terminal from the 80s
> why should that preclude us from being able to quickly show a PNG or graph a function?
I'm confused by this comment. The quintessential "terminal from the eighties" is xterm [0], that exists today and supports all kind of graphics protocols, like sixel [1]. I use it everyday, and it is very handy to graph functions inline (via gnuplot) and to quickly show png files.
If anything, it is more "modern" terminals that lack these basic functionalities. Bu this is hardly a problem of being stuck with old technology. It is exactly the opposite!
TermKit was one of the inspirations for Extraterm ( https://extraterm.org/ ). It separates command output, allows for reuse of previous output, as well mixing content types.
The terminal VSCode has been picking up on these kinds of features lately. Now they can even "sticky" the previous command line at the top of the window when scrolling through long output.
It has taken a long time, but these ideas are slowing spreading around.
Terminal interfaces are devs due for an upgrade, but this doesn’t feel like a genuine solution to that, this feels like just try to pollute CLI land with the web-tech everyone already complains about.
The website in context of discussing their inline editor says, "Ditch vim for quick updates.". You seem to have a very low threshold for what is considered bashing.
> Reading the page and encountering "web standards" got me thinking (red flag #1), why would I care for web standards in a terminal?
In part, I assume that "powered by open web standards" is a euphemism for "built with Electron". It likely also speaks to its inline rendering support, its extensibility model, and its ability to leverage Monaco for code editing.
No offense intended to vim! I've been using vi for over 25-years, and I use emacs as my primary code editor. I love the terminal. That being said, it can be daunting to use vim on a remote machine when you're just getting started (think intro CS class). Knowing input modes, dealing with strange copy/paste behavior, and no vi configuration out of the box is not a good experience. With Wave you get an option -- if you like vim, great, use it, if not, you have an alternative.
This isn't really a terminal app at this point — it's more like a dedicated GUI for bash. While you can launch zsh from bash, then this app sees it as an infinitely-running subprocess of one command, which basically breaks this app's central feature (treating each command as its own entity). You can't use the app normally anymore, as now you are typing in the embedded subcommand rectangle and not the main CLI.
Sort of interesting, but not if you don't use bash (which I haven't for years, even on Linux, and almost no Mac user does either since Apple ditched it for zsh).
Neat, you can setup SSH connections as native terminal sessions.
When you type in your server info and click connect, this happens:
prompt> connecting to user@host...
prompt> error connecting to remote: mshell client not found
prompt> trying auto-install
prompt> installing mshell v0.3.0 to user@host...
Install something on a server without even asking? Also, what is "mshell client" or "mshell v0.3.0"?
That is my main issue as well. What is mshell? Why do I have to install it on my remote? Surely a dependency like that should be pointed out front and centre...
Is anyone actually looking to use one of these "style over substance" terminals? Sure they look pretty at first glance, but instill significantly more cognitive load on the reader to understand what information it's trying to present.
If people are really interested in using terminals like this, is there a business case to be made for incredibly visually-stylish programming languages as well?
I don't know. I feel like __some__ additional features in terminal would be nice. Like having the new vscode sticky scroll, incorporating a file manager like ranger into common terminals, being able to display long (CURL) commands in a more structured way (maybe a hierarchical tree that you can traverse), etc. I use Vim on Fish shell but it'd be nice to have Vim baked right in the terminal as well.
We aren't just doing style (although that's the headline feature). There are real underlying improvements as well by moving terminal/shell state local. Wave also gives universal history, persistent/resumable sessions, and metadata about commands (exit code, duration, cwd, environment, etc.). Lots more is possible (and will be shipped) in the future.
Looks very cool. Happy to see some innovation in a space where I feel some people are oddly resistant to change (as we see in a few cases in this thread).
The concept of workspaces makes alot of sense to me, and I love the UI for "you're connected to [x], do you want to change it?"
Not sure if this is just my computer but the `imageview` preview feature seems to have pretty high latency. Looking at over a second to preview a larger jpeg (12MB), which opens <300ms in Mac's Preview or Chrome. This issue is also there if I switch between workspaces (though it's not as bad as on first load).
This is not the terminal for me, but it looks like a pretty typical “as is, no warranty, no liability, telemetry is collected” TOS.
Even if I was on the market for a slow, space wasting terminal, it appears venture backed, so enshitification is guaranteed making this terminal unusable from the onset.
Something about this design make it seem more like a chat interface to the terminal, and after using ChatGPT the idea of chatting to a raw computer terminal instead of one way commands seems so obvious... the future interface for everything looks more and more like it's just going to be chat based, or like a Jupyter notebook, and that seems amazing to me... because it's getting us ready for voice-based computing like Star Trek.
I wish one day I can just turn on my computer and it does nothing but chat, no distracting apps or web browsers, just a minimalist chat interface.
It sure if you’re remembering most of Star Trek very well, the crew evidently, and demonstrably does more work on their consoles, which have actual UI’s.
Can you imagine trying to navigate to a sub directory and run a binary but your LLM-assistant has decided that it thinks you want to search for the file name on the web? And you can’t just do it yourself, because they’ve taken away the actual tools from you.
I think I’d actually go and become a goat-farmer at that point.
I found the prompt at the bottom irritating, and I still find it irritating for ChatGPT. But chat apps are probably the apps that normal people spend most of their time in, so for them it's intuitive.
Yes, for me an absolute killer feature. If a terminal had only that feature I'd switch to it, but Wave looks a bit too complex for me, since I mostly use VS code anyway. (I use micro, rather then vim, which is still not as good as VS code's editor, and also not fully consistent with it.)
It's Electron/TS based. I seriously doubt I can get used to using an Electron based beast for something as critical as a terminal.
This is the one power user app where speed is factually of utmost urgency, and latency is non negotiable. I also don't like it using tons of memory. While this may be possible with Electron from what I have heard, I have yet to have seen it. So generally I stay away.
I have to agree that this makes it a non-starter for me, for those reasons. If I ever, ever feel the tiniest bit of latency in a terminal, or see the slightest bit of slowness when some program dumps a bunch of text to stdout, it's failed its one job as a terminal. Nah, I don’t think this one’s for us.
I’m not a fan of Electron either, but I don’t see how latency and resource usage are any more important for a terminal than other apps, like editors or messaging apps or email etc.
I’m not the biggest fan of electron generally speaking but I don’t agree with your argument that Electron is too slow to work as a terminal emulator. Yes speed matters, but not nearly as much as you claim. Commands are run as separate processes so as long as the terminal reads from its PTY fast enough not to block those processes, which in all bar a very few edge cases it will be, you’re not going to experience any difference in performance.
Besides, if you’re concerned about millisecond latency, then the issue you actually have is with multimedia content being rendered in the terminal rather than Electon itself. So no terminal emulator of this generation is going to meet your needs irrespective of what technologies it’s built from.
Edit: downvoted for stating a fact. Maybe I should have also stated that I’ve also been working on this exact problem. In fact I’ve already got a shell that provides the CLI parts and been playing around with different technologies to handle the multimedia parts of the terminal emulation. It’s a harder problem to solve than people hand wave away when they complain about electron (hence why I only have a shell available for public use at this stage).
This looks nice, but I am very, very, very wary of adopting a tool like this without understanding the business model. There are two possible ways I've seen this go:
1) Build out a userbase. Once it's sufficient, monetize by screwing the userbase over in some way.
2) Take a bunch of VC money to build something awesome and open-source. Implode when there is no business model.
I'm glad this is open-source -- that's prerequisite -- but half of open-source is about transparency. The web site should clearly explain who built this, why, and how they plan to pay the bills.
This could be sleazy and evil or good. If it's good, explaining that generally provides business value, so most good players will do it proactively. A missing explanation is a yellow flag pointing towards "sleazy and evil."
I understand this is version 0, so please take this as constructive feedback and not an attack. This is my perception as a potential customer, and I hope it provides some value.
My concern with all attempts these days to reinvent the terminal is that they will phone home. This is a security and privacy nightmare considering what terminals are used to do, especially for devops working on production.
Any terminal app that has telemetry is a hard absolute no.
founder/creator here. unfortunately this got posted without us being able to provide the proper HN background information, but i'll try to respond here.
we are committed to open-source. we are committed to providing a free terminal (both free as in speech and free as in beer) to individual users. it doesn't cost us anything to have you run Wave locally, so we don't need to charge. plus if we did charge, open-source lets you fork it, remove the monetization code, and just run it anyway!
but, yes, we do plan on making money at some point. we plan on building out (completely optional, opt-in) team and enterprise features, like collaboration, sharing workspaces/tabs, sharing playbooks, shared history, multi-machine sync, and AI features. these would be paid upgrades. for us there is a clear line -- if you need an account and it touches the cloud, it is a paid. if it runs locally on your machine, using your own resources, it is free.
we plan to add this information to the project and the website!
This looks cool and I could get over my worries about Electron as a terminal except for the fact that it requires that you install something on the remote machine to get any of the benefits. I really don't like that it tried to do that before I had done anything but add a connection (there was no warning or indication that something would be installed).
Thankfully (?) FreeBSD is not supported so nothing was installed but I was still surprised that it even tried without some kind of prompting, ideally with "ask me each time" or "install automatically" options.
The terminal I use can't go dropping software on boxes I connect to (literally hundreds), I guess I'll stick with iTerm 2.
I liken this more to how vscode operates. I use that to develop remotely inside a vdi (or inside a local vm over ssh). It will install an instance of itself on the remote host and then it's like I'm operating "locally" out of that host. For work, I use one vm for all my development. For personal, I have a desktop computer I dedicate to development that I often access remotely via laptop/vscode.
But I wouldn't use vscode to connect to all the random hosts I need to throughout, especially if it's going to drop software.
Where I might consider a tool like is is if I connected to something along the lines of a jumpbox. Some primary host from which I launch most of my other work out of. Once it opens on that jumpbox, I could then ssh out from there. That would possibly make the session sidebar useless - unless I had a "jumpbox" per client/region/project.
[+] [-] JimDabell|2 years ago|reply
It’s also kinda weird how they try to add styling everywhere possible… except remove the styling from the output of ls so you can’t distinguish between file vs directory, executable vs non-executable, symlink vs regular file, etc.
I really don’t understand what they are getting at with the copy either:
> The modern terminal that keeps your flow in line
> Keep development moving forward without the copy, pasting, saving, and exporting headache.
What copy, pasting, saving, and exporting headache are they talking about?
[+] [-] TobyTheDog123|2 years ago|reply
- Sidebar that is either HUGE (and branded) or nonexistent (I'd like to see something like Discord's approach here)
- Only UI settings are a font size selector
- The input and cwd are on different lines for some reason (though it shows huge helper text inline with the input)
- Weird borders and shadows on elements that are super jarring.
[+] [-] jay-barronville|2 years ago|reply
To elaborate a bit…
1. I love good design work and well-designed (UI-wise) software, and it certainly looks like the creators of Wave Terminal have made that a priority.
2. UX-wise, there’s just too much going on. As someone who lives in my terminal (with the exception of browsing the web, I do virtually everything in my terminal), it’s the single most critical piece of software on my computer and it can never get in my way. I used the same terminal for many years and only switched to kitty [0] a couple years ago after testing it for months. In all of those years, every single terminal I tested managed to get in my way. Somehow, kitty manages to be packed full of features without ever—not even once—getting in my way, being slow, or freezing up on me.
3. Generally speaking, I think building on open web standards is a great thing and a plus. Unfortunately though, even in 2023, my experience has been that it’s really hard to build performant software meant to be run on native platforms using web technologies; the few who get this right—e.g., Figma—are anomalies and they generally invest an enormous amount of time and engineering capital into squeezing out as much performance as possible. As I explained in #2, for something as critical as my terminal, not being performant is simply not an option, so as much as I love the idea of building on open web standards, it actually scares me for software like this.
That said, I’m obviously judging before trying here, so I’ll make some time to test Wave Terminal.
[0]: https://sw.kovidgoyal.net/kitty
[+] [-] behnamoh|2 years ago|reply
I stopped using Kitty and switched over to iTerm2 and have been happy ever since. Most importantly, it allows me to set a custom keyboard shortcut to summon my terminal any time on macOS.
[+] [-] esafak|2 years ago|reply
[+] [-] rogual|2 years ago|reply
I really feel like we overlook the ways in which we limit ourselves by having our CLI interfaces be tied to a thing that emulates a terminal from the 80s.
The composability, scriptability, history, etc. of CLIs is great, but why should that preclude us from being able to quickly show a PNG or graph a function?
Maybe it's an idea whose time has come.
[1] https://github.com/unconed/TermKit
[+] [-] enriquto|2 years ago|reply
> why should that preclude us from being able to quickly show a PNG or graph a function?
I'm confused by this comment. The quintessential "terminal from the eighties" is xterm [0], that exists today and supports all kind of graphics protocols, like sixel [1]. I use it everyday, and it is very handy to graph functions inline (via gnuplot) and to quickly show png files.
If anything, it is more "modern" terminals that lack these basic functionalities. Bu this is hardly a problem of being stuck with old technology. It is exactly the opposite!
[0] https://en.wikipedia.org/wiki/Xterm
[1] https://en.wikipedia.org/wiki/Sixel
[+] [-] sime2009|2 years ago|reply
The terminal VSCode has been picking up on these kinds of features lately. Now they can even "sticky" the previous command line at the top of the window when scrolling through long output.
It has taken a long time, but these ideas are slowing spreading around.
[+] [-] FridgeSeal|2 years ago|reply
[+] [-] getoffmyyawn|2 years ago|reply
[+] [-] krzyk|2 years ago|reply
Another red flag is bashing vim.
Final - looking at the code and seeing "electron".
[+] [-] tssva|2 years ago|reply
The website in context of discussing their inline editor says, "Ditch vim for quick updates.". You seem to have a very low threshold for what is considered bashing.
[+] [-] CharlesW|2 years ago|reply
In part, I assume that "powered by open web standards" is a euphemism for "built with Electron". It likely also speaks to its inline rendering support, its extensibility model, and its ability to leverage Monaco for code editing.
[+] [-] sawka|2 years ago|reply
[+] [-] unknown|2 years ago|reply
[deleted]
[+] [-] eternityforest|2 years ago|reply
Ubuntu has made me slightly spoiled and less willing to try anything that's not packaged in the core repos, but maybe I'll make an exception.
VS Code's integrated terminal is pretty great though.
[+] [-] tonnydourado|2 years ago|reply
[+] [-] veidr|2 years ago|reply
Sort of interesting, but not if you don't use bash (which I haven't for years, even on Linux, and almost no Mac user does either since Apple ditched it for zsh).
[+] [-] rasse|2 years ago|reply
When you type in your server info and click connect, this happens:
Install something on a server without even asking? Also, what is "mshell client" or "mshell v0.3.0"?[+] [-] junon|2 years ago|reply
[+] [-] throwaway77384|2 years ago|reply
[+] [-] unknown|2 years ago|reply
[deleted]
[+] [-] LectronPusher|2 years ago|reply
[+] [-] lijok|2 years ago|reply
If people are really interested in using terminals like this, is there a business case to be made for incredibly visually-stylish programming languages as well?
[+] [-] behnamoh|2 years ago|reply
[+] [-] sawka|2 years ago|reply
[+] [-] rsanek|2 years ago|reply
The concept of workspaces makes alot of sense to me, and I love the UI for "you're connected to [x], do you want to change it?"
Not sure if this is just my computer but the `imageview` preview feature seems to have pretty high latency. Looking at over a second to preview a larger jpeg (12MB), which opens <300ms in Mac's Preview or Chrome. This issue is also there if I switch between workspaces (though it's not as bad as on first load).
[+] [-] lxe|2 years ago|reply
[+] [-] wredue|2 years ago|reply
Even if I was on the market for a slow, space wasting terminal, it appears venture backed, so enshitification is guaranteed making this terminal unusable from the onset.
[+] [-] juunpp|2 years ago|reply
Get this BS out of here.
[+] [-] k4runa|2 years ago|reply
I wish one day I can just turn on my computer and it does nothing but chat, no distracting apps or web browsers, just a minimalist chat interface.
[+] [-] FridgeSeal|2 years ago|reply
It sure if you’re remembering most of Star Trek very well, the crew evidently, and demonstrably does more work on their consoles, which have actual UI’s.
Can you imagine trying to navigate to a sub directory and run a binary but your LLM-assistant has decided that it thinks you want to search for the file name on the web? And you can’t just do it yourself, because they’ve taken away the actual tools from you.
I think I’d actually go and become a goat-farmer at that point.
[+] [-] amadeuspagel|2 years ago|reply
[+] [-] unknown|2 years ago|reply
[deleted]
[+] [-] platz|2 years ago|reply
[+] [-] amadeuspagel|2 years ago|reply
[+] [-] phplovesong|2 years ago|reply
[+] [-] sgt|2 years ago|reply
This is the one power user app where speed is factually of utmost urgency, and latency is non negotiable. I also don't like it using tons of memory. While this may be possible with Electron from what I have heard, I have yet to have seen it. So generally I stay away.
[+] [-] wg0|2 years ago|reply
Never had any issues with it while using it as built-in Terminal from time to time.
[+] [-] kstrauser|2 years ago|reply
[+] [-] dontlaugh|2 years ago|reply
[+] [-] hnlmorg|2 years ago|reply
Besides, if you’re concerned about millisecond latency, then the issue you actually have is with multimedia content being rendered in the terminal rather than Electon itself. So no terminal emulator of this generation is going to meet your needs irrespective of what technologies it’s built from.
Edit: downvoted for stating a fact. Maybe I should have also stated that I’ve also been working on this exact problem. In fact I’ve already got a shell that provides the CLI parts and been playing around with different technologies to handle the multimedia parts of the terminal emulation. It’s a harder problem to solve than people hand wave away when they complain about electron (hence why I only have a shell available for public use at this stage).
[+] [-] unknown|2 years ago|reply
[deleted]
[+] [-] frognumber|2 years ago|reply
1) Build out a userbase. Once it's sufficient, monetize by screwing the userbase over in some way.
2) Take a bunch of VC money to build something awesome and open-source. Implode when there is no business model.
I'm glad this is open-source -- that's prerequisite -- but half of open-source is about transparency. The web site should clearly explain who built this, why, and how they plan to pay the bills.
This could be sleazy and evil or good. If it's good, explaining that generally provides business value, so most good players will do it proactively. A missing explanation is a yellow flag pointing towards "sleazy and evil."
I understand this is version 0, so please take this as constructive feedback and not an attack. This is my perception as a potential customer, and I hope it provides some value.
[+] [-] api|2 years ago|reply
Any terminal app that has telemetry is a hard absolute no.
[+] [-] sawka|2 years ago|reply
we are committed to open-source. we are committed to providing a free terminal (both free as in speech and free as in beer) to individual users. it doesn't cost us anything to have you run Wave locally, so we don't need to charge. plus if we did charge, open-source lets you fork it, remove the monetization code, and just run it anyway!
but, yes, we do plan on making money at some point. we plan on building out (completely optional, opt-in) team and enterprise features, like collaboration, sharing workspaces/tabs, sharing playbooks, shared history, multi-machine sync, and AI features. these would be paid upgrades. for us there is a clear line -- if you need an account and it touches the cloud, it is a paid. if it runs locally on your machine, using your own resources, it is free.
we plan to add this information to the project and the website!
[+] [-] unknown|2 years ago|reply
[deleted]
[+] [-] joshstrange|2 years ago|reply
Thankfully (?) FreeBSD is not supported so nothing was installed but I was still surprised that it even tried without some kind of prompting, ideally with "ask me each time" or "install automatically" options.
The terminal I use can't go dropping software on boxes I connect to (literally hundreds), I guess I'll stick with iTerm 2.
[+] [-] ytjohn|2 years ago|reply
But I wouldn't use vscode to connect to all the random hosts I need to throughout, especially if it's going to drop software.
Where I might consider a tool like is is if I connected to something along the lines of a jumpbox. Some primary host from which I launch most of my other work out of. Once it opens on that jumpbox, I could then ssh out from there. That would possibly make the session sidebar useless - unless I had a "jumpbox" per client/region/project.
[+] [-] unknown|2 years ago|reply
[deleted]