diff --git a/pkgs/development/tools/haskell/codex/default.nix b/pkgs/development/tools/haskell/codex/default.nix
new file mode 100644
index 000000000000..b8c9e297ce8b
--- /dev/null
+++ b/pkgs/development/tools/haskell/codex/default.nix
@@ -0,0 +1,21 @@
+{ cabal, Cabal_1_20_0_0, downloadCurl, either, filepath, hackageDb, MissingH
+, monadLoops, tar, text, transformers, yaml, zlib
+}:
+
+cabal.mkDerivation (self: {
+  pname = "codex";
+  version = "0.0.1.6";
+  sha256 = "0yr3qygxxj4k8ld7jh1h87jjawvixbz5wjssdxd5ix7askmm1dx2";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    Cabal_1_20_0_0 downloadCurl either filepath hackageDb MissingH 
+    monadLoops tar text transformers yaml zlib
+  ];
+  meta = {
+    homepage = "http://github.com/aloiscochard/codex";
+    description = "A ctags file generator for cabal project dependencies";
+    license = "unknown";
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index abb58bd7bcc1..f6fb03478e45 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -2671,6 +2671,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
   cabalInstall_1_20_0_1 = callPackage ../tools/package-management/cabal-install/1.20.0.1.nix { Cabal = self.Cabal_1_20_0_0; };
   cabalInstall = self.cabalInstall_1_20_0_1;
 
+  codex = callPackage ../development/tools/haskell/codex {};
+
   gitAnnex = callPackage ../applications/version-management/git-and-tools/git-annex {};
 
   githubBackup = callPackage ../applications/version-management/git-and-tools/github-backup {};