Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
knightloader
command
Command knightloader runs the KnightLoader server: the download engine, the REST + WebSocket API, the embedded web UI, and the Click'n'Load listener, all in one process.
|
Command knightloader runs the KnightLoader server: the download engine, the REST + WebSocket API, the embedded web UI, and the Click'n'Load listener, all in one process. |
|
knightloader-relay
command
Command knightloader-relay is the self-hosted message relay KnightLoader instances use to find each other when neither of them can accept an inbound connection - two desktop installs on different networks, say.
|
Command knightloader-relay is the self-hosted message relay KnightLoader instances use to find each other when neither of them can accept an inbound connection - two desktop installs on different networks, say. |
|
spike-download
command
Command spike-download is the KnightLoader M0 engine spike.
|
Command spike-download is the KnightLoader M0 engine spike. |
|
spike-jd
command
Command spike-jd is the KnightLoader M0 JD-integration spike.
|
Command spike-jd is the KnightLoader M0 JD-integration spike. |
|
spike-torbox
command
Spike: drive the TorBox Web-Downloads/Debrid API live with the real client.
|
Spike: drive the TorBox Web-Downloads/Debrid API live with the real client. |
|
spike-torrent
command
Command spike-torrent is the Wave 11.5 verify-first spike.
|
Command spike-torrent is the Wave 11.5 verify-first spike. |
|
Package extension embeds the Manifest V3 browser extension's source so the Go binary can serve it as a downloadable zip (internal/api/routes_browsertools.go) with no external hosting and no browser-store dependency — the same self-contained shape as package web for the SPA.
|
Package extension embeds the Manifest V3 browser extension's source so the Go binary can serve it as a downloadable zip (internal/api/routes_browsertools.go) with no external hosting and no browser-store dependency — the same self-contained shape as package web for the SPA. |
|
internal
|
|
|
accounts
Package accounts is an encrypted-at-rest store for premium/debrid credentials.
|
Package accounts is an encrypted-at-rest store for premium/debrid credentials. |
|
api
Package api exposes the app over HTTP: a small REST surface plus a WebSocket stream under /api, and the embedded SPA everywhere else.
|
Package api exposes the app over HTTP: a small REST surface plus a WebSocket stream under /api, and the embedded SPA everywhere else. |
|
apitoken
Package apitoken is named, individually revocable API credentials: the answer to "a phone gets its own", so losing one device means revoking that one token rather than rotating the shared password for every other client.
|
Package apitoken is named, individually revocable API credentials: the answer to "a phone gets its own", so losing one device means revoking that one token rather than rotating the shared password for every other client. |
|
app
Package app wires the store, engine, resolver registry and WebSocket hub into one coordinator.
|
Package app wires the store, engine, resolver registry and WebSocket hub into one coordinator. |
|
auth
Package auth is KnightLoader's optional password lock.
|
Package auth is KnightLoader's optional password lock. |
|
backup
Package backup builds the downloadable snapshot of everything a restore needs to bring an install back, and validates and stages an uploaded one.
|
Package backup builds the downloadable snapshot of everything a restore needs to bring an install back, and validates and stages an uploaded one. |
|
bridge
Package bridge forwards Click'n'Load submissions to a KnightLoader that runs somewhere other than the browser's own machine.
|
Package bridge forwards Click'n'Load submissions to a KnightLoader that runs somewhere other than the browser's own machine. |
|
buildinfo
Package buildinfo carries the build version, stamped at release time via -ldflags "-X github.com/junkerderprovinz/knightloader/internal/buildinfo.Version=vX.Y.Z".
|
Package buildinfo carries the build version, stamped at release time via -ldflags "-X github.com/junkerderprovinz/knightloader/internal/buildinfo.Version=vX.Y.Z". |
|
captcha
Package captcha is the honest source of truth for one thing: a hoster (or, for an OAuth-style login gate, an account) demanding something a human has to answer before a download can continue.
|
Package captcha is the honest source of truth for one thing: a hoster (or, for an OAuth-style login gate, an account) demanding something a human has to answer before a download can continue. |
|
checksum
Package checksum verifies finished downloads against the hashes that ship with them: .sfv listings, md5sum/sha1sum/sha256sum files, and the CRC32 tag that release names carry in the file name itself.
|
Package checksum verifies finished downloads against the hashes that ship with them: .sfv listings, md5sum/sha1sum/sha256sum files, and the CRC32 tag that release names carry in the file name itself. |
|
cnl
Package cnl implements the Click'n'Load protocol: browser extensions and "CNL" buttons on websites POST link lists to 127.0.0.1:9666, the de-facto standard port JDownloader and pyLoad listen on.
|
Package cnl implements the Click'n'Load protocol: browser extensions and "CNL" buttons on websites POST link lists to 127.0.0.1:9666, the de-facto standard port JDownloader and pyLoad listen on. |
|
collide
Package collide decides what happens when a download would land on a name that is already taken.
|
Package collide decides what happens when a download would land on a name that is already taken. |
|
confirm
Package confirm decides what happens to a link at the moment a batch leaves the collector: what to do with one that duplicates a link already in the list (OnDupes) and with one a check has already found offline (OnOffline), settled together so the person confirming a batch reads one sentence instead of two prompts back to back.
|
Package confirm decides what happens to a link at the moment a batch leaves the collector: what to do with one that duplicates a link already in the list (OnDupes) and with one a check has already found offline (OnOffline), settled together so the person confirming a batch reads one sentence instead of two prompts back to back. |
|
container
Package container reads the link-container files a download manager is expected to open: a plain list of links, and the encrypted formats the scene has used for twenty years — DLC, CCF and RSDF.
|
Package container reads the link-container files a download manager is expected to open: a plain list of links, and the encrypted formats the scene has used for twenty years — DLC, CCF and RSDF. |
|
core
Package core holds KnightLoader's shared domain types.
|
Package core holds KnightLoader's shared domain types. |
|
crawler
Package crawler turns one page URL into the many file links it points at.
|
Package crawler turns one page URL into the many file links it points at. |
|
dedupe
Package dedupe answers one question about a link that is about to be added: is it already in the list? It keeps two answers apart on purpose.
|
Package dedupe answers one question about a link that is about to be added: is it already in the list? It keeps two answers apart on purpose. |
|
discovery
Package discovery makes KnightLoader instances on one network find each other with nothing configured at all.
|
Package discovery makes KnightLoader instances on one network find each other with nothing configured at all. |
|
engine
Package engine wraps the embedded Gopeed download library and reports task updates back to the app.
|
Package engine wraps the embedded Gopeed download library and reports task updates back to the app. |
|
extract
Package extract unpacks downloaded archives (zip, rar incl.
|
Package extract unpacks downloaded archives (zip, rar incl. |
|
federation
Package federation lets one KnightLoader act as the dashboard for others: peer instances are stored locally, and their REST APIs are proxied so the UI can view and control every instance from one place.
|
Package federation lets one KnightLoader act as the dashboard for others: peer instances are stored locally, and their REST APIs are proxied so the UI can view and control every instance from one place. |
|
hosterauth
Package hosterauth is the native, per-host hoster login: KL's own host list, username/password form and per-row sync status, all rendered in KL's Carbon UI (see the frontend HosterLoginSection) - never JD's own web interface.
|
Package hosterauth is the native, per-host hoster login: KL's own host list, username/password form and per-row sync status, all rendered in KL's Carbon UI (see the frontend HosterLoginSection) - never JD's own web interface. |
|
httpx
Package httpx is the one outbound HTTP policy this app has.
|
Package httpx is the one outbound HTTP policy this app has. |
|
hub
Package hub is a minimal WebSocket fan-out: the app broadcasts task updates, every connected UI receives them live.
|
Package hub is a minimal WebSocket fan-out: the app broadcasts task updates, every connected UI receives them live. |
|
idleaction
Package idleaction answers what happens once the wait queue has nothing left to do on its own, and how long a person gets to change their mind before it does.
|
Package idleaction answers what happens once the wait queue has nothing left to do on its own, and how long a person gets to change their mind before it does. |
|
linkscan
Package linkscan finds the links inside whatever a person actually pastes, drops or forwards, so every intake path can hand it a raw blob instead of each inventing its own splitting rule.
|
Package linkscan finds the links inside whatever a person actually pastes, drops or forwards, so every intake path can hand it a raw blob instead of each inventing its own splitting rule. |
|
logring
Package logring keeps a bounded tail of the process's own log output in memory, for the diagnostics bundle and nothing else: it is not a log sink anybody configures, it never touches disk, and nothing here decides what gets logged - only what happens to the lines after something else already decided to log them.
|
Package logring keeps a bounded tail of the process's own log output in memory, for the diagnostics bundle and nothing else: it is not a log sink anybody configures, it never touches disk, and nothing here decides what gets logged - only what happens to the lines after something else already decided to log them. |
|
netproxy
Package netproxy runs a loopback HTTP proxy that all downloads are pointed at.
|
Package netproxy runs a loopback HTTP proxy that all downloads are pointed at. |
|
pathvars
Package pathvars expands JDownloader-style path variables, so a download folder can be written as "/downloads/<jd:packagename>/<jd:simpledate:yyyy-MM>" instead of a literal path.
|
Package pathvars expands JDownloader-style path variables, so a download folder can be written as "/downloads/<jd:packagename>/<jd:simpledate:yyyy-MM>" instead of a literal path. |
|
portmap
Package portmap asks a UPnP gateway to forward a port to this machine, and tells the caller whether the router actually kept the mapping rather than just accepting the request.
|
Package portmap asks a UPnP gateway to forward a port to this machine, and tells the caller whether the router actually kept the mapping rather than just accepting the request. |
|
provision
Package provision sets up a private, headless JDownloader for the desktop build so the user gets full hoster coverage out of the box without ever seeing JD's own UI.
|
Package provision sets up a private, headless JDownloader for the desktop build so the user gets full hoster coverage out of the box without ever seeing JD's own UI. |
|
proxycfg
Package proxycfg models JDownloader's Connection Manager: a user-ordered list of outbound connections that downloads are spread across.
|
Package proxycfg models JDownloader's Connection Manager: a user-ordered list of outbound connections that downloads are spread across. |
|
reconnect
Package reconnect gets the box a new public IP address, which is the only thing that lifts a hoster's free-user limit when the limit is keyed to the address.
|
Package reconnect gets the box a new public IP address, which is the only thing that lifts a hoster's free-user limit when the limit is keyed to the address. |
|
relay
Package relay routes messages between KnightLoader instances that present the same relay key, so two instances behind NAT - neither of which can accept an inbound connection - can still reach each other by both dialling out to one place they can both reach.
|
Package relay routes messages between KnightLoader instances that present the same relay key, so two instances behind NAT - neither of which can accept an inbound connection - can still reach each other by both dialling out to one place they can both reach. |
|
resolver
Package resolver is KnightLoader's plugin seam.
|
Package resolver is KnightLoader's plugin seam. |
|
resolver/debrid
Package debrid is the shared seam for one-shot debrid providers: services that turn a supported file-hoster link into a direct URL in a single call (AllDebrid, Real-Debrid).
|
Package debrid is the shared seam for one-shot debrid providers: services that turn a supported file-hoster link into a direct URL in a single call (AllDebrid, Real-Debrid). |
|
resolver/jd
Package jd talks to a headless JDownloader through its local "Deprecated API" (plain HTTP JSON on :3128, no cloud, no crypto).
|
Package jd talks to a headless JDownloader through its local "Deprecated API" (plain HTTP JSON on :3128, no cloud, no crypto). |
|
resolver/torbox
Package torbox is the debrid resolver: it turns a supported file-hoster link into a direct CDN URL via TorBox's Web Downloads / Debrid API, which the embedded engine then downloads.
|
Package torbox is the debrid resolver: it turns a supported file-hoster link into a direct CDN URL via TorBox's Web Downloads / Debrid API, which the embedded engine then downloads. |
|
resolver/torrent
Package torrent is KnightLoader's BitTorrent intake: it recognises magnet links and uploaded .torrent files, refuses the ones that are malformed or built to be hostile, and hands the rest to the embedded download engine.
|
Package torrent is KnightLoader's BitTorrent intake: it recognises magnet links and uploaded .torrent files, refuses the ones that are malformed or built to be hostile, and hands the rest to the embedded download engine. |
|
resolver/ytdlp
Package ytdlp is the media-extraction backend: it delegates the download to the yt-dlp binary (which handles ~1800 sites incl.
|
Package ytdlp is the media-extraction backend: it delegates the download to the yt-dlp binary (which handles ~1800 sites incl. |
|
rules
Package rules is KnightLoader's rule engine.
|
Package rules is KnightLoader's rule engine. |
|
schedule
Package schedule answers one question: at this moment, should the queue be running, and how fast.
|
Package schedule answers one question: at this moment, should the queue be running, and how fast. |
|
script
Package script is KnightLoader's answer to JDownloader's Event Scripter: a goja (pure-Go ECMAScript 5.1(+)) VM host that runs a small, user-written JavaScript snippet against one of a fixed set of app events - a task finishing, a task settling as failed, the wait queue going idle, or a person pressing "run now" on a saved script (see Trigger).
|
Package script is KnightLoader's answer to JDownloader's Event Scripter: a goja (pure-Go ECMAScript 5.1(+)) VM host that runs a small, user-written JavaScript snippet against one of a fixed set of app events - a task finishing, a task settling as failed, the wait queue going idle, or a person pressing "run now" on a saved script (see Trigger). |
|
seedphrase
Package seedphrase turns the secret that groups a person's own instances into twelve words, and back.
|
Package seedphrase turns the secret that groups a person's own instances into twelve words, and back. |
|
settings
Package settings persists user-tunable behaviour (concurrency, speed limit, extraction) as JSON in the data dir and hands out consistent snapshots.
|
Package settings persists user-tunable behaviour (concurrency, speed limit, extraction) as JSON in the data dir and hands out consistent snapshots. |
|
store
Package store persists tasks in a local SQLite database (pure-Go driver, no cgo).
|
Package store persists tasks in a local SQLite database (pure-Go driver, no cgo). |
|
throttle
Package throttle caps the combined download speed of everything that copies bytes through it.
|
Package throttle caps the combined download speed of everything that copies bytes through it. |
|
update
Package update checks whether a newer KnightLoader release exists, surfaced on both deployments' General tab now (jdp, 2026-08-24: a container user hit the card's old desktop-only gate and asked where the toggle had gone - checking GitHub and saying so is exactly as harmless for a container as for desktop).
|
Package update checks whether a newer KnightLoader release exists, surfaced on both deployments' General tab now (jdp, 2026-08-24: a container user hit the card's old desktop-only gate and asked where the toggle had gone - checking GitHub and saying so is exactly as harmless for a container as for desktop). |
|
watch
Package watch picks up links dropped into a folder.
|
Package watch picks up links dropped into a folder. |
|
Package web embeds the built React/Carbon SPA so KnightLoader ships as a single self-contained binary.
|
Package web embeds the built React/Carbon SPA so KnightLoader ships as a single self-contained binary. |
Click to show internal directories.
Click to hide internal directories.