Where is my data stored?

All of your data, including command history, environment data, and output and all metadata is stored locally on your machine in the ~/.waveterm directory. None of that information ever leaves your machine. In the future we may launch cloud features to support terminal sharing, shared workspaces, shared playbooks, and terminal backup/sync. These will opt-in. We’ll never release an update that moves your private data off your machine without your explicit consent.

What telemetry do you collect and send? Can I opt-out?

Wave telemetry is very minimal, anonymized, completely optional, and you can opt out at any time. In fact we allow you opt-out in the welcome screen when you first run Wave! If you’d like to change your telemetry setting after the first run, you can using the Wave settings screen (link in the bottom left of the application). Please consider leaving telemetry on to support us. We use the telemetry data to track general usage which helps us keep Wave funded and growing. You can find more info on our telemetry here.

What shells does Wave Terminal support?

We currently support bash and zsh. Your environment (including variables, functions, and aliases) is read from the standard bash and zsh startup files (.bash_profile and .zshrc). In order to customize Wave’s environment at startup Wave will set the environment variable WAVESHELL.

How do I specify SSH options such as PubkeyAcceptedKeyTypes?

Currently there is no way to specify these option in the Connections UI. A workaround is to add the options to your ~/.ssh/config file. Wave Terminal uses ssh natively under the hood and so any options set in your ssh config will be picked up by Wave directly.

How can I disable automatic update checks?

By default, Wave will query our download feed to check for new releases. This check happens once on launch and then again every hour. If a new release is found, it will be downloaded automatically and you will be notified when it is ready to install.

To provide the fastest experience when downloading updates, we host our own download feed in AWS. We do not collect our own access logs for this feed and we will not use this feed to identify you for tracking purposes. As with all sites, we cannot guarantee other peers between you and our servers will not collect their own data.

If you would like to disable the automatic update checks, you can toggle the “Check for Updates” button in the Settings to the off position (the white circle should be on the left and the button should be grey).

What is your business model, how do you plan on making money?

We are committed to offering Wave free to all developers (free as in speech and free as in beer). Next year, we plan on introducing opt-in features for teams (collaboration and sharing) which will require a paid subscription. In general, anything that runs locally, on your own machine, using your own resources will be free. Anything that uses our servers and our resources will be paid.

Are ligatures supported in Wave?

Wave Terminal uses the JetBrains Mono font which includes 142 code-specific ligatures. These ligatures are supported in the command prompt area and in the terminal output.

I’ve changed my .bashrc / .bash_profile files, how can I reload them?

To reload your configuration files and reset the environment of a tab, you should run the command reset or (/reset).

Wave loads your bash configuration by executing bash with the -l and -i options (so it is an interactive login shell). That means any changes need to be in your .bash_profile to take effect (unless your .bash_profile also sources your .bashrc). Note that sessions are persistent in Wave, so even if you change your startup files the changes won’t take effect in any currently open tabs (unless you explicitly run reset).

Do I need to install mshell/waveshell on remote machines to use Wave Terminal?

No, it is not required. You can use Wave as a normal terminal by just executing a traditional ssh command at the Wave prompt. That will create a command block that runs your remote ssh session. When running ssh like this mshell/waveshell will not be installed on your remote machine.

For more information see WaveShell Helper

What is mshell/waveshell, why does it need to be installed on machines I connect to?

Content Moved. See WaveShell Helper

Can I switch my shell type within an already running tab?

Yes (must have Wave v0.6.0 or later). If you run /reset shell=zsh or /reset shell=bash the shell will be changed. Note that your cwd and environment will be reset as if this were a new session. You can tell if the shell switch was successful by checking the shell type flag that appears at the bottom right hand corner of the command input box.

”The shell state for this tab is invalid”, what’s going on?

When building v0.6.0 we noticed some irregularities in how we were storing bash shell state. Specifically if your rcfiles produced any spurious output (invalid aliases was a common culprit), the shell state might be saved, but in a broken way. While migrating to v0.6.0 we flagged any of these invalid states and show this message.

Clicking “reset shell state” (or running the slash command /reset) will force Wave to re-read your bash config files and produce a new valid state. Note that after running the reset, your cwd and environment will be reset as if this was a new session.

How is Waveterm managing to share my sudo password between PTY sessions?

By default, sharing a sudo password between PTY sessions is not allowed by your operating system. This can be a frustration when using Waveterm because every command is treated as a separate PTY session. To get around this, Waveterm will cache your sudo password in local memory (not written to disk) and share it with a session when provided. This cache can be configured to time out after a set period of time (5 minutes by default) without a sudo command. It also can be cleared automatically when your computer falls asleep regardless of the timer (this feature is on by default). Lastly, if you are uncomfortable with your password being cached, you can disable this feature altogether.