Import tunnels
To add more than a handful of servers, go to Tunnels, click Add tunnel, and open the Bulk import tab. You can paste configs for AI to sort, upload config files, or upload a TunnelHQ export file.
Paste and let AI sort it
Section titled “Paste and let AI sort it”The Paste Text tab is AI-assisted. Paste whatever you have, whether that’s clean share links, full config files, or a block of text copied from an email, and TunnelHQ works out which entries are tunnels.
-
Paste your configs.
Share links (
vless://,vmess://,trojan://,ss://,hysteria2://,tuic://), WireGuard and OpenVPN config text, and plainhost:portlines all work. You can mix protocols, one per line or in bulk. -
Click Analyze with AI.
TunnelHQ detects the protocol of each entry and extracts its host, port, and settings.
-
Review the detected tunnels.
Each row in the preview is marked ready, needs input, or cannot import. Entries missing a credential, such as an OpenVPN password, are marked so you can fill them in before importing.
-
Import.
Click Import N tunnels. Only rows marked ready are imported, and each one’s first check is queued.
Upload config files
Section titled “Upload config files”The Upload Files tab accepts OpenVPN (.ovpn) and WireGuard (.conf, .wg) config files, and a TunnelHQ export file (.json), described below. Drag them onto the drop zone, or click it to browse.
| Protocol | File types |
|---|---|
| OpenVPN | .ovpn |
| WireGuard | .conf, .wg |
Each file can be up to 1 MB, and you can select several at once. TunnelHQ parses each file, detects the protocol, and extracts the connection details. If a file needs a credential, for example an OpenVPN config without an embedded username and password, you’re asked for it before the import completes.
If you switch projects while the Import dialog is open, it closes, so nothing is imported into the wrong project.
Subscription URLs
Section titled “Subscription URLs”If your provider gives you a subscription URL, TunnelHQ can add its servers and keep them in sync, so your tunnels follow the provider when it rotates endpoints.
Paste the subscription URL into Add tunnel. The dialog shows Subscription URL detected and previews the configs behind it. Choose the settings and save; TunnelHQ confirms with “Subscription URL saved. Sync started.”
| Setting | Options |
|---|---|
| Sync interval | Every 5 minutes, 15 minutes, 30 minutes, 1 hour (the default), 2 hours, 6 hours, 12 hours, or 24 hours. |
| Engine | Auto (Both) (the default) races both engines, so configs such as xhttp get tested by Xray-core. Or choose sing-box or Xray-core. |
| Timeout (seconds) | How long each config’s test may take. Default 30. It also becomes the timeout of every tunnel the subscription creates. |
| Max workers | How many of the subscription’s configs are tested in parallel. Default 5. |
Tunnels from a subscription are tested each time it syncs, so their check interval is the sync interval, rather than a schedule of their own.
When you edit an existing subscription, its settings form offers a different list of sync intervals: 5, 10, 15, or 30 minutes, or 1, 2, or 6 hours. A subscription set to 12 or 24 hours shows its interval there as “(custom)”.
Import a project export
Section titled “Import a project export”A project export is one file with a project’s tunnels, Uptime checks and subscriptions. To make one, go to Settings, then Advanced, and click Export Project Data under Data Export. The file holds each tunnel’s stored login, so keep it as safe as a password.
To import an export into the project you’re in, do either of these:
- Go to Settings, then Advanced, and click Import Project Data under Data Import.
- In Add tunnel, open Bulk import, then Upload Files, and choose the file.
TunnelHQ reads the file first, then asks whether to import it into the project and shows how many tunnels, Uptime checks and subscriptions it holds. Click Import N to add them. When it finishes, it lists anything that wasn’t added, with the reason, and anything that was already in the project.
- Nothing is replaced. A tunnel or check with the same name and kind as one already in the project is skipped. Nothing in the project is changed or removed.
- Tunnels need the same TunnelHQ server. Each TunnelHQ server encrypts logins with its own key, so a tunnel comes across only when you import the file on the TunnelHQ server that made it, such as app.tunnelhq.com. A tunnel from another server is listed as not added; add it again from its config.
- Subscriptions come with a new export. An export brings the project’s subscriptions and leaves out the tunnels they make. Each subscription brings its tunnels back at its first sync, within a few minutes. Adding a subscription needs a role that can edit the project, and a free subscription on your plan. An older export has no subscriptions, so the tunnels they made are listed as not added: export the project again.
- Checks start at once. Uptime checks keep their settings and start checking straight away. A check’s request headers, body and basic auth login aren’t in the file, so add them again. A heartbeat gets a new address, so point your job at it.
- Your plan still applies. Tunnels count toward your plan’s tunnel limit, and Uptime checks are free while Uptime is in beta. A tunnel or check set to run more often than your plan allows is checked at your plan’s fastest interval instead.
- Limits. One import takes up to 1,000 tunnels, checks and subscriptions, from a file of up to 5 MB. Importing needs a role that can add tunnels, and exporting needs a role that can edit them.
Which method to use
Section titled “Which method to use”| You have | Use |
|---|---|
| A few servers | Add tunnel, one at a time (see Working with monitors) |
| A large batch of mixed configs | AI paste |
| A folder of config files | File upload |
| A provider link that changes over time | A subscription URL |
| A TunnelHQ export file | Import a project export |