{ lib, stdenv, callPackage, ... }@args: let pname = "lmstudio"; version_aarch64-darwin = "0.3.28-2"; hash_aarch64-darwin = "sha256-7sxhKZwZKzA2VUPHsChgysxXMB7SKEd9zK4kIPbWYjo="; version_x86_64-linux = "0.3.28-2"; hash_x86_64-linux = "sha256-ewVjJ0Sy5Zwf9tvlfngQKnAfAv3BvPIAO+p1tJ3mO8M="; 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 = "lm-studio"; maintainers = with lib.maintainers; [ crertel ]; platforms = [ "x86_64-linux" "aarch64-darwin" ]; sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; broken = stdenv.hostPlatform.isDarwin; # Upstream issue: https://github.com/lmstudio-ai/lmstudio-bug-tracker/issues/347 }; in if stdenv.hostPlatform.isDarwin then callPackage ./darwin.nix { inherit pname meta; passthru.updateScript = ./update.sh; version = version_aarch64-darwin; url = args.url or "https://installers.lmstudio.ai/darwin/arm64/${version_aarch64-darwin}/LM-Studio-${version_aarch64-darwin}-arm64.dmg"; hash = args.hash or hash_aarch64-darwin; } else callPackage ./linux.nix { inherit pname meta; passthru.updateScript = ./update.sh; version = version_x86_64-linux; url = args.url or "https://installers.lmstudio.ai/linux/x64/${version_x86_64-linux}/LM-Studio-${version_x86_64-linux}-x64.AppImage"; hash = args.hash or hash_x86_64-linux; }