This is a personal fork of Wave Terminal with experimental features and customizations. For the official version, visit the upstream repository.
This fork includes the following modifications from upstream:
A complete project-centric workflow system for tabs:
- VS Code-Style Tab Bar - Colored tab backgrounds based on directory context
- Breadcrumb Navigation - Full path breadcrumbs below tab bar for quick navigation
- Smart Auto-Detection - OSC 7 integration automatically detects working directory from terminal
- Directory Locking - Lock base directory to prevent auto-detection changes
- Tab Presets - Save and apply tab configurations via presets (
tabvar@project-name) - Tab Color Picker - 8-color palette for manual tab coloring via context menu
- Terminal Status Indicators - Visual status for running/finished/stopped commands
New Files:
frontend/app/store/tab-model.ts- Tab state managementfrontend/app/store/tab-basedir-validator.ts- Path validationfrontend/app/store/tab-basedir-validation-hook.ts- React hook for validationfrontend/app/tab/tab-menu.ts- Reusable preset menu builderfrontend/util/pathutil.ts- Cross-platform path utilitiesfrontend/util/presetutil.ts- Preset validation and sanitizationdocs/docs/tabs.mdx- Full documentation
Comprehensive metadata validation to prevent injection attacks:
- Path Validation - Validates all path fields (traversal attacks, length limits)
- URL Validation - Validates URL fields with scheme restrictions
- String Sanitization - Length limits and content validation
- Optimistic Locking - Version-based concurrency control for metadata updates
- Race Condition Fixes - TOCTOU vulnerability prevention in OSC 7 updates EFAE li>
New Files:
pkg/waveobj/validators.go- 935-line validation frameworkpkg/wconfig/defaultconfig/presets/tabvars.json- Default tab presetsschema/tabvarspresets.json- JSON schema for presets
- xterm.js 6.1.0 Upgrade - Updated from 5.5.0 to 6.1.0-beta.106
- Enables DEC mode 2026 (Synchronized Output) for proper TUI animations
- Fixes npm progress bars, htop, and spinner animations scrolling issues
- Uses public
terminal.dimensionsAPI (no more private API hacks) - New DomScrollableElement scrollbar with custom styling
- Font Ligatures Support - Enable programming ligatures with
"term:ligatures": true- Works with ligature fonts like Fira Code, JetBrains Mono, Cascadia Code
- Uses
@xterm/addon-ligaturesfor native font discovery in Electron - See screenshot:
assets/ligatures-demo.png
- OSC 7 Debouncing - 300ms debounce for rapid directory changes
- Memory Leak Prevention - Cleanup handlers for tab close events
- No Telemetry Required - Wave AI works without enabling telemetry
- Telemetry Disabled by Default - All telemetry collection is disabled
- No Cloud Mode Restrictions - Wave AI cloud modes accessible without telemetry opt-in
- Simplified Onboarding - Removed telemetry toggle from initial setup
A visual settings interface similar to VS Code:
- Visual Settings Panel - Browse and modify settings with a graphical interface
- Category Sidebar - Navigate settings by category with scroll-spy sync
- Sticky Headers - Section headers stick to top when scrolling with visual feedback
- Search - Find settings by name, description, or key
- Dual View - Switch between Visual mode and Raw JSON editing
- Input Controls - Toggles, sliders, dropdowns, text inputs, color pickers, font selectors
- Real-time Sync - Changes persist immediately with debounced saves
- Modified Indicators - Visual markers show which settings differ from defaults
New Files:
frontend/app/view/waveconfig/settings-visual.tsx- Main visual settings componentfrontend/app/view/waveconfig/settings-visual.scss- Visual settings stylesfrontend/app/element/settings/- Reusable setting control componentsfrontend/app/store/settings-*.ts- Settings state management and persistence
- Profile Loading - User's PowerShell profile (
$PROFILE) is now sourced automatically- Wave launches with
-NoProfilefor clean environment, then sources your profile - Custom aliases, functions, and prompt customizations now work
- Wave launches with
showOpenDialog- Native directory picker for setting tab base directoryshowWorkspaceAppMenu- Workspace menu from breadcrumb bar
- PowerShell 7 Requirement - All build commands use
pwsh -NoProfile - Shell Launch Fix - Runtime shells use
-NoProfileflag - Build Prerequisites - Updated BUILD.md with PowerShell 7 requirement
This fork is periodically rebased on upstream main:
git fetch upstream
git checkout sawka-main
git rebase upstream/main
git push origin sawka-main --force-with-leaseWave is an open-source terminal that 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.
- Flexible drag & drop interface to organize terminal blocks, editors, web browsers, and AI assistants
- Built-in editor for seamlessly editing remote files with syntax highlighting and modern editor features
- Rich file preview system for remote files (markdown, images, video, PDFs, CSVs, directories)
- Quick full-screen toggle for any block - expand terminals, editors, and previews for better visibility, then instantly return to multi-block view
- Wave AI - Context-aware terminal assistant that reads your terminal output, analyzes widgets, and performs file operations
- AI chat widget with support for multiple models (OpenAI, Claude, Azure, Perplexity, Ollama)
- Command Blocks for isolating and monitoring individual commands with auto-close options
- One-click remote connections with full terminal and file system access
- Secure secret storage using native system backends - store API keys and credentials locally, access them across SSH sessions
- Rich customization including tab themes, terminal styles, and background images
- Powerful
wshcommand system for managing your workspace from the CLI and sharing data between terminal sessions - Connected file management with
wsh file- seamlessly copy and sync files between local, remote SSH hosts, Wave filesystem, and S3
Wave AI is your context-aware terminal assistant with access to your workspace:
- Terminal Context: Reads terminal output and scrollback for debugging and analysis
- File Operations: Read, write, and edit files with automatic backups and user approval
- CLI Integration: Use
wsh aito pipe output or attach files directly from the command line - Free Beta: Included AI credits while we refine the experience
- Coming Soon: Command execution (with approval), local model support, and alternate AI providers (BYOK)
Learn more in our Wave AI documentation.
Wave Terminal works on macOS, Linux, and Windows.
Platform-specific installation instructions can be found here.
You can also install Wave Terminal directly from: www.waveterm.dev/download.
Wave Terminal runs on the following platforms:
- macOS 11 or later (arm64, x64)
- Windows 10 1809 or later (x64)
- Linux based on glibc-2.28 or later (Debian 10, RHEL 8, Ubuntu 20.04, etc.) (arm64, x64)
The WSH helper runs on the following platforms:
- macOS 11 or later (arm64, x64)
- Windows 10 or later (arm64, x64)
- Linux Kernel 2.6.32 or later (x64), Linux Kernel 3.1 or later (arm64)
Wave is constantly improving! Our roadmap will be continuously updated with our goals for each release. You can find it here.
Want to provide input to our future releases? Connect with us on Discord or open a Feature Request!
- Homepage — https://www.waveterm.dev
- Download Page — https://www.waveterm.dev/download
- Documentation — https://docs.waveterm.dev
- Legacy Documentation — https://legacydocs.waveterm.dev
- Blog — https://blog.waveterm.dev
- X — https://x.com/wavetermdev
- Discord Community — https://discord.gg/XfvZ334gwU
Wave uses GitHub Issues for issue tracking.
Find more information in our Contributions Guide, which includes:
Wave Terminal is licensed under the Apache-2.0 License. For more information on our dependencies, see here.
