diff --git a/.forgejo/workflows/CI.yml b/.forgejo/workflows/CI.yml
index 79673c2..a06345d 100644
--- a/.forgejo/workflows/CI.yml
+++ b/.forgejo/workflows/CI.yml
@@ -20,16 +20,29 @@ jobs:
 
     steps:
       - uses: actions/checkout@v4
+      
       - name: Install Roswell
+        if: steps.cache-roswell.outputs.cache-hit != 'true'
         env:
           LISP: ${{ matrix.lisp }}
         run: |
           curl -L https://raw.githubusercontent.com/roswell/roswell/master/scripts/install-for-ci.sh | sh
+      
       - name: Install Qlot
+        if: steps.cache-roswell.outputs.cache-hit != 'true'
         run: ros install fukamachi/qlot
+        
+      - name: Cache Roswell
+        id: cache-roswell
+        uses: actions/cache@v4
+        with:
+          path: .roswell/
+          key: roswell-${{ runner.os }}-${{ matrix.lisp }}
+      
       - name: Install dependencies
         run: |
           PATH="~/.roswell/bin:$PATH"
           qlot install
+      
       - name: Run tests
         run: .qlot/bin/rove hsx.asd