Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
203 changes: 90 additions & 113 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,163 +1,140 @@
# Cursor Auto Accept
# Cursor Auto Accept CLI

A tool for automatically accepting Cursor's AI suggestions.
## Project Overview

## Important Note
Cursor Auto Accept is an intelligent CLI tool designed to automatically accept AI code suggestions in the Cursor IDE across multiple monitors. This automation tool helps developers maintain workflow efficiency by reducing manual interactions with AI-generated code suggestions.

The `analyze_hover_results.py` script is the current working version for analyzing button positions and matches. This script:
- Takes a full screen screenshot
- Analyzes potential button matches using template matching
- Groups matches by x-axis position
- Prioritizes matches by confidence and y-axis position
- Generates a visualization showing calibration points and matches
- Uses color coding to distinguish between different buttons (green, yellow, red)
Key benefits:
- Minimize context switching during coding
- Automate repetitive UI interactions
- Support multi-monitor development environments
- Provide detailed logging and monitoring

Other calibration scripts have been moved to the `_archive` directory.
## Installation

## Features

- Multi-monitor support with per-monitor calibration
- Rate limiting (max 8 clicks per minute)
- Cursor position restoration after clicks
- Automatic calibration
- Process management (start/stop scripts)
- Detailed logging
### Prerequisites
- Python 3.8+
- pip package manager

## Setup
### Installation Methods

1. Clone this repository:
#### 1. Direct Git Clone
```bash
git clone https://github.com/yourusername/cursor-auto-accept
git clone https://github.com/yourusername/cursor-auto-accept.git
cd cursor-auto-accept
```

2. Run the setup script:
#### 2. Setup Script
```bash
./setup.sh
```
This will:
- Create necessary directories
- Set up permissions
- Create a Python virtual environment
- Install required packages

## Calibration

Before first use, you need to calibrate the bot for each monitor where you use Cursor:

1. Stop the bot if it's running:
```bash
./stop_clickbot.sh
```
This script will:
- Create Python virtual environment
- Install dependencies
- Set up necessary directories

2. Run calibration mode:

For all monitors:
```bash
source venv/bin/activate
python cursor_auto_accept.py --capture
```

For a specific monitor (0-based index):
```bash
python cursor_auto_accept.py --capture --monitor 0 # First monitor
python cursor_auto_accept.py --capture --monitor 1 # Second monitor
```

3. Follow the calibration steps for each monitor:
- Move Cursor to the target monitor
- Trigger an AI prompt (so you can see the accept button)
- Move your mouse over the accept button
- Keep it still for 5 seconds
- Wait for confirmation message
- Press Enter to continue to next monitor (if calibrating all)

The bot will save separate accept button images for each monitor in:
```
assets/monitor_0/accept_button.png
assets/monitor_1/accept_button.png
...
```
### Dependencies
- OpenCV
- PyAutoGUI
- MSS (Multi-Screen Shot)
- NumPy
- Pillow

## Usage

### Starting the Bot

```bash
# Start the auto-accept bot
./start_clickbot.sh
```

The bot will:
- Check if another instance is running
- Load calibration images for all monitors
- Start monitoring all screens
- Begin accepting prompts automatically

### Stopping the Bot

```bash
# Stop the running bot
./stop_clickbot.sh
```

### Monitoring
### Calibration
Before first use, calibrate the bot for each monitor:

The bot logs all activity to `temp/logs/clickbot.log`. You can monitor it with:
```bash
# Calibrate all monitors
python cursor_auto_accept.py --capture

# Calibrate specific monitor (0-based index)
python cursor_auto_accept.py --capture --monitor 0
python cursor_auto_accept.py --capture --monitor 1
```

### Monitoring Logs
```bash
# Real-time log monitoring
tail -f temp/logs/clickbot.log
```

## Command Reference

| Command | Flags | Description | Example |
|---------|-------|-------------|---------|
| `cursor_auto_accept.py` | `--capture` | Start calibration mode | `python cursor_auto_accept.py --capture` |
| `cursor_auto_accept.py` | `--monitor` | Specify monitor for calibration | `python cursor_auto_accept.py --capture --monitor 1` |
| `start_clickbot.sh` | - | Start auto-accept bot | `./start_clickbot.sh` |
| `stop_clickbot.sh` | - | Stop auto-accept bot | `./stop_clickbot.sh` |

## Configuration

The bot has several built-in settings:
### Default Settings
- Rate limit: 8 clicks per minute
- Confidence threshold: 0.8 (80% match required)
- Confidence threshold: 0.8 (80% match)
- Search interval: 0.2 seconds
- Log update interval: 5 seconds

## Troubleshooting
### Configuration Location
Configuration is managed via script defaults and command-line flags.

1. If the bot isn't clicking on a specific monitor:
- Recalibrate that monitor: `python cursor_auto_accept.py --capture --monitor X`
- Check the logs for monitor-specific errors
- Ensure Cursor's accept button is visible on that monitor
## Project Structure
```
.
├── assets/ # Monitor-specific calibration images
├── temp/ # Runtime files and logs
│ ├── clickbot.pid
│ └── logs/
├── cursor_auto_accept.py # Main bot script
├── setup.sh # Environment setup
└── start_clickbot.sh # Bot management scripts
```

2. If clicks are inaccurate:
- Recalibrate with a clearer view of the accept button
- Make sure the button isn't partially obscured
- Try calibrating in different lighting conditions
## Troubleshooting

3. If the bot won't start:
- Check if another instance is running
- Verify the PID file in `temp/clickbot.pid`
- Ensure Python environment is activated
### Common Issues
1. Bot not clicking on specific monitor
- Recalibrate the monitor
- Check logs for specific errors
- Ensure Cursor's accept button is visible

## Directory Structure
2. Inaccurate clicks
- Recalibrate with a clear button view
- Avoid partially obscured buttons
- Calibrate in consistent lighting

```
.
├── assets/ # Calibration images
│ ├── monitor_0/ # First monitor
│ │ └── accept_button.png
│ └── monitor_1/ # Second monitor
│ └── accept_button.png
├── temp/ # Runtime files
│ ├── clickbot.pid # Process ID
│ └── logs/ # Log files
├── cursor_auto_accept.py # Main bot script
├── setup.sh # Setup script
├── start_clickbot.sh # Start script
└── stop_clickbot.sh # Stop script
```
## Contributing

## Requirements
1. Fork the repository
2. Create a feature branch
3. Commit your changes
4. Push to the branch
5. Create a Pull Request

- Python 3.8+
- OpenCV
- PyAutoGUI
- MSS (Multi-Screen Shot)
- NumPy
- Pillow
Please include:
- Clear description of changes
- Updated tests
- Documentation updates

## License

MIT License
MIT License. See LICENSE file for details.

## Contact

For issues, feature requests, or support, please [open an issue](https://github.com/yourusername/cursor-auto-accept/issues).