-
Notifications
You must be signed in to change notification settings - Fork 4
Deep Links
ClashFest can import a subscription straight from a link. Tapping such a link (in a browser, chat, or a panel's "Add to app" button) opens ClashFest, shows a consent dialog, and imports the subscription as a named profile.
clashfest://installconfig?url=<URL-ENCODED subscription URL>&name=<optional name>
-
url(required) — your subscription URL, percent-encoded. -
name(optional) — a display name for the imported profile.
Example
Subscription URL:
https://panel.example.com/sub/abc123
Deep link (URL-encoded):
clashfest://installconfig?url=https%3A%2F%2Fpanel.example.com%2Fsub%2Fabc123&name=SwiftVPN
Always URL-encode the
urlvalue. Un-encoded?,&,=,/in the subscription URL will break parsing.
For interoperability with other Clash clients, ClashFest also accepts:
| Scheme | Host |
|---|---|
clashfest:// (primary)
|
installconfig or install-config
|
clash:// |
installconfig or install-config
|
clashmeta:// |
installconfig or install-config
|
So all of these do the same thing:
clashfest://install-config?url=<encoded>&name=<name>
clash://install-config?url=<encoded>&name=<name>
clashmeta://install-config?url=<encoded>&name=<name>
Prefer clashfest://installconfig for your own service; keep the clash:// form only if you need one link that works across multiple Clash-family apps.
- Opening a link never imports silently — the user sees a consent dialog naming the subscription before anything is added.
- The imported profile behaves exactly like one added manually (auto-update, quota, branding, etc.).
- If ClashFest isn't installed, the link does nothing — host the link behind a normal web page with an install fallback.
Generate a per-user install link with your panel's template variables:
clashfest://installconfig?url={{SUBSCRIPTION_URL_ENCODED}}&name={{USERNAME}}
Make sure the subscription URL is emitted already percent-encoded by your panel. Pair this with the Operator API headers so the freshly-imported profile is branded on its first fetch.
- Getting Started — importing subscriptions in-app
- Operator API — branding the imported profile
📱 User Guide
- Getting Started
- Profiles & Nodes
- Routing & Rules
- Settings
- Deep Links
- Encrypted Subscriptions
- Troubleshooting
🏢 Operator API
📺 Companion