An open-source, AI-integrated, cross-platform terminal for seamless workflows
Find a file
Copilot 9c3cf984e8
Make frontend CSS color validation Chromium-only (remove DOM style fallback) (#2946)
The new color validator is used exclusively in the Electron/Chromium
frontend, so fallback parsing via temporary DOM elements is unnecessary.
This update tightens the implementation to rely on the browser-native
CSS capability check only.

- **Scope**
- Keep `validateCssColor(color: string): string` behavior unchanged
(returns normalized type for valid colors, throws on invalid).
  - Remove non-Chromium fallback logic from validation path.

- **Implementation**
  - **`frontend/util/color-validator.ts`**
    - `isValidCssColor` now exclusively uses:
      - `CSS.supports("color", color)`
- Removed fallback using `document.createElement(...).style.color`
assignment/parsing.

- **Behavioral contract (unchanged)**
- Valid values still return specific type strings (`hex`, `hex8`, `rgb`,
`rgba`, `hsl`, `keyword`, etc.).
  - Invalid values still throw `Error("Invalid CSS color: ...")`.

```ts
function isValidCssColor(color: string): boolean {
    if (typeof CSS == "undefined" || typeof CSS.supports != "function") {
        return false;
    }
    return CSS.supports("color", color);
}
```

<!-- START COPILOT CODING AGENT TIPS -->
---

 Let Copilot coding agent [set things up for
you](https://github.com/wavetermdev/waveterm/issues/new?title=+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
— coding agent works faster and does higher quality work when set up for
your repo.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sawka <2722291+sawka@users.noreply.github.com>
Co-authored-by: sawka <mike@commandline.dev>
2026-02-27 15:48:56 -08:00
.github Add terminal cursor style/blink config with block-level overrides (#2933) 2026-02-25 12:40:20 -08:00
.kilocode remove orphaned style.scss, make windowtype.ts, small CSS cleanup (#2939) 2026-02-25 16:07:13 -08:00
.roo/rules remove orphaned style.scss, make windowtype.ts, small CSS cleanup (#2939) 2026-02-25 16:07:13 -08:00
.vscode new job manager / framework for creating persistent remove sessions (#2779) 2026-01-21 16:54:18 -08:00
.zed Add basic Zed workspace configs (#1942) 2025-02-09 15:00:46 -08:00
aiprompts adding more structured "skill.md" files instead of using aiprompts directory (#2885) 2026-02-16 21:07:34 -08:00
assets Make the Wave logo icons slightly smaller (#1500) 2024-12-11 13:24:12 -08:00
build Squash some leftover bugs (#1495) 2024-12-11 12:52:15 -08:00
cmd Add wsh debugterm (#2947) 2026-02-27 10:24:26 -08:00
db new job manager / framework for creating persistent remove sessions (#2779) 2026-01-21 16:54:18 -08:00
docs Bump the dev-dependencies-minor group with 4 updates (#2953) 2026-02-27 15:09:58 -08:00
emain Fix for Claude Code Scroll to Top Bug (#2956) 2026-02-27 15:34:35 -08:00
frontend Make frontend CSS color validation Chromium-only (remove DOM style fallback) (#2946) 2026-02-27 15:48:56 -08:00
pkg Make Wave home config writes atomic and serialized to avoid watcher partial reads (#2945) 2026-02-27 15:43:37 -08:00
public remove orphaned style.scss, make windowtype.ts, small CSS cleanup (#2939) 2026-02-25 16:07:13 -08:00
schema Add terminal cursor style/blink config with block-level overrides (#2933) 2026-02-25 12:40:20 -08:00
testdriver touch up final test condition (#1338) 2024-11-22 17:16:04 -08:00
tests/copytests Add S3 fileshare implementation, improve cp behavior (#1896) 2025-02-14 17:27:02 -08:00
tsunami Bump the dev-dependencies-minor group with 4 updates (#2953) 2026-02-27 15:09:58 -08:00
.editorconfig Oops i actually made the tabs wrong (#1384) 2024-12-04 13:49:14 -08:00
.gitattributes WSL Integration (#1031) 2024-10-23 22:43:17 -07:00
.gitignore conn error sub-codes for better classification (#2889) 2026-02-19 11:18:52 -08:00
.golangci.yml capture go build / go mod tidy output to outputcapture (#2540) 2025-11-10 19:55:46 -08:00
.prettierignore Add filewatcher for config files (#63) 2024-06-19 23:59:41 -07:00
ACKNOWLEDGEMENTS.md Add back the acknowledgements readme, update about modal link (#818) 2024-09-24 16:58:18 -07:00
BUILD.md switch from yarn to npm (#2347) 2025-09-12 15:36:03 -07:00
CNAME Move docsite to main repo (#1204) 2024-11-06 10:45:21 -08:00
CODE_OF_CONDUCT.md move some metadata files over to new repo 2024-09-18 12:04:28 -07:00
CONTRIBUTING.md set clearer contribution guidelines and expectations (#2782) 2026-01-21 16:35:29 -08:00
electron-builder.config.cjs fix tsunami scaffold in build (#2564) 2025-11-14 16:35:37 -08:00
electron.vite.config.ts update electron version (#2876) 2026-02-16 22:59:18 -08:00
eslint.config.js Add terminal cursor style/blink config with block-level overrides (#2933) 2026-02-25 12:40:20 -08:00
go.mod Bump google.golang.org/api from 0.267.0 to 0.269.0 (#2951) 2026-02-27 15:08:43 -08:00
go.sum Bump google.golang.org/api from 0.267.0 to 0.269.0 (#2951) 2026-02-27 15:08:43 -08:00
index.html remove orphaned style.scss, make windowtype.ts, small CSS cleanup (#2939) 2026-02-25 16:07:13 -08:00
LICENSE Happy new year! (#1684) 2025-01-04 20:56:57 -08:00
NOTICE Happy new year! (#1684) 2025-01-04 20:56:57 -08:00
package-lock.json Bump rollup from 4.50.1 to 4.59.0 (#2958) 2026-02-27 15:44:33 -08:00
package.json Bump the dev-dependencies-minor group with 4 updates (#2953) 2026-02-27 15:09:58 -08:00
postinstall.cjs UI only preview server (+ deployments) (#2919) 2026-02-23 12:48:28 -08:00
prettier.config.cjs Windows Line Endings (#923) 2024-10-01 12:54:15 -07:00
README.ko.md docs: add Korean README translation (#2943) 2026-02-26 09:49:35 -08:00
README.md docs: add Korean README translation (#2943) 2026-02-26 09:49:35 -08:00
RELEASES.md Update more links in releases.md (#1826) 2025-01-23 17:59:16 -08:00
ROADMAP.md v0.13 Release Notes, Docs Updates, Onboarding Updates (#2642) 2025-12-08 16:29:19 -08:00
SECURITY.md Add markdown alert parsing, fix buffer issue when switching files (#988) 2024-10-08 09:25:41 -07:00
staticcheck.conf standalone fixes, linting errors, speedups, QOL changes ported from wave-12 branch (#2271) 2025-08-20 18:07:11 -07:00
Taskfile.yml Make frontend CSS color validation Chromium-only (remove DOM style fallback) (#2946) 2026-02-27 15:48:56 -08:00
tsconfig.json waveapps builder window (scaffolding, restructure AI panel to work in both builder and tab windows) (#2482) 2025-10-26 17:48:01 -07:00
version.cjs If prerelease is false and action is none, remove the prerelease version string (#395) 2024-09-18 13:12:34 -07:00
vitest.config.ts Switch to using electron-vite instead of WebPack (#45) 2024-06-13 16:49:25 -07:00

Wave Terminal Logo

Wave Terminal

FOSSA Status

Wave is an open-source, AI-integrated terminal for macOS, Linux, and Windows. It works with any AI model. Bring your own API keys for OpenAI, Claude, or Gemini, or run local models via Ollama and LM Studio. No accounts required.

Wave also supports durable SSH sessions that survive network interruptions and restarts, with automatic reconnection. Edit remote files with a built-in graphical editor and preview files inline without leaving the terminal.

WaveTerm Screenshot

Key Features

  • Wave AI - Context-aware terminal assistant that reads your terminal output, analyzes widgets, and performs file operations
  • Durable SSH Sessions - Remote terminal sessions survive connection interruptions, network changes, and Wave restarts with automatic reconnection
  • Flexible drag & drop interface to organize terminal blocks, editors, web browsers, and AI assistants
  • Built-in editor for 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
  • AI chat widget with support for multiple models (OpenAI, Claude, Azure, Perplexity, Ollama)
  • Command Blocks for isolating and monitoring individual commands
  • 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 wsh command 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 and remote SSH hosts

Wave AI

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 ai to pipe output or attach files directly from the command line
  • BYOK Support: Bring your own API keys for OpenAI, Claude, Gemini, Azure, and other providers
  • Local Models: Run local models with Ollama, LM Studio, and other OpenAI-compatible providers
  • Free Beta: Included AI credits while we refine the experience
  • Coming Soon: Command execution (with approval)

Learn more in our Wave AI documentation and Wave AI Modes documentation.

Installation

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.

Minimum requirements

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 (x64)
  • Linux Kernel 2.6.32 or later (x64), Linux Kernel 3.1 or later (arm64)

Roadmap

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!

Building from Source

See Building Wave Terminal.

Contributing

Wave uses GitHub Issues for issue tracking.

Find more information in our Contributions Guide, which includes:

License

Wave Terminal is licensed under the Apache-2.0 License. For more information on our dependencies, see here.