Skip to main content

FAQ

How do I configure Wave to use different AI models/providers?

Wave supports various AI providers including local LLMs (via Ollama), Azure OpenAI, Anthropic's Claude, and Perplexity. The recommended way to configure these is through AI presets, which let you set up and easily switch between different providers and models.

See our AI Presets documentation for detailed setup instructions for each provider.

How do I enable Claude Code support with Shift+Enter?

Wave supports Claude Code and similar AI coding tools that expect Shift+Enter to send an escape sequence + newline (\u001b\n) instead of a regular carriage return. This can be enabled using the term:shiftenternewline configuration setting.

To enable this globally for all terminals:

wsh setconfig term:shiftenternewline=true

To enable this for just a specific terminal block:

wsh setmeta term:shiftenternewline=true

You can also set this in your settings.json file:

"term:shiftenternewline": true

How can I see the block numbers?

The block numbers will appear when you hold down Ctrl-Shift (and disappear once you release the key combo).

How do I make a remote connection?

There is a button in the header. Click the or and type the [user]@[host] that you wish to connect to.

On Windows, how can I use Git Bash as my default shell?

In order to make Git Bash your default shell you'll need to set the configuration variable term:localshellpath to the location of the Git Bash "bash.exe" binary. By default it is located at "C:\Program Files\Git\bin\bash.exe". Just remember in JSON, backslashes need to be escaped. So add this to your settings.json file:

"term:localshellpath": "C:\\Program Files\\Git\\bin\\bash.exe"

Can I use WSH outside of Wave?

wsh is an internal CLI for extending control over Wave to the command line, you can learn more about it here. To prevent misuse by other applications, wsh requires an access token provided by Wave to work and will not function outside of the app.

How do I make new blocks or splits inherit my shell’s current directory?

Wave uses a special escape sequence (OSC 7) to track the shell’s working directory and maintain the working directory of new terminal blocks and splits. Wave listens for these sequences to update its cmd:cwd metadata. That metadata is copied to new blocks when you:

  • Open a new terminal block (Alt N / Cmd N)
  • Split a pane (Cmd D / Cmd Shift D)

Not all shells emit this escape sequence, so new blocks or splits may start in your home directory instead. To ensure your shell emits the OSC 7 escape sequence, add the following to your shell startup/config file and restart Wave (or source your config).

Bash

Add to ~/.bashrc or ~/.bash_profile:

# Emit OSC 7 on each prompt to tell terminal about new working directory
__update_cwd() {
  # Only run in interactive shells
  [[ $- == *i* ]] || return
  # Only run if attached to a terminal
  [ -t 1 ] || return
  # Redirect to tty so output doesn't show in shell
  printf "\033]7;file://%s%s\007" "$HOSTNAME" "${PWD// /%20}" > /dev/tty
}
if [[ -n "$PROMPT_COMMAND" ]]; then
  export PROMPT_COMMAND="__update_cwd; $PROMPT_COMMAND"
else
  export PROMPT_COMMAND="__update_cwd"
fi

Zsh

Add to ~/.zshrc:

# Emit OSC 7 escape on directory change and prompt
function _wave_emit_cwd() {
printf "\033]7;file://%s%s\007" "$HOSTNAME" "${PWD// /%20}" > /dev/tty
}
autoload -U add-zsh-hook
add-zsh-hook chpwd _wave_emit_cwd
add-zsh-hook precmd _wave_emit_cwd

Fish

Fish shell (v4.0.0 and later) emits OSC 7 by default—no config required.

For older Fish versions, add to ~/.config/fish/config.fish:

# Emit OSC 7 on each PWD change
function _wave_emit_cwd --on-variable PWD
printf "\033]7;file://%s%s\007" (hostname) (string replace ' ' '%20' $PWD) > /dev/tty
end

After configuring, open a new block or split (Alt T / Cmd T, Alt N / Cmd N, Cmd D / Cmd Shift D) and verify blocks start in your current directory.

Verifying Current Directory Preservation

  1. Open a Wave terminal block.

  2. cd into a project folder, e.g. cd ~/projects/foo.

  3. Right-click on the block's title bar and select "Copy BlockId" to retrieve the block’s ID.

  4. Use the copied BlockId to retrieve the block’s metadata:

    # Example: replace BLOCK_ID with your actual block reference
    wsh getmeta --block BLOCK_ID
    
  5. Confirm the output JSON contains a cmd:cwd field, for example:

    {
      "cmd:cwd": "/Users/you/projects/foo",
      ...
    }
    
  6. Open a new block or split the pane—both should start in /Users/you/projects/foo.

Why does Wave warn me about ARM64 translation when it launches?

macOS and Windows both have compatibility layers that allow x64 applications to run on ARM computers. This helps more apps run on these systems while developers work to add native ARM support to their applications. However, it comes with significant performance tradeoffs.

To get the best experience using Wave, it is recommended that you uninstall Wave and reinstall the version that is natively compiled for your computer. You can find the right version by consulting our Installation Instructions.

You can disable this warning by setting app:dismissarchitecturewarning=true in your configurations.

How do I join the beta builds of Wave?

Wave publishes to two channels, latest and beta. If you've installed the app for macOS, Windows, or Linux via DEB or RPM, you can set the following configurations in your settings.json (see Configuration for more info):

"autoupdate:enabled": true,
"autoupdate:channel": "beta"

If you've installed via Snap, you can use the following command:

sudo snap install waveterm --classic --beta