An Electron application that displays a second cursor on your screen and includes keystroke logging capabilities.
- Displays a customizable gradient cursor moving in a circular pattern
- Click-through transparent window that doesn't interfere with normal computer use
- Periodic screen capture and analysis using Gemini AI
- Secure keystroke logging with permission handling
- Automatic cleanup of old logs
- Node.js and npm
- For macOS: Input Monitoring and Screen Recording permissions
- Clone the repository
- Install dependencies:
npm installStart the application with:
npm startOn first run, the app will:
- Request necessary permissions (macOS)
- Input Monitoring permission for keystroke logging
- Screen Recording permission for screen capture
- Create a transparent window with the second cursor
- Begin periodic screen captures and analysis
- Start logging keystrokes (if permissions granted)
- Creates a transparent, click-through Electron window covering the entire screen
- Displays a div element styled as a cursor moving in a circular pattern
- Window doesn't capture mouse events, allowing normal computer use
- Securely captures keystrokes using Electron's IPC system
- Stores logs in the user data directory with daily rotation
- Automatically cleans up logs older than 7 days
- Includes modifier keys (Ctrl, Alt, Shift, Meta) in logged keystrokes
- Takes periodic screenshots every 15 seconds
- Analyzes screenshots using Gemini AI
- Displays analysis results in the application window
secondcursor/
├── main.js # Main process & IPC handlers
├── index.html # Renderer process UI
├── preload.js # Secure IPC bridge
├── styles.css # Cursor styling
├── cursor2.svg # Cursor image
├── package.json # Project configuration
└── forge.config.js # Electron Forge configuration
- Modify gradient colors in
styles.css - Adjust circle radius and animation speed in
index.html - Change cursor size in
styles.css
- Adjust log retention period in
main.js - Modify log format in
saveKeystrokefunction - Configure keystroke filtering in
index.html
- Change capture interval in
index.html - Modify analysis parameters in
main.js - Adjust screenshot resolution in screen capture code
- Keystroke logging requires explicit user permission
- Logs are stored locally in the user data directory
- Screen captures are processed locally before AI analysis
- All permissions are verified before features are enabled
- Clone the repository
- Install dependencies:
npm install - Start the application:
npm start - Package the application:
npm run make
- Use Chrome DevTools for renderer process (View > Toggle Developer Tools)
- Check console logs for detailed operation information
- Monitor IPC communication in the DevTools console
Second Cursor is source-available, not open source in the OSI sense — it is free for noncommercial use but commercial use is paid.
- Noncommercial use is free under the PolyForm Noncommercial License 1.0.0 (personal, research, education, nonprofit, government, hobby projects).
- Commercial use requires a paid license from Quantana — this includes selling, whitelabeling, or using Second Cursor to provide a paid product or service.
To obtain a commercial license, contact Quantana (https://quantana.com.au).
See LICENSE.md for full terms.
[Your Contributing Guidelines Here]