diff --git a/.github/labeler.yaml b/.github/labeler.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..d31a361baf2212b092bc7dca01ccf0f0e0b20ce4
--- /dev/null
+++ b/.github/labeler.yaml
@@ -0,0 +1,78 @@
+llappearance:
+  - indra/llappearance/**/*
+  
+llaudio:
+  - indra/llaudio/**/*
+
+llcharacter:
+  - indra/llcharacter/**/*
+
+llcommon:
+  - indra/llcommon/**/*
+
+llcorehttp:
+  - indra/llcorehttp/**/*
+
+llcrashlogger:
+  - indra/llcrashlogger/**/*
+
+llfilesystem:
+  - indra/llfilesystem/**/*
+
+llimage:
+  - indra/llimage/**/*
+
+llimagej2coj:
+  - indra/llimagej2coj/**/*
+
+llinventory:
+  - indra/llinventory/**/*
+
+llkdu:
+  - indra/llkdu/**/*
+
+llmath:
+  - indra/llmath/**/*
+
+llmeshoptimizer:
+  - indra/llmeshoptimizer/**/*
+
+llmessage:
+  - indra/llmessage/**/*
+
+llplugin:
+  - indra/llplugin/**/*
+
+llprimitive:
+  - indra/llprimitive/**/*
+
+llrender:
+  - indra/llrender/**/*
+
+llui:
+  - indra/llui/**/*
+
+llwindow:
+  - indra/llwindow/**/*
+
+llxml:
+  - indra/llxml/**/*
+
+cmake:
+  - '**/*.cmake'
+  - '**/*/cmake/*'
+  - '**/CMakeLists.txt'
+
+python:
+  - '**/*.py'
+
+c/cpp:
+  - '**/*.c'
+  - '**/*.cpp'
+  - '**/*.cxx'
+  - '**/*.h'
+  - '**/*.hpp'
+  - '**/*.hxx'
+  - '**/*.i'
+  - '**/*.inl'
+  - '**/*.y'
diff --git a/.github/workflows/label.yaml b/.github/workflows/label.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..6e41d8aa2d808e5edd3e99bc67067ba5353b7b69
--- /dev/null
+++ b/.github/workflows/label.yaml
@@ -0,0 +1,15 @@
+name: Pull Request Labeler
+on:
+  - pull_request_target
+
+jobs:
+  triage:
+    permissions:
+      contents: read
+      pull-requests: write
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/labeler@v4
+        with:
+          configuration-path: .github/labeler.yaml
+          repo-token: "${{ secrets.GITHUB_TOKEN }}"