diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index d183655345103dd9c0e7d7e56ebc0d9e06279eb1..39c145a1fb9cee841143e707bf5404d5c18592ea 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -29,7 +29,25 @@ We use the following tools for linting and formatting:
 
 Style configurations of yapf and isort can be found in [.style.yapf](../.style.yapf) and [.isort.cfg](../.isort.cfg).
 
+We use [pre-commit hook](https://pre-commit.com/) that checks and formats for `flake8`, `yapf`, `isort`, `trailing whitespaces`,
+ fixes `end-of-files`, sorts `requirments.txt` automatically on every commit.
+The config for a pre-commit hook is stored in [.pre-commit-config](../.pre-commit-config.yaml).
+
+After you clone the repository, you will need to install initialize pre-commit hook.
+
+```
+pip install -U pre-commit
+```
+
+From the repository folder
+```
+pre-commit install
+```
+
+After this on every commit check code linters and formatter will be enforced.
+
+
 >Before you create a PR, make sure that your code lints and is formatted by yapf.
 
 ### C++ and CUDA
-We follow the [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html).
\ No newline at end of file
+We follow the [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html).
diff --git a/.isort.cfg b/.isort.cfg
index c1684dddc8a36fd02b5a9310a5b70cecb8194a7c..5169bea691bddfef33e1dc45538b254cfb74d637 100644
--- a/.isort.cfg
+++ b/.isort.cfg
@@ -2,6 +2,6 @@
 line_length = 79
 multi_line_output = 0
 known_first_party = mmdet
-known_third_party = mmcv,numpy,matplotlib,pycocotools,six,seaborn,terminaltables,torch,torchvision
+known_third_party = Cython,albumentations,cv2,imagecorruptions,matplotlib,mmcv,numpy,pycocotools,robustness_eval,roi_align,roi_pool,seaborn,setuptools,six,terminaltables,torch
 no_lines_before = STDLIB,LOCALFOLDER
-default_section = THIRDPARTY
\ No newline at end of file
+default_section = THIRDPARTY
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..2fae06cd174d826420d3ee48cfb0037b2dbfa3c5
--- /dev/null
+++ b/.pre-commit-config.yaml
@@ -0,0 +1,21 @@
+repos:
+- repo: https://github.com/asottile/seed-isort-config
+  rev: v1.9.3
+  hooks:
+      - id: seed-isort-config
+- repo: https://github.com/pre-commit/mirrors-isort
+  rev: v4.3.21
+  hooks:
+      - id: isort
+- repo: https://github.com/pre-commit/mirrors-yapf
+  rev: 80b9cd2f0f3b1f3456a77eff3ddbaf08f18c08ae
+  hooks:
+    - id: yapf
+- repo: https://github.com/pre-commit/pre-commit-hooks
+  rev: v2.3.0
+  hooks:
+    - id: flake8
+    - id: trailing-whitespace
+    - id: check-yaml
+    - id: end-of-file-fixer
+    - id: requirements-txt-fixer