{ lib , appimageTools , fetchurl }: let pname = "lmstudio"; version = "0.2.20"; src = fetchurl { url = "https://releases.lmstudio.ai/linux/${version}/beta/LM_Studio-${version}.AppImage"; hash = "sha256-T92ZDqGvxJfBkAWsK8EgHdQZnLefK3gDP2vCTL8X+eM="; }; appimageContents = appimageTools.extractType2 { inherit pname version src; }; in appimageTools.wrapType2 { inherit pname version src; extraPkgs = pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs) ++ [ pkgs.ocl-icd ]; extraInstallCommands = '' mkdir -p $out/share/applications cp -r ${appimageContents}/usr/share/icons $out/share install -m 444 -D ${appimageContents}/lm-studio.desktop -t $out/share/applications substituteInPlace $out/share/applications/lm-studio.desktop \ --replace-fail 'Exec=AppRun --no-sandbox %U' 'Exec=lmstudio' ''; meta = { description = "LM Studio is an easy to use desktop app for experimenting with local and open-source Large Language Models (LLMs)"; homepage = "https://lmstudio.ai/"; license = lib.licenses.unfree; mainProgram = "lmstudio"; maintainers = with lib.maintainers; [ drupol ]; platforms = lib.platforms.linux; sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; }; }