diff --git a/pkgs/tools/misc/atuin/default.nix b/pkgs/tools/misc/atuin/default.nix
new file mode 100644
index 00000000000..75a5fc57410
--- /dev/null
+++ b/pkgs/tools/misc/atuin/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "atuin";
+ version = "0.7.1";
+
+ src = fetchFromGitHub {
+ owner = "ellie";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-jjGP8YeHnEr0f9RONwA6wZT872C0jXTvSRdt9zAu6KE=";
+ };
+
+ cargoSha256 = "0vy6q3hjp374lyg00zxim8aplh83iq3f4rrmpz5vnpwbag1fdql3";
+
+ meta = with lib; {
+ description = "Replacement for a shell history which records additional commands context with optional encrypted synchronization between machines";
+ homepage = "https://github.com/ellie/atuin";
+ license = licenses.mit;
+ maintainers = [ maintainers.onsails ];
+ };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 544d2f71825..a9f6329844a 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -156,6 +156,8 @@ in
antsimulator = callPackage ../games/antsimulator { };
+ atuin = callPackage ../tools/misc/atuin { };
+
fiche = callPackage ../servers/fiche { };
fishnet = callPackage ../servers/fishnet { };