Skip to content

Repository files navigation

Prism

A client-only VPN app for iPhone, iPad and Mac, built on Xray-core.

Prism speaks VLESS (with REALITY / TLS and the full Xray transport matrix) and Hysteria2, imports servers from share links or subscription URLs, and routes traffic through user-defined rule profiles backed by geoip / geosite assets.

  • iOS 17+, macOS 15+ (iPhone, iPad, Mac — no Catalyst)
  • SwiftUI, Swift Concurrency only (no Combine)
  • Modularized with Tuist; the Xcode project is generated

Features

Servers

  • VLESS over tcp, kcp, ws, http, quic, grpc, httpupgrade and xhttp, with REALITY, TLS, Mux/XMux and socket options — each fully editable in the UI
  • Hysteria2 with obfuscation and port hopping
  • Import from vless:// / hysteria2:// links, from a pasted blob of links, or from a subscription URL
  • Subscriptions refresh in place and carry their traffic/expiry user-info

Routing

  • Rule profiles: ordered rules matching on domain, geosite, ip or geoip, each pointing at an outbound
  • Per-profile domain strategy, default outbound and DNS (including FakeDNS)
  • geoip.dat / geosite.dat downloaded per profile (Loyalsoldier/v2ray-rules-dat by default) into the app group
  • Subscriptions can ship their own routing profile (Happ payload), applied and removed with the subscription

Tunnel

  • NEPacketTunnelProvider extension running Xray-core, with Outline's tun2socks bridging the TUN device to Xray's local SOCKS inbound
  • Config is built app-side into Xray JSON and handed to the extension through the provider configuration

Getting started

Tooling is pinned in mise.tomlmise puts tuist and xcodebuildmcp on PATH.

mise install
tuist install                # resolve Tuist/Package.swift
tuist generate --no-open     # generate Prism.xcodeproj / Prism.xcworkspace

Prism.xcodeproj and Prism.xcworkspace are generated. The project is described in Swift under Tuist/ProjectDescriptionHelpers/; tuist edit opens those manifests in Xcode.

Running the app requires a development team and provisioning profiles for the app group (group.viperr.prism), the Network Extension entitlement and the packet-tunnel extension.

About

Yet another iOS VPN client

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages