diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..549aaa09b23d84854d6b4b6f4c2faacf3918bc15
--- /dev/null
+++ b/.pre-commit-config.yaml
@@ -0,0 +1,10 @@
+repos:
+  - repo: https://github.com/astral-sh/ruff-pre-commit
+    rev: v0.4.0
+    hooks:
+      - id: ruff
+
+  - repo: https://github.com/pre-commit/mirrors-mypy
+    rev: v1.9.0
+    hooks:
+      - id: mypy
\ No newline at end of file
diff --git a/requirements.txt b/requirements.txt
index 010ed04932a9ec0cf586279112dc574665b1e89e..e6911e139c290806f815a36209d8a9d869d17e5b 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -3,4 +3,5 @@ uvicorn[standard]
 sphinx
 ruff
 mypy
-tox
\ No newline at end of file
+tox
+pre-commit
\ No newline at end of file