End-to-End Encrypted Screenshot Delivery
Screenshots captured by Claude Code or Playwright on remote servers, delivered to your iPhone with E2E encryption. The relay server holds only ciphertext. Check results on the go.
Getting Started
1. iOS App
Install the Iris app on your iPhone. Requires iOS 26.0 or later.
2. CLI Tool
Install the CLI on the server that will send screenshots. Requires Python 3.11 or later.
3. Pairing
Scan the displayed QR code with the iOS app. Key exchange happens automatically and encrypted communication is ready.
4. Send
The image is encrypted with the public key and delivered to your iPhone via the Relay. Arrives instantly via push notification.
Architecture
CLI
Sender
Runs on your server. Encrypts images with the public key and sends them to the Relay. Written in Python.
Relay
Relay Server
Runs on Cloudflare Workers. Temporarily stores ciphertext but holds no decryption key and cannot view contents.
iOS App
Receiver
Decrypts with the Secure Enclave private key. The key never leaves the device. Receives via push notification.
Features
ECDH key exchange, HKDF-SHA256 key derivation, and AES-256-GCM authenticated encryption. No third party, including the relay server, can decrypt images.
The private key is generated and stored in the iPhone's Secure Enclave. It cannot be exported, even by the OS, and never leaves the device.
Scan the QR code displayed by the CLI with the iOS app to complete pairing. Key exchange happens automatically.
When an image arrives at the Relay, the iOS app is notified instantly via Apple Push Notification. Works in the background.
Receive images from multiple CLI environments on a single iPhone. Each channel is isolated with independent encryption keys.
Encrypted images on the Relay are automatically deleted after 30 minutes. Channel info is retained for 30 days. No long-term data accumulation.
Iris uses ECIES (Elliptic Curve Integrated Encryption Scheme) based on the P-256 elliptic curve. An ephemeral key pair is generated for each transmission, and the encryption key is derived from the ECDH shared secret with the recipient's public key via HKDF-SHA256. Image data is encrypted with AES-256-GCM, which includes tamper detection.
The Relay holds only ciphertext. Neither the shared secret nor the encryption key exists on the Relay. There is no way for the Relay operator, Cloudflare, or any third party to access image contents.
Use Cases
An AI agent operates a browser on a remote server and captures screenshots. View the results instantly on your iPhone while on the move. No SSH or VPN required.
Deliver E2E test screenshots from your CI/CD pipeline to your iPhone as soon as tests complete. Triage failures from the palm of your hand.
View screenshots from your home Linux server or cloud VM on your iPhone while away. Images are encrypted, so even public Wi-Fi is safe.