{"skill":{"slug":"frameo","displayName":"Frameo Photo Frame Control","summary":"Control Frameo digital photo frames via cloud API for frame info or ADB for full control including photo upload, brightness, screen, and navigation.","description":"---\nname: frameo\ndescription: Control Frameo digital photo frames. Use when: sending photos to Frameo frames, listing paired frames, controlling frame via ADB (brightness, screen, navigation). Supports both cloud API (read-only) and ADB (full control including photo upload). Requires either Frameo account credentials or ADB access to the frame.\n---\n\n# Frameo Digital Photo Frame Control\n\nControl Frameo photo frames via cloud API or ADB.\n\n## Methods\n\n### Method 1: Cloud API (Limited)\n- ✅ List paired frames\n- ✅ Get account info\n- ❌ Send photos (requires FCM/Firebase)\n\n### Method 2: ADB (Full Control)\n- ✅ Push photos directly\n- ✅ Control brightness\n- ✅ Toggle screen\n- ✅ Navigate photos\n\n## Quick Start\n\n### Cloud API Setup\n1. Install: `pip3 install requests pillow`\n2. Get Bearer token from Frameo app traffic (Proxyman/Charles)\n3. Save token: `echo '{\"access_token\": \"YOUR_TOKEN\"}' > ~/.frameo_token`\n4. Run: `python3 scripts/frameo_client.py --frames`\n\n### ADB Setup (Recommended)\n1. Enable Developer Options on Frameo (Settings → About → tap Build 7x)\n2. Enable USB Debugging\n3. Connect USB-C data cable to computer\n4. Run: `adb tcpip 5555` to enable wireless\n5. Disconnect USB, connect wireless: `adb connect <frame-ip>:5555`\n\n## Usage Examples\n\n### List Frames (Cloud API)\n```bash\npython3 scripts/frameo_client.py --frames\n```\n\n### Send Photo (ADB)\n```bash\nadb push photo.jpg /sdcard/DCIM/\n# Or to Frameo's photo directory:\nadb push photo.jpg /sdcard/Frameo/\n```\n\n### Control Frame (ADB)\n```bash\n# Screen on/off\nadb shell input keyevent 26\n\n# Set brightness (0-255)\nadb shell settings put system screen_brightness 128\n\n# Next photo (swipe right)\nadb shell input swipe 800 500 200 500\n\n# Previous photo (swipe left)  \nadb shell input swipe 200 500 800 500\n```\n\n## Remote Access via SSH Relay\n\nIf frame is on local network and agent is remote:\n```bash\nssh user@local-mac \"adb push /tmp/photo.jpg /sdcard/DCIM/\"\n```\n\n## References\n\n- `references/api-endpoints.md` - Frameo cloud API endpoints\n- `references/adb-commands.md` - Common ADB commands for Frameo\n\n## Troubleshooting\n\n### Token Expired (401)\nFrameo tokens expire in ~5 minutes. Get fresh token from Proxyman.\n\n### ADB Connection Refused\nWireless ADB not enabled. Need USB cable first to run `adb tcpip 5555`.\n\n### USB Cable Not Detected\nEnsure using a **data cable**, not charge-only. Data cables are usually thicker.\n","tags":{"adb":"1.0.0","iot":"1.0.0","latest":"1.0.0","photo-frame":"1.0.0"},"stats":{"comments":0,"downloads":585,"installsAllTime":22,"installsCurrent":0,"stars":0,"versions":1},"createdAt":1772719743397,"updatedAt":1778491734013},"latestVersion":{"version":"1.0.0","createdAt":1772719743397,"changelog":"Initial release - Cloud API + ADB control for Frameo digital photo frames","license":null},"metadata":null,"owner":{"handle":"850media","userId":"s17976qs9d52tx2jm1h8x1cny1884c4k","displayName":"Michael","image":"https://avatars.githubusercontent.com/u/257654157?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1780089764997}}