A macOS menubar app that keeps your agents working in Cursor 🔄
CodeLooper is a native macOS application that sits in your menubar, displaying real-time status of your Cursor instances with elegant visual indicators. When Cursor breaks out of its productive loop – getting stuck generating code, dropping connections, or hitting errors – CodeLooper loops back in to restore the flow using macOS accessibility APIs.
The menu bar shows the CodeLooper icon alongside colored status badges:
- 🟢 Green play button with count: Number of instances actively generating/working
- 🔴 Red stop button with count: Number of instances stopped or in error state
Click the menu bar icon to see detailed status of each Cursor window in a native macOS popover.
It resolves these situations:
-
Plain Stop: Cursor just stops, even though the text indicates that there's more to do.
-
Connection Issues: "We're having trouble connecting to the model provider."
-
Edited in another chat: Automatically accepts if another tab edited a file.
CodeLooper can install various MCP's that help Cursor to build with fewer manual interventions:
- 👻 Peekaboo: Enables your IDE to make screenshots and ask questions about images.
- 🤖 Terminator: Manages a Terminal outside of the loop, so processes that might get stuck don't break the loop.
- 🧠 Claude Code: A buddy for your IDE that your agent can ask if he's stuck. Can do coding task and offer "a pair of fresh eyes" that often un-stucks the loop.
- 🐱 Conduit: Advanced file manipulation for faster refactoring.
- 🎯 Automator: AppleScript for your IDE.
Warning: These tools give your agent full power over your system, so integrate at your own risk.
- macOS Version: macOS 15 (Sequoia)
- Architecture: Apple Silicon
- Accessibility: Requires accessibility, automation and screen capture permissions for IDE automation
- Real-time Status Display: Visual status badges in menu bar showing running/stopped instances
- Automatic Recovery: Detects and resolves common Cursor interruptions
- Multi-window Support: Monitors all open Cursor windows independently
- Claude Instance Monitoring: Optional monitoring of Claude.ai browser instances
- JavaScript Hook Injection: Advanced monitoring via injected hooks for better state detection
- Native macOS Design: Uses NSVisualEffectView for authentic popover appearance
- Adaptive Icons: Menu bar icon adapts to light/dark appearance
- Detailed Status Popover: Shows individual window status, git info, and AI analysis state
- Settings Window: Native toolbar-based preferences with multiple tabs
- Screenshot Analysis: Built-in window screenshot viewer for debugging
- MCP Integration: Automatic installation and configuration of Model Context Protocol servers
- Git Repository Tracking: Shows branch and change status for each window
- Debug Mode: Advanced diagnostics and JavaScript console access
- Session Logging: Comprehensive activity logs for troubleshooting
Download one of the releases from GitHub's Release section.
Note: This is currently under active development and doesn't yet work.
- Xcode 16.0 or later (for Swift 6.0)
- mise (for tool version management)
- Homebrew (for additional tools)
-
Clone the repository:
git clone https://github.com/steipete/CodeLooper2.git cd CodeLooper2
-
Install mise and dependencies:
# Install mise curl https://mise.run | sh # Install tools via mise mise install # Generate Xcode project ./scripts/generate-xcproj.sh
-
Open in Xcode:
open CodeLooper.xcworkspace
Tool versions are managed via .mise.toml
:
- Tuist: 4.52.0
The CI/CD pipeline automatically uses mise to ensure consistent tool versions.