waveterm: Level Up Your Terminal With Graphical Widgets

Wave is an open-source terminal that adds the ability to launch graphical widgets, controlled and integrated directly with the CLI. It combines traditional terminal features with graphical capabilities like file previews, web browsing, and AI assistance. It runs on MacOS, Linux, and Windows.

Modern development involves constantly switching between terminals and browsers - checking documentation, previewing files, monitoring systems, and using AI tools. Wave brings these graphical tools directly into the terminal, letting you control them from the command line. This means you can stay in your terminal workflow while still having access to the visual interfaces you need.

Key Features

Terminal Features

  • Works with common shells (bash, zsh, fish)
  • Supports standard terminal features (readline, control sequences, etc)
  • Includes the wsh command for interacting with Wave's GUI features
  • GPU accelerated (on most platforms)

Graphical Widgets

  • Preview files (images, video, markdown, code with syntax highlighting)
  • Browse web pages
  • Ask questions and get AI help directly from the terminal (set up multiple AI models)
  • Basic system monitoring graphs

Remote Connections

  • Easy SSH connections with the connection button
  • WSL integration on Windows
  • Consistent experience across local and remote sessions

Installation

macOS

Homebrew:

brew install --cask wave

Linux

Snap:

sudo snap install --classic waveterm

Other options available: AUR package (community maintained), Nix package (community maintained)

Windows

Windows Package Manager:

winget install CommandLine.Wave

Chocolatey:

choco install wave

You can also download installers directly from Downloads page.

How to use

Open Your First New Tab

  • New Wave tabs start with a single terminal block
  • Use it just like your regular terminal
  • Create additional terminal blocks with Alt n

Try Some Basic Commands

# View a file or directory
wsh view ~/Documents

# Open a webpage
wsh web open github.com

# Get AI assistance
wsh ai "how do I find large files in my current directory?"

Customize Your Layout

  • Drag block headers to rearrange them
  • Hover between blocks to resize them
  • Right-click tab headers for background options
  • Right-click block headers for block-specific options

Connect to Remote Machines

  • Click the connect button
  • Enter username@hostname for SSH connections
  • Or select a WSL distribution on Windows