A local-first, full-stack application that automates LinkedIn engagement using your existing Chrome browser session via Remote Debugging Port.
- Browser Connection: Connects to existing Chrome session (no login needed)
- Stealth Mechanics: Human-like behavior with random delays, mouse movements, and scrolling
- Auto Engagement: Automatically likes and comments on posts
- Connection Management: Sends personalized connection requests
- Inbox Handling: Reads and drafts replies to messages using AI
- Safety Limits: Daily action limits to prevent bans
- Real-time Dashboard: Flutter desktop app with live terminal and safety gauges
- Python 3.12+
- Flutter SDK (for desktop support)
- Chrome/Chromium with remote debugging enabled
- Google Gemini API Key
# Windows chrome.exe --remote-debugging-port=9222 # macOS /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 # Linux google-chrome --remote-debugging-port=9222
cd backend pip install -r requirements.txt playwright install chromium # Set your Gemini API key export GEMINI_API_KEY=your_api_key_here # Or create a .env file with GEMINI_API_KEY=your_api_key_here # Run the backend python main.py
The backend will start on http://localhost:8000
cd frontend flutter pub get flutter run -d windows # or -d macos, -d linux
LinkedIn Autopilot/
โโโ backend/
โ โโโ browser_manager.py # Browser CDP connection
โ โโโ humanizer.py # Stealth mechanics
โ โโโ ai_service.py # Gemini AI integration
โ โโโ feed_scanner.py # LinkedIn feed scanning
โ โโโ auto_engager.py # Auto like/comment
โ โโโ connection_manager.py # Connection requests
โ โโโ inbox_handler.py # Message handling
โ โโโ daily_limit_service.py # Safety limits
โ โโโ main.py # FastAPI application
โ โโโ database/
โ โ โโโ models.py # SQLAlchemy models
โ โ โโโ database.py # Database setup
โ โโโ requirements.txt
โโโ frontend/
โ โโโ lib/
โ โ โโโ main.dart # Flutter app entry
โ โ โโโ screens/
โ โ โ โโโ dashboard_screen.dart
โ โ โโโ widgets/
โ โ โ โโโ terminal_widget.dart
โ โ โ โโโ control_panel_widget.dart
โ โ โ โโโ safety_gauge_widget.dart
โ โ โโโ providers/
โ โ โโโ websocket_provider.dart
โ โ โโโ api_provider.dart
โ โโโ pubspec.yaml
โโโ README.md
- Start Chrome with remote debugging (port 9222)
- Log into LinkedIn in that Chrome window
- Start the backend:
python backend/main.py - Start the frontend:
flutter runfrom the frontend directory - Use the dashboard to:
- View real-time logs in the terminal
- Toggle auto-engagement features
- Start agent tasks (Engage Feed, Check Inbox)
- Monitor safety limits
- Max Connects: 20/day
- Max Likes: 50/day
- Max Comments: 30/day
- Max Messages: 10/day
The AI service uses Google Gemini 1.5 Flash for:
- Generating comments on posts
- Creating personalized connection notes
- Drafting message replies (with RAG from resume.txt)
- Daily Limits: Prevents exceeding LinkedIn's rate limits
- Human-like Behavior: Random delays, mouse movements, scrolling
- Error Handling: Graceful handling of missing elements
- Action Logging: All actions are logged to the database
- Resume.txt: Place a
resume.txtfile in the project root for RAG-based message replies - Database: SQLite database is created automatically in
backend/database/ghostlink.db - WebSocket: Real-time logs are streamed via WebSocket to the Flutter frontend
This tool is for educational purposes. Use responsibly and in accordance with LinkedIn's Terms of Service. Automated actions may violate LinkedIn's policies.
Browser not connecting?
- Make sure Chrome is running with
--remote-debugging-port=9222 - Check that port 9222 is not blocked by firewall
AI service not working?
- Verify your
GEMINI_API_KEYis set correctly - Check API quota limits
Flutter build errors?
- Run
flutter pub getto install dependencies - Ensure you have Flutter desktop support enabled
This project is for educational purposes only.