openclaw: init at 2026.2.26

This commit is contained in:
Chris Portela
2026-02-27 17:55:00 +00:00
parent 19cdbffe0c
commit adc9c1e8dc
+113
View File
@@ -0,0 +1,113 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
fetchPnpmDeps,
pnpmConfigHook,
pnpm_10,
nodejs_22,
makeWrapper,
versionCheckHook,
nix-update-script,
rolldown,
version ? "2026.2.26",
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "openclaw";
version = version;
src = fetchFromGitHub {
owner = "openclaw";
repo = "openclaw";
tag = "v${finalAttrs.version}";
hash = "sha256-9kej1aK7j3/FU2X/bN983YqQClfnWfFPvByEkQKlQ4E=";
};
pnpmDepsHash = "sha256-Jcj0i/2Mh8Z5lp909Fkotw/isfLTIVMxtJgWwAtctEw=";
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
pnpm = pnpm_10;
fetcherVersion = 3;
hash = finalAttrs.pnpmDepsHash;
};
buildInputs = [ rolldown ];
nativeBuildInputs = [
pnpmConfigHook
pnpm_10
nodejs_22
makeWrapper
];
preBuild = ''
rm -rf node_modules/rolldown node_modules/@rolldown/pluginutils
mkdir -p node_modules/@rolldown
cp -r ${rolldown}/lib/node_modules/rolldown node_modules/rolldown
cp -r ${rolldown}/lib/node_modules/@rolldown/pluginutils node_modules/@rolldown/pluginutils
chmod -R u+w node_modules/rolldown node_modules/@rolldown/pluginutils
'';
buildPhase = ''
runHook preBuild
pnpm install --frozen-lockfile
pnpm build
pnpm ui:build
runHook postBuild
'';
installPhase = ''
runHook preInstall
libdir=$out/lib/openclaw
mkdir -p $libdir $out/bin
cp --reflink=auto -r package.json dist node_modules $libdir/
cp --reflink=auto -r assets docs skills patches extensions $libdir/ 2>/dev/null || true
rm -f $libdir/node_modules/.pnpm/node_modules/clawdbot \
$libdir/node_modules/.pnpm/node_modules/moltbot \
$libdir/node_modules/.pnpm/node_modules/openclaw-control-ui
makeWrapper ${lib.getExe nodejs_22} $out/bin/openclaw \
--add-flags "$libdir/dist/index.js" \
--set NODE_PATH "$libdir/node_modules"
ln -s $out/bin/openclaw $out/bin/moltbot
ln -s $out/bin/openclaw $out/bin/clawdbot
runHook postInstall
'';
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "Self-hosted, open-source AI assistant/agent";
longDescription = ''
Self-hosted AI assistant/agent connected to all your apps on your Linux
or macOS machine and controlled via your choice of chat app.
Note: Project is in early/rapid development and uses LLMs to parse untrusted
content while having full access to system by default.
Parsing untrusted input with LLMs leaves them vulnerable to prompt injection.
(Originally known as Moltbot and ClawdBot)
'';
homepage = "https://openclaw.ai";
changelog = "https://github.com/openclaw/openclaw/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
mainProgram = "openclaw";
maintainers = with lib.maintainers; [ chrisportela ];
platforms = with lib.platforms; linux ++ darwin;
knownVulnerabilities = [
"Project uses LLMs to parse untrusted content, making it vulnerable to prompt injection, while having full access to system by default."
];
};
})