End-to-End Encrypted Screenshot Delivery

Deliver remote screenshots
to your iPhone, encrypted.

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.

Get Started Source Code
Terminal
$ pip install withiris
$ iris setup
Channel created. Scan this QR code with the Iris iOS app:
[QR code displayed]
Waiting for device registration... done.
$ iris push screenshot.png
Encrypted and pushed. (P-256 ECIES, 142KB)

Getting Started

Getting Started

1. iOS App

Download from the App Store

Install the Iris app on your iPhone. Requires iOS 26.0 or later.

2. CLI Tool

$ pip install withiris

Install the CLI on the server that will send screenshots. Requires Python 3.11 or later.

3. Pairing

$ iris setup

Scan the displayed QR code with the iOS app. Key exchange happens automatically and encrypted communication is ready.

4. Send

$ iris push screenshot.png

The image is encrypted with the public key and delivered to your iPhone via the Relay. Arrives instantly via push notification.

Architecture

Zero-trust, three-party design

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

P-256 ECIES

E2E Encryption

ECDH key exchange, HKDF-SHA256 key derivation, and AES-256-GCM authenticated encryption. No third party, including the relay server, can decrypt images.

Secure Enclave

Hardware Key Storage

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.

QR Pairing

One-Step Setup

Scan the QR code displayed by the CLI with the iOS app to complete pairing. Key exchange happens automatically.

APNs

Real-Time Delivery

When an image arrives at the Relay, the iOS app is notified instantly via Apple Push Notification. Works in the background.

Multi-Channel

Multiple Servers

Receive images from multiple CLI environments on a single iPhone. Each channel is isolated with independent encryption keys.

TTL: 30min

Auto-Delete

Encrypted images on the Relay are automatically deleted after 30 minutes. Channel info is retained for 30 days. No long-term data accumulation.

Encryption Details

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

Built for these workflows

Claude Code / AI Agent

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.

Playwright / E2E Tests

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.

Remote Dev Servers

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.