Skip to content
View AnyPortal's full-sized avatar

Block or report AnyPortal

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
AnyPortal/README.md

AnyPortal

Important

Seeking Apple Development Collaborator

We're looking for a partner with a paid Apple Developer Program account who can take part in building (and publishing) the iOS version of our project.

If the Network Extension entitlement is not yet enabled, it will need to be requested through Apple.

Please reach out via the email listed in our Git commit history.

2025-08-10

  • v2ray, xray, sing-box, clash, mihomo... GUI for Windows, macOS, Linux, Android, (iOS currently blocked).
  • Typically used in combination with a core (v2ray-core, xray-core, sing-box, etc)
  • Multilingual support: العربية, Deutsch, English, Español, فارسی, Français, हिन्दी, Bahasa Indonesia, 日本語, 한국어, Português, Русский, ไทย, Türkçe, Tiếng Việt, 中文

Download latest release

OS Download
Android


Windows

macOS
Linux
iOS currently blocked

Dev roadmap

Windows Linux macOS Android iOS
AnyPortal 🟢 🟢 🟢 🟢 🔵
core of exec 🟢 🟢 🟢 🟢¹
of lib 🟢² 🟢
tun via root 🟢³ 🟢⁴ 🟢⁵ 🟢¹
via platform api 🔴⁶ 🟢 🔴⁶
system proxy 🟢 🟢⁷ 🟢 🟢⁸
  1. Require api28 variant, not available for play store apilatest version.
    • The core exec asset is copied to internal storage upon selection, so you MUST reselect the core if you want to update it.
    • The working directory can not be set to a location without execution permission, e.g. the sdcard which has a FAT file system.
    • You MUST manually specify the envs if the core needs it, e.g. {"xray.location.asset" : "/storage/emulated/0/path/to/xray/assets"}
  2. Using xray-core v1.250803.0.
  3. Require Run as Administrator, elevated user share configuration with original user
  4. Require root, root DOES NOT share configuration with original user
  5. Require root, root DOES NOT share configuration with original user. Move the app to Application folder and run sudo /Applications/AnyPortal.app/Contents/MacOS/AnyPortal.
  6. Require an apple developer license to even debug an app that uses Network Extension. Dev progress currently blocked. The iOS app would serve little purpose right now without tun.
  7. Tested on Ubuntu 24.04 with Gnome
  8. Require root
  • ⚫ Not Planned: impossible / no plans / discontinued
  • 🟡 Planned: planned / under development
  • 🔵 Experimental: experimental implementation / testing
  • 🟢 Working: functioning as expected
  • 🔴 Not Working: dev blocked / known issues / non-functional

See planning here.

Supported cores

config injection dashboard info
v2ray/xray 🟢 🟢
sing-box 🟢 🟢²
clash/mihomo 🟢 🟢
hysteria2 🔵
...¹ ...
  1. In theory one can run any cores, however it won't be a good experience without config injection and dashboard info. PR welcomed for additional core support. See lib/utils/core for example.
  2. Using clash api, since v2ray-api is not enabled in official release.

Technical details for power users

  • why v2ray/xray over sing-box? Why choose one when you can have any?
    • seriously, why v2ray/xray over sing-box?
      • load balancing
      • chained proxy in transport layer
      • better server-side functions (gRPC interface etc.), so we choose it also as client to reduce maintenance
    • why sing-box over v2ray/xray?
      • integrated tun makes things easier
  • remote profile has only one required field, a REST URL pointing to a v2ray config
  • for v2ray to work properly on Android and iOS, Tun2socks is necessary
    • v2ray native tun inbound is only half finished for now
    • Tun2socks with best performance so far: hev-socks5-tunnel, followed by sing-box
    • you can use anyportal with tun disabled on Android, and use external tools to redirect traffic to a socks port, just like on desktop
  • android api 29+ does not allow running binary directly
    • you can run custom cores (any version of v2ray, xray) with apk compiled with api target 28
    • play store always requires recent api targets, way over 28 now, so you can only use an embedded core with playstore apk
  • why do I need tun via root or system proxy on Android?
    • Tun2socks via sing-box is actually faster than hev-socks5-tunnel on web page opening, which currently needs root access
    • there are apps actively detecting if you are using VPN
  • what are "assets" and why do I need / how do I use them?
    • AnyPortal facilitates auto updates through remote assets, i.e., GitHub releases. Core executables, even rule set files, can be auto-updated this way. Local files can be used directly of course, as local assets.
    • here are some common examples for remote assets
      • github://xtls/xray-core/Xray-android-arm64-v8a.zip/xray
      • github://v2fly/v2ray-core/v2ray-windows-64.zip/v2ray.exe
      • github://v2fly/domain-list-community/dlc.dat
    • on Android this gets a little more complicated. Remote assets have no problem - they are downloaded directly into internal storage. For local files (those you can access, typically on your /sdcard, i.e., external storage, where the default Downloads folder resides), executables must be copied to internal storage (where you have no access) so that they can run. For this reason, when you choose a local file, AnyPortal copies it to internal storage for you. This may break assets dependency, so you may want to specify core environment variables to tell the core where to find its dependencies, e.g. {"xray.location.asset":"/sdcard/path/to/your/geosite-folder"}, {"V2RAY_LOCATION_ASSET":"/data/data/com.github.anyportal.anyportal/files/asset/github/v2fly/domain-list-community"}. Do not try to set the working directory to a sdcard path, it won't work.

License

All rights reserved until further notice (hopefully soon).

Thanks

3rd party libs used in the project

Inspired by, or related to, but not used in the project

Toolchains

Support development

coming soon

Final words

 

"You take the blue pill, the story ends, you wake up in your bed and believe whatever you want to believe. You take the red pill, you stay in Wonderland and I show you how deep the rabbit hole goes."  

— Morpheus, The Matrix (1999)

We hope you choose well between your home world and Wonderlands.

Popular repositories Loading

  1. AnyPortal AnyPortal Public

    v2ray, xray, sing-box, clash, mihomo... GUI for Windows, macOS, Linux, Android

    Dart 182 16

  2. libv2raymobile libv2raymobile Public

    Go 4 3

  3. Xray-core Xray-core Public

    Forked from XTLS/Xray-core

    Xray, Penetrates Everything. Also the best v2ray-core. Where the magic happens. An open platform for various uses.

    Go

  4. v2fly-github-io v2fly-github-io Public

    Forked from v2fly/v2fly-github-io

    V2Fly Website & Documentation