AppTube
ElPerro

ElPerro

Turn your iPhone or iPad into a real-time Stream Deck-like controller for your Mac — with AI-generated actions, AppleScript, Shortcuts, and Cloudflare Tunnel remote access.

Automation
Open Source

About

ElPerro is a two-app system: a native macOS menu bar app that runs a WebSocket server, and a Flutter iOS/iPadOS app that connects to it over WiFi (or remotely via Cloudflare Tunnel) to execute actions on your Mac in under 100 ms.

Platforms

  • macOS — Native menu bar app, Swift/SwiftUI + AppKit. Universal binary (arm64 + x86_64). Code-signed and notarized. Auto-updates via Sparkle with EdDSA signing.
  • iOS/iPadOS — Flutter app. QR code pairing to establish the WebSocket connection.
  • Web UI — HTML/CSS/JS served directly from the WebSocket server; open in any browser on the same network.

Action Types

8 action types per button: AppleScript, Shell commands, macOS Shortcuts, keyboard shortcuts, Chrome tab navigation (AppleScript-driven), VS Code commands, multi-action sequences (up to 10 chained actions), and keystroke simulation via CGEventTap.

AI Integration

Claude API generates button actions from natural language: describe what you want ("open my standup Notion page"), and Claude returns a JSON action with name, SF Symbol icon, hex color, and the most efficient execution method (keyboard shortcut preferred over AppleScript for speed). Includes an embedded database of 30+ app shortcut tables.

Engineering Highlights

  • Swift-NIO actor-based WebSocket server — Non-blocking async I/O with EventLoopGroup handles multiple concurrent clients (phone + browser simultaneously). All communication is real-time with <100 ms latency.
  • Cloudflare Tunnel remote access — Zero-trust remote control without port forwarding. The Mac app manages the cloudflared binary, generates time-expiring Base64 tokens for authenticated WebSocket connections, and tears down the tunnel on exit.
  • Keyboard event recording — CGEventTap captures keyboard/mouse sequences and converts them to replayable action macros without accessibility permission prompts beyond initial setup.
  • Supabase cloud sync — Profile grids sync across devices with Row Level Security. PostgreSQL trigger auto-creates a default profile on user signup.
  • Embedded UI from WebSocket server — No CDN, no external dependency. The macOS app serves the entire web UI (drag-and-drop grid editor, profile manager) as static HTML/JS directly from the NIO server.

Deployment

DMG installer distributed directly. macOS code-signed + notarized via Apple notarytool. Sparkle EdDSA-signed appcast for over-the-air updates. Vercel for the marketing website. Supabase for cloud data.

Reviews (0)

No reviews yet.