Introduction to Wave Terminal

Due to work needs, I have used many terminals, such as iTerm2, Warp, Tabby, Hyper, etc.

Recently, I researched Wave Terminal and found some highlights, so I’ll introduce it here.

https://framerusercontent.com/images/v4mqnli1KXaGOKANhD2O2OBRzk.png

Platform

Wave is a local terminal, not web-based, currently supporting.

  1. Mac (M series also supported)
  2. Linux
  3. Windows WSL (Windows is also supported!)

For the Mac version, it’s about 224MB, which is acceptable.

Free and Open Source

Wave is an open-source and free terminal. It has similarities with Warp, such as block mode display, and is therefore also known as an open-source free Warp alternative.

Usage

Here’s how to use it. First, Wave doesn’t require a login, which is a 👍 point.

Connection

To log in to a remote machine, first create a connection.

https://static.1991421.cn/2024/2024-07-21-230850.jpeg

After creating, you can try to connect. If prompted to install remote scripts, click install, and once the connection is successful, you’re good to go.

Regarding connection configuration, the path to delete connection configurations is too cumbersome. Currently, you need to: select connection - delete - confirm deletion.

Workspace

In Wave, click on a workspace, then click Create New Tab, and choose the terminal connection to log in to the target machine. You can also customize the theme color of the session tab.

Workspace here is a form of session grouping. In practice, it can be divided into production/development/testing, etc., to avoid operational errors.

Command History

Wave records all commands executed in the terminal, including the command content, terminal connection, execution time, and more.

https://static.1991421.cn/2024/2024-07-21-225300.jpeg

In addition to searching commands on the history page, you can also summon history reminders in actual terminal sessions with hotkeys for quick access.

The history is recorded in the local App database at $HOME/.waveterm/waveterm.db.

Commands in the history can be summoned and executed in any terminal session. You can choose commands from the history of the current machine or any command from across machines.

File Edit

  1. Wave is weak in file-related operations. The only support is to input codeedit filename in the terminal to invoke file editing. You can set it to split-screen or block display mode.

  2. It does not support the lrzsz command for file upload/download, nor does it provide visual file management.

https://mintlify.s3-us-west-1.amazonaws.com/commandline/images/codeedit.gif

Others

The above are the core functions of Wave. Besides, Wave also provides some common features, such as AI and command completion.

Wave AI supports local AI models and cloud models (only supports OpenAI).

Usage:

  1. Right-side AI chat entrance
  2. /chat command in terminal sessions
  3. AI icon in command blocks

Regarding command completion, I find it quite useless at the moment, so I won’t introduce it.

OK, that’s all for Wave’s basic functions. Now for my personal view.

Advantages and disadvantages

disadvantages

As stated in the Wave open-source project’s issues, there are many problems in actual use, such as ineffective connection configuration deletion, ineffective configuration editing, and failure to install remote shell on remote machines, etc. You will encounter many issues in actual use. However, since the Wave open-source project started on Jun 5, 2022, we need to give it more time to develop. Its version number is not yet v1.0. Since it’s an open-source project, you can contribute as well, be it through issues or PRs.

Advantages

  1. The workspace organization is very innovative.
  2. The terminal supports input commands to operate features, such as /chat for AI Q&A, and/codeedit for file editing.

At the end

  1. Wave is still very immature. For users who frequently use terminals, I do not recommend using them because the issues are so many that they can hinder usage.

  2. For infrequent users who can tolerate the issues, you can use it. After all, it is an open-source free terminal with Warp’s block display feature.