top | item 38588790

Waveterm

144 points| indigodaddy | 2 years ago |waveterm.dev | reply

111 comments

order
[+] JimDabell|2 years ago|reply
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?

[+] TobyTheDog123|2 years ago|reply
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.

[+] jay-barronville|2 years ago|reply
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.

[0]: https://sw.kovidgoyal.net/kitty

[+] behnamoh|2 years ago|reply
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.

[+] esafak|2 years ago|reply
2. I agree that the UI needs a lot of polish. I would get a designer if you don't have one, and have another designer critique it if you do.
[+] rogual|2 years ago|reply
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?

Maybe it's an idea whose time has come.

[1] https://github.com/unconed/TermKit

[+] enriquto|2 years ago|reply
> 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!

[0] https://en.wikipedia.org/wiki/Xterm

[1] https://en.wikipedia.org/wiki/Sixel

[+] sime2009|2 years ago|reply
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.

[+] FridgeSeal|2 years ago|reply
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.
[+] getoffmyyawn|2 years ago|reply
I don't know who this tool is for but it is certainly not designed for me. Unrelated but I recently learned the magic of

    vim scp://1.2.3.4/file_to_edit
[+] krzyk|2 years ago|reply
Reading the page and encountering "web standards" got me thinking (red flag #1), why would I care for web standards in a terminal?

Another red flag is bashing vim.

Final - looking at the code and seeing "electron".

[+] tssva|2 years ago|reply
"Another red flag is bashing vim."

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
> 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.

[+] sawka|2 years ago|reply
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.
[+] eternityforest|2 years ago|reply
It looks really nice!

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
Browser based terminals look like one of those bad ideas that people just refuse to give up on. Like singletons and graphical imperative programming.
[+] veidr|2 years ago|reply
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).

[+] rasse|2 years ago|reply
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"?
[+] junon|2 years ago|reply
Not to shill, but WezTerm can also do this and isn't built on web stacks, if anyone is looking for something similar.
[+] throwaway77384|2 years ago|reply
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...
[+] LectronPusher|2 years ago|reply
My first thought when seeing the screenshot was that it feels like it should just be a vscode extension.
[+] lijok|2 years ago|reply
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?

[+] behnamoh|2 years ago|reply
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.
[+] sawka|2 years ago|reply
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.
[+] rsanek|2 years ago|reply
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).

[+] lxe|2 years ago|reply
Why do I need to agree to the terms of service to run a terminal program?
[+] wredue|2 years ago|reply
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.

[+] juunpp|2 years ago|reply
A terminal that streams telemetry. Just what we needed.

Get this BS out of here.

[+] k4runa|2 years ago|reply
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.

[+] FridgeSeal|2 years ago|reply
> voice-based computing like Star Trek.

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
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.
[+] platz|2 years ago|reply
Was using vim for quick edits on files instead of vscode a significant pain point?
[+] amadeuspagel|2 years ago|reply
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.)
[+] sgt|2 years ago|reply
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.

[+] wg0|2 years ago|reply
Actually - VSCode comes with a built-in Terminal that's also built using Electron and TS.

Never had any issues with it while using it as built-in Terminal from time to time.

[+] kstrauser|2 years ago|reply
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.
[+] dontlaugh|2 years ago|reply
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.
[+] hnlmorg|2 years ago|reply
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).

[+] frognumber|2 years ago|reply
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.

[+] api|2 years ago|reply
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.

[+] sawka|2 years ago|reply
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!

[+] joshstrange|2 years ago|reply
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.

[+] ytjohn|2 years ago|reply
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.