diff --git a/.github/workflows/runUiOctopusTests.yml b/.github/workflows/runUiOctopusTests.yml
new file mode 100644
index 000000000..0726992ce
--- /dev/null
+++ b/.github/workflows/runUiOctopusTests.yml
@@ -0,0 +1,89 @@
+name: Run Non Octopus UI Tests
+on:
+  workflow_dispatch:
+  schedule:
+      - cron: '0 12 * * *'
+jobs:
+  build-for-ui-test-mac-os:
+    if: github.repository == 'JetBrains/ideavim'
+    runs-on: macos-latest
+    steps:
+      - uses: actions/checkout@v4
+      - name: Apply Patch
+        run: |
+          cd ideavim
+          git apply src/test/java/ui/octopus.patch
+          cd ..
+      - name: Setup Java
+        uses: actions/setup-java@v4
+        with:
+          distribution: zulu
+          java-version: 11
+      - name: Setup FFmpeg
+        uses: FedericoCarboni/setup-ffmpeg@v3
+        with:
+          # Not strictly necessary, but it may prevent rate limit
+          # errors especially on GitHub-hosted macos machines.
+          github-token: ${{ secrets.GITHUB_TOKEN }}
+      - name: Setup Gradle
+        uses: gradle/gradle-build-action@v2.4.2
+      - name: Build Plugin
+        run: gradle :buildPlugin
+      - name: Run Idea
+        run: |
+          mkdir -p build/reports
+          gradle :runIdeForUiTests > build/reports/idea.log &
+      - name: Wait for Idea started
+        uses: jtalk/url-health-check-action@v3
+        with:
+          url: http://127.0.0.1:8082
+          max-attempts: 20
+          retry-delay: 10s
+      - name: Tests
+        run: gradle :testUi
+      - name: Move video
+        if: always()
+        run: mv video build/reports
+      - name: Move sandbox logs
+        if: always()
+        run: mv build/idea-sandbox/system/log sandbox-idea-log
+      - name: Save report
+        if: always()
+        uses: actions/upload-artifact@v4
+        with:
+          name: ui-test-fails-report-mac
+          path: |
+            build/reports
+            sandbox-idea-log
+#  build-for-ui-test-linux:
+#    runs-on: ubuntu-latest
+#    steps:
+#      - uses: actions/checkout@v2
+#      - name: Setup Java
+#        uses: actions/setup-java@v2.1.0
+#        with:
+#          distribution: zulu
+#          java-version: 11
+#      - name: Build Plugin
+#        run: gradle :buildPlugin
+#      - name: Run Idea
+#        run: |
+#          export DISPLAY=:99.0
+#          Xvfb -ac :99 -screen 0 1920x1080x16 &
+#          mkdir -p build/reports
+#          gradle :runIdeForUiTests #> build/reports/idea.log
+#      - name: Wait for Idea started
+#        uses: jtalk/url-health-check-action@1.5
+#        with:
+#          url: http://127.0.0.1:8082
+#          max-attempts: 15
+#          retry-delay: 30s
+#      - name: Tests
+#        run: gradle :testUi
+#      - name: Save fails report
+#        if: ${{ failure() }}
+#        uses: actions/upload-artifact@v2
+#        with:
+#          name: ui-test-fails-report-linux
+#          path: |
+#            ui-test-example/build/reports
\ No newline at end of file
diff --git a/src/test/java/ui/octopus.patch b/src/test/java/ui/octopus.patch
new file mode 100644
index 000000000..d3affee6c
--- /dev/null
+++ b/src/test/java/ui/octopus.patch
@@ -0,0 +1,17 @@
+Index: vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/Options.kt
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/Options.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/Options.kt
+--- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/Options.kt	(revision 2cc7ce5b316be5665406dcf8d3e41116ccbfb0b0)
++++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/Options.kt	(date 1706273373741)
+@@ -302,7 +302,7 @@
+   public val ideaglobalmode: ToggleOption = addOption(ToggleOption("ideaglobalmode", GLOBAL, "ideaglobalmode", false))
+   public val ideastrictmode: ToggleOption = addOption(ToggleOption("ideastrictmode", GLOBAL, "ideastrictmode", false))
+   public val ideatracetime: ToggleOption = addOption(ToggleOption("ideatracetime", GLOBAL, "ideatracetime", false))
+-  public val octopushandler: ToggleOption = addOption(ToggleOption("octopushandler", GLOBAL, "octopushandler", true))
++  public val octopushandler: ToggleOption = addOption(ToggleOption("octopushandler", GLOBAL, "octopushandler", false))
+ }
+
+ private class MultikeyMap(vararg entries: Option<VimDataType>) {