{ lib, stdenv, fetchFromGitHub, rustPlatform, versionCheckHook, cacert, gitMinimal, pkg-config, z3, }: rustPlatform.buildRustPackage (finalAttrs: { pname = "openshell"; version = "0.0.116"; src = fetchFromGitHub { owner = "NVIDIA"; repo = "OpenShell"; tag = "v${finalAttrs.version}"; hash = "sha256-9YOAkBPFBOhvc3s/0jl0yphjwblONB6rTZXosIydCIg="; }; cargoHash = "sha256-WVoB7tf1ZxjCo/4sRvKRy8yA0M+R+EjZVkbxr3LHGwQ="; nativeBuildInputs = [ pkg-config rustPlatform.bindgenHook ]; buildInputs = [ z3 ]; nativeCheckInputs = [ cacert gitMinimal ]; postPatch = '' # fill in package version to Cargo substituteInPlace Cargo.toml \ --replace-fail 'version = "0.0.0"' 'version = "${finalAttrs.version}"' # only build openshell-cli crate substituteInPlace Cargo.toml \ --replace-fail 'members = ["crates/*"]' 'members = ["crates/openshell-cli"]' ''; env = { # docker image tag baked in at compile time, must match binary version OPENSHELL_IMAGE_TAG = finalAttrs.version; }; doCheck = !stdenv.hostPlatform.isDarwin; nativeInstallCheckInputs = [ versionCheckHook ]; doInstallCheck = true; meta = { changelog = "https://github.com/NVIDIA/OpenShell/releases/tag/v${finalAttrs.version}"; description = "The safe, private runtime for autonomous AI agents."; homepage = "https://docs.nvidia.com/openshell/index.html"; license = lib.licenses.asl20; longDescription = '' NVIDIA OpenShell is an open source runtime to build and deploy autonomous, self-evolving agents more safely. OpenShell sits between your agent and your infrastructure to govern how the agent executes, what the agent can see and do, and where inference goes. It enables claws to run in isolated sandboxes, with fine-grained control over privacy and security. ''; maintainers = with lib.maintainers; [ wishstudio ]; mainProgram = "openshell"; platforms = lib.platforms.all; }; })