diff --git a/.codespellrc b/.codespellrc
new file mode 100644
index 00000000..5de36737
--- /dev/null
+++ b/.codespellrc
@@ -0,0 +1,4 @@
+[codespell]
+skip = *.pulsar.go,*.pb.go,*.pb.gw.go,*.json,*.git,*.bin,*.sum,*.mod,CHANGELOG.md,./docs
+count = true
+quiet-level = 3
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 6ef3f265..478f2762 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -233,3 +233,18 @@ jobs:
           version: "v0.9.0"
         env:
           SHELLCHECK_OPTS: -e SC2034
+
+  lint-typos:
+    runs-on: ubuntu-22.04
+    steps:
+      - name: Check out repository
+        uses: actions/checkout@v4
+
+      - name: Install codespell
+        run: |
+          pip install codespell==2.3.0
+
+      - name: Check for spelling errors
+        run: |
+          codespell --config .codespellrc
+          exit $?