diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..c3c3595093bbb1302723b4dabeb2b5a46259b0c6
--- /dev/null
+++ b/.pre-commit-config.yaml
@@ -0,0 +1,37 @@
+repos:
+  - repo: https://github.com/pre-commit/mirrors-eslint
+    rev: v7.25.0
+    hooks:
+    -   id: eslint
+        language: node
+        args: ['--fix', '--max-warnings', '0']
+        files: \.(js|vue)$
+        types: [file]
+        additional_dependencies:
+        - eslint@7.25.0
+        - eslint-plugin-vue@7.9.0
+        - eslint-config-prettier@8.3.0
+        - eslint-plugin-prettier@3.4.0
+        - eslint-plugin-import@2.22.1
+        - eslint-import-resolver-webpack@0.13.0
+        - babel-eslint@10.1.0
+        - prettier@2.2.1
+  - repo: https://github.com/pre-commit/pre-commit-hooks
+    rev: v3.2.0
+    hooks:
+      - id: check-executables-have-shebangs
+      - id: check-merge-conflict
+      - id: check-symlinks
+      - id: trailing-whitespace
+      - id: check-yaml
+      - id: mixed-line-ending
+      - id: check-json
+  - repo: https://github.com/codespell-project/codespell
+    rev: v1.17.1
+    hooks:
+      - id: codespell
+        args: ['--write-changes']
+        exclude: (^assets/|^package-lock.json$)
+  - repo: meta
+    hooks:
+      - id: check-useless-excludes
diff --git a/tools/build_utf8_scripts.py b/tools/build_utf8_scripts.py
index 117aa09d29a0be758dbc29ff5e9d43abc8e417f3..8e8de470a8f66b842e09cf269facb90154320e89 100644
--- a/tools/build_utf8_scripts.py
+++ b/tools/build_utf8_scripts.py
@@ -27,7 +27,7 @@ def int2hex(value):
     # Convert to uppercase by convention
     value = value.upper()
 
-    # Pad to 4 digits mininum
+    # Pad to 4 digits minimum
     return value.zfill(4)