Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/openlibrecommunity/olcrtc/llms.txt

Use this file to discover all available pages before exploring further.

A subscription file is a plain text file hosted on a server and served as plain text. It contains a list of olcrtc:// URIs (one per line) along with metadata for the entire subscription and for individual servers. Client apps like owenewans/owenclave download this file to populate their server list, display usage stats, and automatically refresh the list on a schedule.
olcRTC itself does not read or process subscription files. This format is a convention for client applications. The primary consumer is owenclave, an Android proxy client that supports the olcrtc:// URI format and subscriptions.
A subscription can be served from any URL that returns plain text, for example:
https://example.com/sub

Purpose

Subscription files provide:
  • A server list — multiple olcrtc:// URIs in one file, one per line
  • Subscription metadata — name, color, icon, and data usage displayed in the client UI
  • Per-server metadata — individual name, IP, usage, and comments for each server
  • Auto-refresh support — a #refresh: field tells the client how often to re-download the file

Overall Structure

The file is read from top to bottom and consists of three kinds of lines:
  1. Global fields — lines prefixed with #, apply to the whole subscription
  2. Server URI linesolcrtc://... lines, one per server
  3. Local server fields — lines prefixed with ##, apply to the most recent URI above them
#name: ...
#update: ...
#refresh: ...
#color: ...
#icon: ...
#used: ...
#available: ...

olcrtc://...
##name: ...
##color: ...
##icon: ...
##used: ...
##available: ...
##ip: ...
##comment: ...

olcrtc://...
##name: ...
##comment: ...
Empty lines between entries are allowed and ignored.

Global Subscription Fields

Lines of the form #key: value apply to the whole subscription. All fields are optional.
FieldMeaning
#name:Subscription name shown in the client UI
#update:Time of the last update as a Unix timestamp (seconds)
#refresh:How often the client should re-download the subscription, e.g. 5s, 10m, 6h, 1d
#color:Subscription accent color for the UI
#icon:Subscription icon — a string identifier or emoji
#used:How much data has already been used under this subscription, e.g. 10mb/10gb
#available:Total data available under the subscription, e.g. 1.1gb
#available: is the value at the subscription level. If the client can compute the remaining balance from per-server data, it may use this field as source data or as a display hint.

Server Lines

Each server entry is one olcrtc:// URI on its own line, using the format from the URI format specification:
olcrtc://<Auth>?<Transport>@<RoomID>#<EncryptionKey>$<MIMO>
olcrtc://<Auth>?<Transport><key=value&key=value>@<RoomID>#<EncryptionKey>$<MIMO>
One line = one server / one subscription entry.

Local Server Fields

Lines of the form ##key: value apply to the last olcrtc:// URI declared above them. The client must bind each ##... block to the nearest preceding olcrtc://... line.
FieldMeaning
##name:Server or node name shown in the client UI
##color:UI accent color for this server
##icon:UI icon — a string identifier or emoji
##used:Usage for this specific server, e.g. 500mb/10gb
##available:Available volume for this server
##ip:Server IP address, if it should be displayed to the user
##comment:Free-form comment
Local fields mirror the global ones, except there is no ##refresh: — the update period is set at the whole-subscription level.

Value Recommendations

FieldRecommendation
#update:Use Unix time in seconds (e.g. 1778011200)
#refresh:Use short human-readable intervals: 5s, 10m, 6h, 1d
#color:, ##color:Use a consistent format within the client, e.g. #RRGGBB
#icon:, ##icon:A string identifier or emoji, e.g. 🇷🇺
#used:, ##used:Human-readable units: kb, mb, gb, tb, e.g. 500mb/10gb
#available:, ##available:Human-readable units, e.g. 9.5gb

Full Example

#name: Zarazaex Free RU
#update: 1778011200
#refresh: 10m
#color: #4A90E2
#icon: 🇷🇺
#used: 10mb/10gb
#available: 9.99gb

olcrtc://wbstream?seichannel<fps=60&batch=64&frag=900&ack-ms=2000>@room-01#d823fa01cb3e0609b67322f7cf984c4ee2e4ce2e294936fc24ef38c9e59f4799$RU / olcng free sub / IPv6
##name: RU-1
##icon: 🇷🇺
##color: #4A90E2
##used: 500mb/10gb
##available: 9.5gb
##ip: 203.0.113.10
##comment: basic free node

olcrtc://wbstream?datachannel@abc123xyz#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa$DE / backup / IPv4
##name: DE-Backup
##icon: 🇩🇪
##color: #2EBD85
##comment: reserve route, wbstream+datachannel does not work in guest flow

Client Implementation

The reference client that reads this subscription format is owenewans/owenclave — an Android proxy client (fork of exclave) that supports all common protocols (vless, hysteria2, mieru, trojan, vmess, tuic, shadowsocks, socks, and others) plus olcrtc, the olcrtc:// URI format, and subscriptions. To use a subscription in owenclave, add the subscription URL in the app’s subscription management screen. The app will download the file, parse the global and per-server fields, and populate the server list. It will also re-download the file according to the #refresh: interval.

Build docs developers (and LLMs) love