# Peekaboo & macOS UI Automation Learnings

## Key Principles (from 2026-02-04 session)

### 1. Element-Based Clicking > Coordinate-Based
- **DON'T**: Calculate coordinates from screenshots and click blindly
- **DO**: Use `peekaboo click "Element Text"` or `peekaboo click --on elem_XX`
- **WHY**: Coordinates are unreliable across different window positions/scaling

### 2. Monitor Info
- Jake's setup: 45-inch monitor at 2560x1080
- Peekaboo uses logical coordinates (not physical pixels)
- No scaling math needed - click at the coordinates you see

### 3. 1Password CLI Authorization Dialogs
The "1Password Access Requested" dialog is a **special system dialog** that:
- Does NOT appear in peekaboo's element detection
- Cannot be clicked by text query ("Authorize")
- **SOLUTION**: Use keyboard input!

```bash
# Authorize 1Password CLI dialog with Enter key
osascript -e 'tell application "1Password" to activate'
sleep 0.3
osascript -e 'tell application "System Events" to key code 36'  # Enter key
```

### 4. Workflow for 1Password CLI Setup
1. Enable "Integrate with 1Password CLI" in 1Password > Settings > Developer
2. Run `op signin` in tmux session
3. Wait ~2 seconds for dialog
4. Activate 1Password and press Enter to authorize
5. Verify with `op whoami`

### 5. Peekaboo Best Practices
- Always use `peekaboo see --annotate` first to get element IDs
- Click by element: `peekaboo click --on elem_XX` (most reliable)
- Click by text: `peekaboo click "Button Text"` (good fallback)
- Use `--app "AppName"` to target specific apps
- Use `--window-id XXXXX` for specific windows

### 6. System Dialogs & Sheets
macOS system-level dialogs (like 1Password authorization) may not expose
accessibility elements. Use keyboard shortcuts:
- Enter (key code 36) - confirm/default button
- Escape (key code 53) - cancel
- Tab (key code 48) - move focus
- Space (key code 49) - activate focused button

---
*Last updated: 2026-02-04 23:05 EST*
