diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5de53573861e1ce12427719add7658677c9aa702..83e2b48f60ecbd9ec71bbc6259cd07c78831a777 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -72,7 +72,7 @@ test:
     - pip --version
     - pip install tox  # you can also use tox
     - rm -rf  **/__pycache__
-    - rm **/*.pyc
+    - rm -f **/*.pyc
     - tox
   coverage: '/^TOTAL.+?(\d+\%)$/'
   artifacts:
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..ddc6122d0bbf5b3614a0c182a2681fa9f14d2489
--- /dev/null
+++ b/.pre-commit-config.yaml
@@ -0,0 +1,29 @@
+repos:
+-   repo: https://github.com/ambv/black
+    rev: stable
+    hooks:
+    - id: black
+      language_version: python3.6
+-   repo: https://gitlab.com/pycqa/flake8
+    rev: 3.8.3
+    hooks:
+    - id: flake8
+-   repo: https://gitlab.com/dboe/dough
+    rev: v0.1.3
+    hooks:
+    - id: readthedocs_requirements
+-   repo: https://github.com/pre-commit/pre-commit-hooks 
+    rev: v3.1.0
+    hooks:
+    - id: check-json
+    - id: pretty-format-json
+    - id: check-merge-conflict
+    - id: check-toml
+    - id: check-yaml
+    - id: debug-statements
+    - id: detect-private-key
+    - id: end-of-file-fixer
+-   repo: https://github.com/asottile/blacken-docs
+    rev: v1.7.0
+    hooks:
+    - id: blacken-docs
diff --git a/docs/requirements.txt b/docs/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..edf22e4542c382ca8e623491d006ef3b4c68597f
--- /dev/null
+++ b/docs/requirements.txt
@@ -0,0 +1,8 @@
+# Autogenerated by Makefile from setup.cfg install_requies section. Remove this line if you want to fix this file.
+six
+numpy
+sympy
+scipy
+pathlib
+rna>=0.5.0
+sortedcontainers