diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..7f7a6a44a78c905530b2f3f6a18255add5539f32
--- /dev/null
+++ b/.pre-commit-config.yaml
@@ -0,0 +1,17 @@
+repos:
+- repo: https://github.com/pre-commit/pre-commit-hooks
+  rev: v4.4.0
+  hooks:
+  - id: end-of-file-fixer
+- repo: https://github.com/psf/black
+  rev: 23.3.0
+  hooks:
+  - id: black
+- repo: https://github.com/pycqa/isort/
+  rev: 5.12.0
+  hooks:
+  - id: isort
+- repo: https://github.com/pycqa/flake8
+  rev: 6.0.0
+  hooks:
+  - id: flake8
diff --git a/README.md b/README.md
index f3873677297d30c4de1d1d3880dee16890fe4d2e..27e45d1275a9eda28ca92fc124b048ba08849c98 100644
--- a/README.md
+++ b/README.md
@@ -52,4 +52,11 @@ flask run
 export FLASK_APP=transporte/transporte.py
 export FLASK_DEBUG=True
 flask run
-```
\ No newline at end of file
+```
+
+## development
+Install development tools
+```
+pip install -r requirements-dev.txt
+pre-commit install
+```
diff --git a/requirements-dev.txt b/requirements-dev.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d8a3fa660ab6e3c796dbaa9d4787482bfc7dffd6
--- /dev/null
+++ b/requirements-dev.txt
@@ -0,0 +1,4 @@
+black==23.3.0
+flake8==6.0.0
+isort==5.12.0
+pre-commit==3.2.2