Files
2026-05-02 01:46:49 +00:00

74 lines
2.0 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
rustPlatform,
versionCheckHook,
cacert,
gitMinimal,
pkg-config,
z3,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "openshell";
version = "0.0.36";
src = fetchFromGitHub {
owner = "NVIDIA";
repo = "OpenShell";
tag = "v${finalAttrs.version}";
hash = "sha256-AnZliQrn5kwaVJw1LEorT+VPtIk2NIbVY0QISxfnORs=";
};
cargoHash = "sha256-kmmzzph39KaAXkEbjOHMoTRltX2ttqxtHppb6apoSSs=";
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;
};
})