Quickstart
Welcome to the Quickstart Guide for Wave! Here, you’ll find everything you need to get Wave installed on your system, set up your environment, and dive into the basics of using Wave to enhance your command line experience.
Installation
- There are two ways to get Wave:
- Download Wave and drag it into your Application folder.
- For Homebrew users, run
brew install --cask wave
- If using brew, get brew commands to work by adding the shellenv command to your .bashrc or .zshrc, e.g.
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.bashrc
- Download the appropriate package for your system.
- Install the package using one of the following methods.
.deb
To install Wave Debian-based systems (Ubuntu, Debian, etc.), use one of the following commands.
sudo apt install ./Wave-linux-amd64-<version>.deb
or
sudo dpkg -i Wave-linux-amd64-<version>.deb
.rpm
On RPM-based Linux distributions (Fedora, CentOS, etc.), Wave can be installed using the rpm
command (or dnf
in Fedora).
sudo rpm -i Wave-linux-x86_64-<version>.rpm
or
sudo dnf install Wave-linux-x86_64-<version>.rpm
.pacman
For Arch Linux and derivatives, Wave can be installed using the pacman package manager.
sudo pacman -U Wave-linux-<arch>-<version>.pacman
.AppImage
AppImage allows you to run the Wave application on any Linux distribution without installing it.
First, make the AppImage file executable
chmod +x Wave-linux-x86_64-<version>.AppImage
- Next, Run Wave
./Wave-linux-x86_64-<version>.AppImage
- Download the
.zip
Linux package for Wave. - In your terminal, navigate to the location where you want to install Wave. Then, run the following commands to create a folder and extract the contents of the
.zip
file.
mkdir wave
unzip Waveterm-Linux.zip -d wave
- Run the application:
./Wave
Optional:
You can create a .desktop
file, allowing you to launch Wave directly.
After doing the above steps, create a file named Wave.desktop
, and add the following, modifying the Exec
and Icon
paths to point to your Wave installation:
[Desktop Entry]
Type=Application
Name=Wave
Icon= /path/to/Wave-linux-*/resources/app/public/waveterm.icns
Exec=/path/to/Wave-linux-*/Wave
# setting this to true will launch an extra terminal to run the Wave command
Terminal=false
Run desktop-file-validate Wave.desktop
to validate that the desktop entry is correct, then run sudo cp Wave.desktop ~/.local/share/applications/Wave.desktop
to copy the entry into your application list.
After restarting your desktop environment (or your computer), Wave should be visible in your desktop application list. You can now launch Wave directly from your desktop environment.
The .desktop
file scheme is supported by the most commonly used desktop environments such as GNOME, KDE, XFCE, etc. If you encounter issues, you can get help in our Discord or by opening an issue on Github.
Wave has support for WSL, tested on Ubuntu and Kali distros
- Download the
.zip
Linux package for Wave.- In the terminal, use
wget <DOWNLOAD_URL>
- In the terminal, use
- Navigate to the location where you want to install Wave. Then, run the following commands to create a folder and extract the contents of the
.zip
file.
mkdir wave
unzip Waveterm-Linux.zip -d wave
- Change to the Wave directory
cd wave
- Run the application:
./Wave
if you run into issues, try running the following 2 commands:
sudo apt install libgtk2.0-0 libatk1.0-0 libatk-bridge2.0-0
libgdk-pixbuf2.0-0 libgtk-3-0 libgbm-dev libnss3-dev libxss-dev
And
export DISPLAY=:0
Get Started
You type commands into the input box at the bottom of the screen like normal, and when you hit [return] the command will be executed. You’ll notice that each command is run in its own block. The block groups the command with its output in the terminal screen. The block will expand to fill the screen as more output is received.
Running Commands
The block headers give information about the command and its status. You’ll see the line “number” (useful for referring to commands from the CLI), a status indicator, and a timestamp. The next line shows what server the command was run against (local means your local machine), the current working directory, and then the command. When you’re in a git directory or a python venv you’ll also get additional status showing the git branch or the environment name.
When a command is running, you can interact with it like normal when the command has focus. When commands are initially run they get focus by default, and when they terminate they give focus back to the input box. You can easily shift focus between your commands or the input box using the mouse or “Cmd-I” to focus the input box, and “Cmd-L” to focus a command line. Note that Cmd-I will work in any context to focus the input box. To shift the focus between commands you can use the mouse or “Cmd-UpArrow” / “Cmd-DownArrow” (or Cmd-PageUp/Cmd-PageDown) will move the focus between commands. When the input box has focus, pressing “return” will always scroll the screen to the bottom.
Workspaces and Tabs
So far we’ve been working in one tab. You can easily create a new tab by clicking the “+” in the tab bar, or by pressing “Cmd-T”. Switching between tabs can be done with the mouse or by using “Cmd-[digit]” to switch to the nth tab. Cmd-LeftArrow and Cmd-RightArrow will also work to change tabs.
Wave also has the concept of workspaces. A workspace is just a set of tabs. You can see your workspaces listed in the left column of the UI. You start with 1 workspace named “default”. You can easily create a new workspace by clicking on the ”+” left bar next to the label “Workspaces” or by using a “slash-command” (we’ll discuss those later). Each workspace is independent from the others. You can use workspaces to set up custom sets of tabs for different projects, common configurations, or different remote machines. In the future, Wave will support sharing workspaces with your team or having a joint shared workspace that everyone can view and contribute to.
Workspaces and tabs are persistent. The history and state of each tab is preserved across reboots, network disconnections, remote machine reboots, and time. Any command you’ve ever run in Wave will be remembered (unless of course you choose to delete it).