{ appimageTools, fetchurl, lib, nodejs, nodePackages, uv, python3, makeWrapper, }: let pname = "eigent"; version = "0.0.89"; src = fetchurl { url = "https://github.com/eigent-ai/eigent/releases/download/v${version}/Eigent-${version}.AppImage"; hash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; }; appimageContents = appimageTools.extractType2 {inherit pname version src;}; in appimageTools.wrapType2 { inherit pname version src; nativeBuildInputs = [makeWrapper]; extraPkgs = pkgs: [ nodejs nodePackages.npm uv python3 ]; extraInstallCommands = '' install -m 444 -D ${appimageContents}/Eigent.desktop -t $out/share/applications substituteInPlace $out/share/applications/Eigent.desktop \ --replace 'Exec=AppRun' 'Exec=${pname}' install -m 444 -D ${appimageContents}/Eigent.png \ $out/share/icons/hicolor/256x256/apps/Eigent.png wrapProgram $out/bin/${pname} \ --prefix PATH : ${lib.makeBinPath [nodejs nodePackages.npm uv python3]} ''; meta = { description = "Open source AI cowork desktop app — local alternative to Claude Cowork"; homepage = "https://github.com/eigent-ai/eigent"; license = lib.licenses.asl20; platforms = lib.platforms.linux; mainProgram = "eigent"; }; }