36 inherit (stdenv.hostPlatform) system;
37 selectSystem = attrs: attrs.${system};
40 passthru.updateScript = ./update.sh;
45 exec = "waveterm --no-sandbox %U";
47 url = "https://raw.githubusercontent.com/wavetermdev/waveterm/refs/tags/v${version}/build/appicon.png";
48 hash = "sha256-qob27/64C9XPBtXghxg5/g0qRaiOUOpuFYL1n7/aEB0=";
50 startupWMClass = "Wave";
51 comment = "Open-Source AI-Native Terminal Built for Seamless Workflows";
53 genericName = "Terminal Emulator";
68 description = "Open-source, cross-platform terminal for seamless workflows";
69 homepage = "https://www.waveterm.dev";
70 mainProgram = "waveterm";
71 sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
72 license = lib.licenses.asl20;
79 maintainers = with lib.maintainers; [ aucub ];
82 linux = stdenv.mkDerivation {
93 suffix = selectSystem {
94 x86_64-linux = "waveterm-linux-x64";
95 aarch64-linux = "waveterm-linux-arm64";
98 x86_64-linux = "sha256-zmmWQnZklnmhVrZp0F0dkVHVMW+K/VynSvbF9Zer/RE=";
99 aarch64-linux = "sha256-HRZRRUV6CVqUQYuvXBmnNcAsbZwgNDZiEf+gjdLDaPQ=";
103 url = "https://github.com/wavetermdev/waveterm/releases/download/v${version}/${suffix}-${version}.zip";
108 nativeBuildInputs = [
137 runtimeDependencies = map lib.getLib [
144 mkdir -p $out/waveterm $out/bin
145 cp -r ./* $out/waveterm/
151 makeWrapper $out/waveterm/waveterm $out/bin/waveterm \
152 --prefix LD_LIBRARY_PATH : "${
153 lib.makeLibraryPath [
160 darwin = stdenv.mkDerivation rec {
170 suffix = selectSystem {
171 x86_64-darwin = "Wave-darwin-x64";
172 aarch64-darwin = "Wave-darwin-arm64";
174 hash = selectSystem {
175 x86_64-darwin = "sha256-NSpNWUWdRkB2H5l/WnI/Xyv68h0OXX7SIKyDAq0LIJM=";
176 aarch64-darwin = "sha256-QkJMrmqrveFc2StL5gVpE78DlC1OBcEV+tY7p2nJ/6I=";
180 url = "https://github.com/wavetermdev/waveterm/releases/download/v${version}/${suffix}-${version}.zip";
184 nativeBuildInputs = [
196 sourceRoot = "Wave.app";
201 mkdir -p $out/Applications/Wave.app
202 cp -r . $out/Applications/Wave.app
208 if stdenv.hostPlatform.isDarwin then darwin else linux