-
Notifications
You must be signed in to change notification settings - Fork 0
SpellVPN User Guide
Last updated: 2026-07-08
SpellVPN runs user-imported sing-box configurations through an iOS Packet Tunnel extension. It does not include bundled VPN server accounts, sell proxy nodes or host user traffic. You need a valid sing-box config or a supported proxy subscription from a server you are authorized to use.
SpellVPN is designed as a paid-download app with no in-app purchases, no advertising SDK and no analytics SDK in the current build.
This build supports iPhone and iPad. The iPad version uses the same VPN runtime and import flow. Real VPN traffic still requires a signed physical device with the Packet Tunnel entitlement; the simulator can only show the UI and run non-VPN tests.
The app follows the iOS system language automatically. This build includes localized app strings for English, Simplified Chinese, Traditional Chinese, Japanese, Korean, Spanish, French, German, Brazilian Portuguese, Russian and Arabic. If the device language is not included, iOS falls back to English.
On the Dashboard, tap the + button in the top-right corner:
- Scan QR Code: opens the camera and imports the first QR code it reads.
- Import QR from Photos: picks an image from the photo library and scans the first QR code found in it.
- Import Subscription URL: downloads and parses an
http://orhttps://subscription URL. - Import Proxy Link: imports one proxy URI such as
ss://,vmess://,vless://,trojan://,hysteria2://,hy2://ortuic://. - Import File: imports a local
.jsonor text file from Files/iCloud. - Paste Config or URL: reads the clipboard.
- Health Check: checks the imported node.
The Config tab also includes import and editing tools for advanced use:
- Paste Config, URL or Link: reads the clipboard.
- Import JSON File: imports a local
.jsonor text file from Files/iCloud. - Import QR from Photos: picks an image from the photo library and scans the first QR code found in it.
- Subscription URL: downloads an
http://orhttps://subscription URL. - Manual text editor: paste content into the editor and tap Use Draft.
- URL Scheme: open a supported app URL from another app or web page.
Supported import content:
- complete sing-box JSON with a
tuninbound and a real proxy outbound - plain text containing one or more supported proxy links
- Base64 subscription text containing proxy links
ss://vmess://vless://trojan://-
hysteria2://andhy2:// tuic://
Recommended schemes:
spellvpn://spellvpn-import://
Compatibility schemes:
magicvpn://magicvpn-import://supervpn://supervpn-import://
Import a remote subscription:
spellvpn://subscribe?url=https%3A%2F%2Fexample.com%2Fsub.txt
Import a proxy link:
spellvpn://import?link=ss%3A%2F%2F...
Import encoded config text:
spellvpn://import?data=BASE64_OR_PERCENT_ENCODED_CONFIG
- Import a config.
- Confirm the Active section says Ready.
- Return to Dashboard.
- Tap Connect.
- Approve the iOS VPN permission prompt.
Real VPN traffic only works on a signed physical iPhone or iPad. The simulator can show the UI and run tests, but it cannot carry real Packet Tunnel traffic.
The Config tab includes a Virtual Adapter section. These settings are stored in
the VPN profile, applied to the Network Extension route settings, and also
written into the active sing-box tun inbound before the Packet Tunnel starts.
- Full Tunnel: installs the system default route when a signed Packet Tunnel is running, default traffic routing is enabled and Auto Route is on.
- Enhanced Fake-IP: routes the
198.18.0.0/15fake-IP range through the tunnel. - Split Tunnel: routes the CIDR ranges listed in Include Routes. If no include route is set, the tunnel falls back to the fake-IP route.
Available adapter fields:
- Stack:
system,gvisorormixed. - MTU.
- Auto Route.
- Strict Route.
- IPv6.
- Include Routes.
- Exclude Routes.
The Settings tab shows a Privacy Policy link only after SpellVPNPrivacyPolicyURL
is set in SuperVPNApp/Info.plist. This must be a public https:// URL. Local
Markdown files, private network addresses and placeholder domains are ignored.
The old SuperVPNPrivacyPolicyURL key is still accepted for backward
compatibility, but new builds should use SpellVPNPrivacyPolicyURL.
After a config is active, the Config tab shows Export actions:
- Copy Active Config
- Export JSON File
- Share via System Sheet
- Show Config QR
Large configs may be too big for a single QR code. Use JSON file export or the system share sheet in that case.
- "Config must include a sing-box tun inbound": import a complete sing-box JSON
file, or use a supported proxy link/subscription so the app can generate the
tunconfig. - "Proxy outbound must include server and server_port": the imported link is missing server information or uses an unsupported format.
- Simulator warning on Connect: install the signed build on a real device.
- VPN starts but IP does not change: check the imported sing-box route and proxy server; the app only routes according to that config.