diff --git a/pkgs/tools/misc/chelf/default.nix b/pkgs/tools/misc/chelf/default.nix
new file mode 100644
index 000000000000..4c54ab239d29
--- /dev/null
+++ b/pkgs/tools/misc/chelf/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "chelf-${version}";
+  version = "0.2.2";
+
+  src = fetchFromGitHub {
+    owner = "Gottox";
+    repo = "chelf";
+    rev = "v${version}";
+    sha256 = "0xwd84aynyqsi2kcndbff176vmhrak3jmn3lfcwya59653pppjr6";
+  };
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mv chelf $out/bin/chelf
+  '';
+
+  meta = with stdenv.lib; {
+    description = "change or display the stack size of an ELF binary";
+    homepage = https://github.com/Gottox/chelf;
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ dtzWill ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 285ed3b75450..15684544fdbb 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1112,6 +1112,8 @@ in
 
   cfdyndns = callPackage ../applications/networking/dyndns/cfdyndns { };
 
+  chelf = callPackage ../tools/misc/chelf { };
+
   cht-sh = callPackage ../tools/misc/cht.sh { };
 
   ckbcomp = callPackage ../tools/X11/ckbcomp { };