Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Automated Hinge dating profile liker using Android emulator + Gemini vision AI. Scrolls through full profiles, analyzes attractiveness with AI, likes the bes...
Automated Hinge dating profile liker using Android emulator + Gemini vision AI. Scrolls through full profiles, analyzes attractiveness with AI, likes the bes...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Automates Hinge swiping on an Android emulator. Uses Gemini vision to evaluate profiles, pick the best photo/prompt, and send witty comments.
Android emulator (AVD) with Hinge installed and logged in adb in PATH GEMINI_API_KEY environment variable (Gemini 2.5 Flash recommended) Python 3.8+ Java (for Android emulator)
Install Android command line tools (via Homebrew: brew install --cask android-commandlinetools) Create an AVD: avdmanager create avd -n HingePhone -k "system-images;android-34;google_apis;arm64-v8a" -d pixel_6 Boot the emulator with a window, install Hinge from Play Store, and log in manually Set GEMINI_API_KEY in environment
# Set environment export PATH="<android-tools-path>/platform-tools:<android-tools-path>/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; done # Launch Hinge adb shell am start -a android.intent.action.MAIN -n co.hinge.app/.ui.AppActivity sleep 10 # Optional: 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
FlagDefaultDescription--likes8Max likes per session--adbadbPath to adb binary--user-descgenericDescription of the user for AI matching
VariableRequiredDescriptionGEMINI_API_KEYYesGoogle Gemini API keyGEMINI_MODELNoModel name (default: gemini-2.5-flash)ADB_PATHNoFull path to adb binaryHINGE_WORK_DIRNoWorking directory for screenshots/logs
The script prints a session report to stdout with: Total profiles seen, liked, skipped For each profile: who they are, why it liked/skipped, the comment sent, which content was liked JSON logs are saved to logs/ directory.
Set up via OpenClaw cron for daily automated runs. Key notes: Hardcode GEMINI_API_KEY in the cron payload β cron shells don't source ~/.zshrc Use am start to launch Hinge, not monkey (more reliable) Compress videos before sending via iMessage (16MB limit): ffmpeg -i input.mp4 -vcodec libx264 -crf 28 -preset fast -vf scale=720:-2 output.mp4
Send the user a text report including: How many profiles seen / liked / skipped For each liked profile: who she is, why the AI liked her, what comment was sent For each skipped profile: brief reason why Any errors (paywall, API failures, etc.) Video recording if available (compressed for messaging)
Paywall/out of likes: Free likes reset ~24h after last batch. Schedule runs accordingly. Gemini empty responses: Increase maxOutputTokens, check API key/quota. Can't find buttons: Hinge UI changes periodically β check find_all_hearts() and find_skip_button() patterns. Emulator crashes: Check disk space (df -h), try -gpu swiftshader_indirect.
Agent frameworks, memory systems, reasoning layers, and model-native orchestration.
Largest current source with strong distribution and engagement signals.