Wave Terminal v0.11.0 includes a major rewrite of our connections infrastructure, with changes to both our backend and remote file protocol systems, alongside numerous features, bug fixes, and stability improvements.
A key addition in this release is the new shell initialization system, which enables customization of your shell environment across local and remote connections. You can now configure environment variables and shell-specific init scripts on both a per-block and per-connection basis.
For day-to-day use, we've added search functionality across both terminal and web blocks, along with a terminal multi-input feature for simultaneous input to all terminals within a tab. We've also added support for Google Gemini to Wave AI, expanding our suite of AI integrations.
Behind the scenes, we've redesigned our remote file protocol, laying the groundwork for upcoming S3 (and S3-compatible system) support in our preview widget. This architectural change sets the stage for adding more file backends in the future.
- Shell Environment Customization -- Configure your shell environment using environment variables and init scripts, with support for both local and remote connections
- Connection Backend Improvements -- Major rewrite with improved shell detection, better error logging, and reduced 2FA prompts when using ForceCommand
- Multi-Shell Support -- Enhanced support for bash, zsh, pwsh, and fish shells, with shell-specific initialization capabilities
- Terminal Search -- use Cmd-F to search for text in terminal widgets
- Web Search -- use Cmd-F to search for text in web views
- Terminal Multi-Input -- Use Ctrl-Shift-I to allow multi-input to all terminals in the same tab
- Wave AI now supports Google Gemini
- Improved WSL support with wsh-free connection options
- Added inline connection debugging information
- Fixed file permission handling issues on Windows systems
- Connection related popups are now delivered only to the initiating window
- Improved timeout handling for SSH connections which require 2FA prompts
- Fixed escape key handling in global event handlers (closing modals)
- Directory preview now fills the entire block width
- Custom widgets can now be launched in magnified mode
- Various workspace UX improvements around closing/deleting
- file:/// urls now work in web widget
- Increased max size of files allowed in
wsh ai
to 50k - Increased maximum allowed term:scrollback to 50k lines
- Allow connections to entirely be defined in connections.json without relying on ~/.ssh/config
- Added an option to reveal files in external file viewer for local connection
- Added a New Window option when right clicking the MacOS dock icon button
- [build] Switched to free Ubuntu ARM runners for better ARM64 build support
- [build] Windows builds now use zig, simplifying Windows dev setup
- [bugfix] Connections dropdown now populated even when ssh config is missing or invalid
- [bugfix] Disabled bracketed paste mode by default (configuration option to turn it back on)
- [bugfix] Timeout for
wsh ssh
increased to 60s - [bugfix] Fix for sysinfo widget when displaying a huge number of CPU graphs
- [bugfix] Fixes XDG variables for Snap installs
- [bugfix] Honor SSH IdentitiesOnly flag (useful when many keys are loaded into ssh-agent)
- [bugfix] Better shell environment variable setup when running local shells
- [bugfix] Fix preview for large text files
- [bugfix] Fix URLs in terminal (now clickable again)
- [bugfix] Windows URLs now work properly for Wave background images
- [bugfix] Connections launch without wsh if the unix domain socket can't be opened
- [bugfix] Connection status list lights up correctly with currently connected connections
- [bugfix] Use en_US.UTF-8 if the requested LANG is not available in your terminal
- Other bug fixes, performance improvements, and dependency updates
PRs
- Separate out Yarn major updates into separate Dependabot groups by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1607
- Rename outdated WaveAI types by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1609
- Entirely Internal Connection by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1610
- Fix Term Widget not registering pointer events by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1614
- add ROADMAP.md by @sawka in https://github.com/wavetermdev/waveterm/pull/1616
- remove incompatible md syntax by @sawka in https://github.com/wavetermdev/waveterm/pull/1617
- add preview:showhiddenfiles to config docs by @sawka in https://github.com/wavetermdev/waveterm/pull/1619
- Allow TestDriver to run on outside contributions by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1622
- remove unused cmd by @chottuthejimmy in https://github.com/wavetermdev/waveterm/pull/1628
- fix: pass missing config to setTimeout in getSpareTab by @BQXBQX in https://github.com/wavetermdev/waveterm/pull/1627
- fix remote file stream function by @sawka in https://github.com/wavetermdev/waveterm/pull/1620
- new utility fn, deepCompareReturnPrev. use for settings prefix atom t… by @sawka in https://github.com/wavetermdev/waveterm/pull/1630
- fix: do not error out if ssh config is empty by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1632
- correctly escape backslashes in wsh setbg. fixes windows paths [#1604] by @sawka in https://github.com/wavetermdev/waveterm/pull/1636
- progressbar component by @adred in https://github.com/wavetermdev/waveterm/pull/1556
- Bump github.com/sashabaranov/go-openai from 1.36.0 to 1.36.1 by @dependabot in https://github.com/wavetermdev/waveterm/pull/1637
- Add support for Google AI models by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1612
- Mark finished items in roadmap by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1640
- Remove fatals, don't know why I added these by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1642
- Web Search by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1631
- Deleting current workspace switches to another instead of closing [ backend implementation ] by @Jalileh in https://github.com/wavetermdev/waveterm/pull/1623
- add aliases for electron:dev, electron:start, and docsite:start tasks by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1651
- window-dimensions and zoom crash fixed by @zaidnadaff in https://github.com/wavetermdev/waveterm/pull/1652
- fix: more robust processor checks by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1656
- implement web:hidenav (#1639), and file:/// urls (#1638) by @sawka in https://github.com/wavetermdev/waveterm/pull/1645
- conn updates (more consistency) by @sawka in https://github.com/wavetermdev/waveterm/pull/1657
- Improved Shell Detection by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1658
- fix all panichandlers for the new format (inline recover()) by @sawka in https://github.com/wavetermdev/waveterm/pull/1659
- Terminal search by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1654
- Fix the progressbar component by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1661
- Fix escape getting eaten by global event handler by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1668
- Update roadmap progress by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1670
- move roadmap below installation by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1671
- terminal multi-input for tab by @sawka in https://github.com/wavetermdev/waveterm/pull/1643
- fix: remove context from wsl connection struct by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1663
- conn updates 2 by @sawka in https://github.com/wavetermdev/waveterm/pull/1660
- fix: nil dereference in nowsh error messages by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1673
- Fix keybindings not working for ephemeral nodes by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1678
- Bump github.com/shirou/gopsutil/v4 from 4.24.11 to 4.24.12 by @dependabot in https://github.com/wavetermdev/waveterm/pull/1679
- update ROADMAP with v0.11.1, v0.12, some future stuff. by @sawka in https://github.com/wavetermdev/waveterm/pull/1682
- Add init task by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1681
- Happy new year! by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1684
- add term:allowbracketedpaste, default false by @sawka in https://github.com/wavetermdev/waveterm/pull/1688
- fix: default en_US.UTF-8 if lang has problems by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1687
- Add brief project structure summary to contributing doc by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1690
- Fix directory preview head width by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1691
- Widget Config Magnify by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1689
- roadmap updates by @sawka in https://github.com/wavetermdev/waveterm/pull/1700
- Fix dependabot by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1707
- Remove major bumps from dependabot by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1708
- Better XDG directory variable fix for Snap by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1701
- Simplify logging for XDG override by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1709
- Bump golang.org/x/term from 0.27.0 to 0.28.0 by @dependabot in https://github.com/wavetermdev/waveterm/pull/1706
- Simplify regex and fix tests for pamparse by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1712
- conn updates 3 by @sawka in https://github.com/wavetermdev/waveterm/pull/1711
- Bump golang.org/x/crypto from 0.31.0 to 0.32.0 by @dependabot in https://github.com/wavetermdev/waveterm/pull/1703
- TestDriver: Checks + Comments by @ianjennings in https://github.com/wavetermdev/waveterm/pull/1698
- Use Zig for Windows and ARM64 Linux by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1713
- Update BUILD.md by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1714
- Update Wsh Command by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1715
- RemoteInfo Rpc by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1719
- RcFileInstall RPC Command by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1720
- Remove Old Prototype Plot by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1721
- Update packageManager to Yarn 4.6.0 by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1729
- conn updates 4 by @sawka in https://github.com/wavetermdev/waveterm/pull/1726
- Bump google.golang.org/api from 0.214.0 to 0.216.0 by @dependabot in https://github.com/wavetermdev/waveterm/pull/1705
- move genconn quote, and getshelltype to shellutil by @sawka in https://github.com/wavetermdev/waveterm/pull/1731
- fix: set wsh ssh rpc timeout to 60 seconds by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1732
- Fix for test results not displaying in checks tab by @chottuthejimmy in https://github.com/wavetermdev/waveterm/pull/1728
- don't run checkin actions on draft prs by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1734
- Remove pull_request edited event from workflows by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1735
- Try reverting Dependabot changes by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1736
- Fix dir preview table header width so it still expands to fill whole view by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1737
- fix: yvalMeta .name null check by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1740
- Limit User Input Modal to One Window by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1730
- Check for wildcard/conditional host patterns in
~/.ssh/config
before normalizing for connections dropdown by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1743 - Honor SSH IdentitiesOnly config by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1742
- Small dependabot change to trigger new run by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1744
- Bump google.golang.org/api from 0.216.0 to 0.217.0 by @dependabot in https://github.com/wavetermdev/waveterm/pull/1745
- Dependabot Yarn changes by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1751
- conn updates 5 by @sawka in https://github.com/wavetermdev/waveterm/pull/1755
- Correct XDG_CURRENT_DESKTOP env var by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1754
- WSL Updates for New Architecture by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1756
- remove two calls to conn.Connect() by @sawka in https://github.com/wavetermdev/waveterm/pull/1757
- Fix openai regression by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1758
- Add a Scrollbar to the SSH Error Popup by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1741
- Bump @chromatic-com/storybook from 3.2.2 to 3.2.4 in the storybook-patch group by @dependabot in https://github.com/wavetermdev/waveterm/pull/1764
- Bump the storybook-minor group with 10 updates by @dependabot in https://github.com/wavetermdev/waveterm/pull/1765
- ignore testdriver run by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1768
- Switch to the free Ubuntu ARM runners by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1767
- Wshless Connections in Wsl by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1769
- fix: wsh error copy rewrite by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1770
- fileMode-fix for issue [#1694] Windows bug by @Jalileh in https://github.com/wavetermdev/waveterm/pull/1710
- longer timeout to read wsh version (2FA prompts) by @sawka in https://github.com/wavetermdev/waveterm/pull/1776
- Known Hosts User Input Fix by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1778
- Add tab bar instructions to docsite by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1779
- Fix typo in tabs doc by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1780
- fix: shrink the ssh connection box when no error by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1781
- Default to current connection for
wsh conn reinstall
by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1782 - fix: connection status map wrapped in atom by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1783
- Bump vite from 6.0.3 to 6.0.9 by @dependabot in https://github.com/wavetermdev/waveterm/pull/1785
- Upgrade Docusaurus and dev dependencies by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1787
- Add Option to Ignore SSH Config File by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1788
- ctrl-shift state fix + add new keybindings to docs by @sawka in https://github.com/wavetermdev/waveterm/pull/1792
- Upgrade to v1.1.0 by @ianjennings in https://github.com/wavetermdev/waveterm/pull/1784
wsh file
overhaul without cross-remote copy and S3 by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1790- TestDriver: Supply GH Token by @ianjennings in https://github.com/wavetermdev/waveterm/pull/1794
- Adjust
wsh file
help text so it's 80 cols max width by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1795 - pull cmd:env and initscripts into wave terminals by @sawka in https://github.com/wavetermdev/waveterm/pull/1793
- Improve preview and web widget padding by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1796
- Fix windows path for wsh url by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1798
- fix statfile atom dependencies via formatRemoteUri by @sawka in https://github.com/wavetermdev/waveterm/pull/1797
- actually call the getter by @sawka in https://github.com/wavetermdev/waveterm/pull/1800
- Revert my cheeky change by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1799
- Fix directory preview table padding by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1802
- Fix tilde paths by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1801
- Fix border radii for webview container by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1803
- S3 Frontend by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1723
- return true (cancel) the enter key event in typeahead by @sawka in https://github.com/wavetermdev/waveterm/pull/1804
- Reveal Parent Directories in External Applications by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1791
- Fix padding for markdown preview by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1805
- Add license identifiers to missing files by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1806
- Fix offset regression in wshremote by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1807
- Unpin docusaurus-og commit by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1811
- Add sharp-solid font to docsite by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1813
- Fix markdown padding by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1810
- Close open modals on escape keydown by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1809
- Remove fileshare logs by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1814
- Bump electron from 33.3.0 to 34.0.0 in the electron-major group by @dependabot in https://github.com/wavetermdev/waveterm/pull/1766
- match the exact calls in TableBody to set the selected row. by @sawka in https://github.com/wavetermdev/waveterm/pull/1808
- feat: add new window item to macos dock by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1815
- Add icons to cards in docsite, adjust md padding by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1816
- Update windows transparency compat link in config by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1817
- initscript -- support for local files, and overrides in connections.json by @sawka in https://github.com/wavetermdev/waveterm/pull/1818
- Update preset background example name by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1819
- update 0.11 progress in roadmap, move some tasks out by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1820
- Update releases.md by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1823
- Add copy current url to webview context menu by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1821
- Fix grammar in releases.md by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1824
- Add more details about testing and releasing to releases.md by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1825
- Update more links in releases.md by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1826
- Handle integer overflow cases in shellquote by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1822
- Fix magnified block border radius by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1827
- Bump electron from 34.0.0 to 34.0.1 in the electron-patch group by @dependabot in https://github.com/wavetermdev/waveterm/pull/1832
- update some formatting, add 'default widgets' and remote shell widgets section for custom widgets doc by @sawka in https://github.com/wavetermdev/waveterm/pull/1837
- fix: connection error only shows in error state by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1838
- Connections Docs Updates by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1836
- add jwt token back to wsl connections by @sawka in https://github.com/wavetermdev/waveterm/pull/1841
- install special new handlers for Cmd+N and Cmd+T when no windows are open by @sawka in https://github.com/wavetermdev/waveterm/pull/1839
- refactor: remove ConnOverrideConfig by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1842
- Fix connparse for wsl by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1843
- Add connparse tests for Windows and WSL by @esimkowitz in https://github.com/wavetermdev/waveterm/pull/1844
- docs: add cmd:env and scripts to connections docs by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1845
- fix: cleanup gotypes.d.ts extra type by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1846
- first draft of release notes by @sawka in https://github.com/wavetermdev/waveterm/pull/1847
- fix markdown padding by @sawka in https://github.com/wavetermdev/waveterm/pull/1848
- docs: add more features to release notes by @oneirocosm in https://github.com/wavetermdev/waveterm/pull/1849
New Contributors
- @BQXBQX made their first contribution in https://github.com/wavetermdev/waveterm/pull/1627
- @Jalileh made their first contribution in https://github.com/wavetermdev/waveterm/pull/1623
- @zaidnadaff made their first contribution in https://github.com/wavetermdev/waveterm/pull/1652
Full Changelog: https://github.com/wavetermdev/waveterm/compare/v0.10.4...v0.11.0