diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 98516d19eb4ce05ad8f23b41125d364f2b867c02..530abf4e8f6dfa6d0d8b84e29033848f5b6def88 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1,6 +1,11 @@
 default_language_version:
   python: python3.11.3
 repos:
+  - repo: meta
+    hooks:
+      - id: check-hooks-apply
+      - id: check-useless-excludes
+
   - repo: https://github.com/psf/black
     rev: 23.9.1
     hooks:
@@ -21,16 +26,38 @@ repos:
       - id: ruff-format
         types_or: [ python, pyi, jupyter ]
 
+  - repo: https://github.com/codespell-project/codespell
+    rev: v2.2.4
+    hooks:
+      - id: codespell
+        name: Run codespell to check for common misspellings in files
+        language: python
+        types: [ text ]
+        args: [ "--write-changes", "--ignore-words-list", "asend" ]
+        exclude: "poetry.lock"
+
 
   - repo: https://github.com/pre-commit/pre-commit-hooks
     rev: v4.4.0
     hooks:
-      - id: trailing-whitespace
+      - id: check-vcs-permalinks
       - id: end-of-file-fixer
+        # exclude: "tests/((commands|data)/|test_).+"
+      - id: trailing-whitespace
+        args: [ --markdown-linebreak-ext=md ]
+      - id: debug-statements
+      - id: no-commit-to-branch
+      - id: check-merge-conflict
+      - id: check-toml
       - id: check-yaml
+        args: [ '--unsafe' ] # for mkdocs.yml
+      - id: detect-private-key
 
-  - repo: https://github.com/alessandrojcm/commitlint-pre-commit-hook
-    rev: v9.10.0
+  - repo: https://github.com/commitizen-tools/commitizen
+    rev: v3.13.0
     hooks:
-        - id: commitlint
-          stages: [commit-msg]
+      - id: commitizen
+      - id: commitizen-branch
+        stages:
+          - post-commit
+          - push