Skip to content

Assets configuration reference ​

assets {} sets download defaults for geodata, the external Clash dashboard, and subscriptions. It does not control geodata update scheduling or checksum verification; those remain native API runtime settings.

dae
assets {
    route: routing
    geodata {
        geosite: 'https://example.org/geosite.dat'
        geoip: 'https://example.org/geoip.dat'
        route: direct
    }
    ui {
        url: 'https://example.org/dashboard.zip'
    }
    subscription {
        ua: 'clash.meta'
        interval: 86400s
        cache: true
    }
}
SettingDefaultMeaning
routeroutingDefault route for the downloads the file configures; when the file sets no route, a geodata route stored through the API stays in effect. routing follows the routing rules, direct connects directly, and a group name forces that group; an unknown group fails validation.
geodata.geositeBuilt-in URLs (with a state db)HTTP(S) source for the loaded geosite asset, at most 4096 bytes. Without a state db, updates require a configured URL.
geodata.geoipBuilt-in URLs (with a state db)HTTP(S) source for the loaded geoip asset, with the same limits.
geodata.routeassets.routeRoute for geodata downloads, including checksum requests. With a state db, the URLs and route are written into the stored sources at startup; API changes override them until the next startup.
ui.urlBuilt-in zashboard URLExternal dashboard ZIP source; HONK_UI_DOWNLOAD_URL overrides it. A missing or empty configured external-UI directory triggers the download.
ui.routeassets.routeRoute for the external UI ZIP download; also accepts a node tag.
subscription.uahonk/<version>Default request User-Agent for subscription entries.
subscription.interval86400sDefault periodic refresh interval; 0 disables scheduled refresh.
subscription.cachetrueDefault per-entry body caching, subject to global.store_subscribe.

An entry's options override assets.subscription and assets.route; geodata.route and ui.route override assets.route. Built-in defaults apply only where neither of them sets a value. See the subscription reference for entry syntax and the API reference for stored geodata settings.

The parser accepts the following experimental fields as aliases. Each occurrence emits a legacy-assets-key warning at that line. A nonempty legacy value together with the matching assets setting fails with conflicting-assets-setting; an empty legacy value does not conflict. A legacy route setting without a corresponding assets sub-block route can still override assets.route.

Legacy settingReplacement
experimental.native_api.geosite_download_urlassets.geodata.geosite
experimental.native_api.geoip_download_urlassets.geodata.geoip
experimental.native_api.geodata_download_detourassets.geodata.route
experimental.clash_api.external_ui_download_urlassets.ui.url
experimental.clash_api.external_ui_download_detourassets.ui.route

Only .dae configs resolve assets. JSON, YAML and TOML configs store the resolved download fields; there assets records the defaults but is not applied again, so set the experimental download fields and each subscription's own fields directly in those formats.


Source: honk upstream, licensed under GPL-3.0-only.