Skip to main content

Identity & UI

Every source config starts with four required fields plus optional UI metadata.


Required fields

name: My Awesome Site      # Display name shown in the sidebar
id: myawesomesite # Unique identifier — MUST match the filename
type: html_scraper # Source type (see below)
base_url: https://example.com # Root URL, used for relative URL normalization
FieldTypeRequiredNotes
namestringDisplayed in sidebar and header
idstringMust match the .yaml filename exactly
typeenumhtml_scraper, json_api, graphql_api, xml_api, custom
base_urlstringNo trailing slash

Source types

ValueDescription
html_scraperParse HTML pages with CSS selectors
json_apiParse JSON responses with JSONPath
graphql_apiQuery a GraphQL endpoint
xml_apiParse XML/RSS feeds
customCustom logic (advanced)

UI metadata

Controls the icon and accent color shown in the sidebar and settings panel.

ui:
icon: gamepad-2 # Lucide icon name
color: "#6366f1" # Hex color for accent
FieldTypeDefaultNotes
iconstringgamepadAny Lucide icon name in kebab-case
colorstring#00e5ffHex color string

Icon examples

ui:
icon: gamepad-2 # controller
icon: monitor # screen / desktop
icon: download # arrow down into tray
icon: globe # web / internet
icon: hard-drive # storage
icon: zap # lightning / fast
icon: shield # security / protected
icon: star # featured
icon: wifi # online / connected
icon: package # software / bundle

Description

Optional subtitle shown in the settings panel.

description: "Browse and download games with online multiplayer support"

Authentication flag

If the site uses JavaScript-heavy bot protection (Cloudflare, DDoS-Guard) and all requests must go through a WebView session:

auth:
requires_webview_fetch: true

When true, the app will refuse to load the source until an active WebView session exists. See Authentication.