Back to tools

Local configuration tool

Trojan to Clash / Mihomo YAML

Keeps passwords containing colons intact and maps the legacy peer parameter onto sni.

Your links stay on this device

Conversion happens entirely in your browser. Links are not uploaded, saved, or placed in the page URL.

This page accepts Trojan links, one per line.
Targets Mihomo (Clash.Meta). Original Clash and Clash Premium do not support VLESS, Hysteria2 or TUIC at all.
Routing preset

Conversion result

Why some links are rejected

A parameter that cannot be mapped without changing how the connection behaves is reported rather than dropped. For a Mihomo config that means certificate pinning, TUIC v4 tokens, and uTLS fingerprints on the QUIC-native protocols, where a handshake has nowhere to put one. A silently weakened config is worse than a rejected line.

How to import into Clash Verge Rev

Profiles → new Local profile → pick the downloaded YAML. Clash Verge Rev, Mihomo and ClashX Meta all read the same file; original Clash and Clash Premium do not.

How Trojan fields map to Clash

What this converter actually does, line by line. On the left is how it is written in a Trojan link; on the right is the field it becomes in the Clash config.

In the linkIn the Clash configNotes
password@host:portpassword / server / portThe whole userinfo is the password, so a colon inside it is preserved rather than split off.
sni (legacy: peer)snipeer is the older spelling and maps onto sni; supplying both is an error.
security=reality + pbk / sidreality-opts.public-key / short-idTrojan over REALITY is unusual but valid, and converts the same way VLESS does.
fp / alpnclient-fingerprint / alpnTrojan is TLS-only, so these always apply.
type=ws / grpc / httpupgradenetwork + ws-opts / grpc-optsTransports are renamed per target; HTTPUpgrade is a WebSocket flag in Mihomo and a type of its own elsewhere.
type=h2network: h2 + h2-optsXray has removed the HTTP/2 transport, so that target refuses the line instead of rewriting it as XHTTP — a different protocol on the wire.
type=xhttpnetwork: xhttp + xhttp-optsRejected for sing-box, which has no such transport.
allowInsecure=1skip-cert-verify: trueConverted with a warning attached. Xray removed the option, so that target refuses the link instead.

FAQ

Which client do I use after converting Trojan to Clash?
Use Clash Verge Rev, Mihomo (Clash.Meta) or ClashX Meta. Original Clash understands the protocol but not the Mihomo-only keys this config uses, such as xhttp-opts and reality-opts.
Is this Trojan converter free, and does it upload my node links?
It is free and needs no account. The conversion is done by JavaScript inside this page, on your own machine: links are never uploaded, never written into the page URL, and never stored. Closing the tab is all the cleanup there is.
Can I convert a subscription link straight to Clash?
Yes, but paste the body the subscription URL returns — usually one long base64 string — rather than the URL itself, which the browser cannot fetch across origins. Mixed protocols in one subscription are fine. Subscription to Clash converter
The Clash config converted fine but will not connect — what now?
This page only translates links into a config: it checks the structure, never whether the server is reachable. Confirm the same link works in the client you copied it from, then check the client version — the XHTTP transport needs Mihomo 1.19 or newer.

Other converters

This creates a one-time local configuration, not an auto-updating subscription. It checks configuration structure, not whether a server is reachable.

© 2026