Hinge Auto-Liker
by @mattttman
Automated Hinge dating profile liker using Android emulator + Gemini vision AI. Scrolls through full profiles, analyzes attractiveness with AI, likes the bes...
clawhub install hinge-likerπ About This Skill
name: hinge-liker description: "Automated Hinge dating profile liker using Android emulator + Gemini vision AI. Scrolls through full profiles, analyzes attractiveness with AI, likes the best photo/prompt with witty comments, skips others. Sends a detailed text report after each session. Use when asked to run Hinge likes, set up Hinge automation, check Hinge status, or manage daily dating app swiping."
Hinge Auto-Liker
Automates Hinge swiping on an Android emulator. Uses Gemini vision to evaluate profiles, pick the best photo/prompt, and send witty comments.
Requirements
adb in PATHGEMINI_API_KEY environment variable (Gemini 2.5 Flash recommended)Setup (First Time)
1. Install Android command line tools (via Homebrew: brew install --cask android-commandlinetools)
2. Create an AVD: avdmanager create avd -n HingePhone -k "system-images;android-34;google_apis;arm64-v8a" -d pixel_6
3. Boot the emulator with a window, install Hinge from Play Store, and log in manually
4. Set GEMINI_API_KEY in environment
Running
# Set environment
export PATH="/platform-tools:/emulator:$PATH"
export GEMINI_API_KEY="your-key-here"Boot emulator (windowed for video, add -no-window for headless)
emulator -avd HingePhone -no-audio -no-metrics -gpu swiftshader_indirect &Wait for boot
adb wait-for-device
while [ "$(adb shell getprop sys.boot_completed 2>/dev/null | tr -d '\r')" != "1" ]; do sleep 2; doneLaunch Hinge
adb shell am start -a android.intent.action.MAIN -n co.hinge.app/.ui.AppActivity
sleep 10Optional: start screen recording
adb shell screenrecord --time-limit 300 /sdcard/hinge_session.mp4 &Run the liker
python3 scripts/hinge_android.py --likes 8 --user-desc "a 25yo tech guy in SF who's fit and active"Pull recording + kill emulator
adb shell pkill -INT screenrecord; sleep 3
adb pull /sdcard/hinge_session.mp4 ./recordings/session.mp4
adb emu kill
Script Options
| Flag | Default | Description |
|------|---------|-------------|
| --likes | 8 | Max likes per session |
| --adb | adb | Path to adb binary |
| --user-desc | generic | Description of the user for AI matching |
Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| GEMINI_API_KEY | Yes | Google Gemini API key |
| GEMINI_MODEL | No | Model name (default: gemini-2.5-flash) |
| ADB_PATH | No | Full path to adb binary |
| HINGE_WORK_DIR | No | Working directory for screenshots/logs |
Output
The script prints a session report to stdout with:
JSON logs are saved to logs/ directory.
Scheduling as a Daily Cron
Set up via OpenClaw cron for daily automated runs. Key notes:
am start to launch Hinge, not monkey (more reliable)ffmpeg -i input.mp4 -vcodec libx264 -crf 28 -preset fast -vf scale=720:-2 output.mp4After Each Session
Send the user a text report including: 1. How many profiles seen / liked / skipped 2. For each liked profile: who she is, why the AI liked her, what comment was sent 3. For each skipped profile: brief reason why 4. Any errors (paywall, API failures, etc.) 5. Video recording if available (compressed for messaging)
Troubleshooting
maxOutputTokens, check API key/quota.find_all_hearts() and find_skip_button() patterns.df -h), try -gpu swiftshader_indirect.π Tips & Best Practices
maxOutputTokens, check API key/quota.find_all_hearts() and find_skip_button() patterns.df -h), try -gpu swiftshader_indirect.