diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000000000000000000000000000000000000..07d41ddf8202b9b6206ab3aad2fdf0b43225d78c
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1 @@
+*.ipynb filter=ipynb_filter
diff --git a/ipynb_filter.py b/ipynb_filter.py
new file mode 100644
index 0000000000000000000000000000000000000000..7165a27c72d2e207412be7e6b83585bc2fc69cf7
--- /dev/null
+++ b/ipynb_filter.py
@@ -0,0 +1,34 @@
+#!/usr/bin/env python3
+
+# `ipynb_filter.py`:
+# This is a git filters that strips out the outputs and
+# meta data of a Jupyer notebook using `nbconvert`.
+# Execute the following line in order to activate this filter:
+# python ipynb_filter.py
+#
+# The following line should be in `.gitattributes`:
+# *.ipynb filter=ipynb_filter
+#
+# from github.com/basnijholt/ipynb_git_filters
+
+from nbconvert.preprocessors import Preprocessor
+
+
+class RemoveMetadata(Preprocessor):
+    def preprocess(self, nb, resources):
+        nb.metadata = {"language_info": {"name":"python",
+                                         "pygments_lexer": "ipython3"}}
+        return nb, resources
+
+
+if __name__ == '__main__':
+    # The filter is getting activated
+    import os
+    git_cmd = 'git config filter.ipynb_filter.clean "jupyter nbconvert --to notebook --config ipynb_filter.py --stdin --stdout"'
+    os.system(git_cmd)
+else:
+    # This script is used as config
+    c.Exporter.preprocessors = [RemoveMetadata]
+    c.ClearOutputPreprocessor.enabled = True
+    c.ClearOutputPreprocessor.remove_metadata_fields = [
+        "deletable", "editable", "collapsed", "scrolled"]