diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
new file mode 100644
index 0000000000000000000000000000000000000000..3892b11e72908fe2c09bf396d191c2b1524c665e
--- /dev/null
+++ b/.github/workflows/stale.yml
@@ -0,0 +1,23 @@
+name: Close inactive issues
+on:
+  schedule:
+    - cron: "30 1 * * *"
+
+jobs:
+  close-issues:
+    runs-on: ubuntu-latest
+    permissions:
+      issues: write
+      pull-requests: write
+    steps:
+      - uses: actions/stale@v5
+        with:
+          days-before-issue-stale: 90
+          days-before-issue-close: 30
+          stale-issue-label: "stale"
+          stale-issue-message: "🚧🚨 This issue is being marked as stale due to 90 days of inactivity. 🚧🚨"
+          close-issue-message: "🚧🚨 This issue was closed because it has been inactive for 14 days since being marked as stale. 🚧🚨"
+          days-before-pr-stale: -1
+          days-before-pr-close: -1
+          only-labels: 'needs-triage'
+          repo-token: ${{ secrets.GITHUB_TOKEN }}