Repository navigation
capture agent
rdownloader-capture is a separate, per-user desktop program. It catches links where they appear
— Click'n'Load buttons, the clipboard, a double-clicked .nzb, link container or torrent, a file
dropped on its desktop shortcut — and hands them to the service's LinkGrabber.
It is optional. The service works fine without it; you just paste links yourself.
It is a desktop program. The Docker image does not contain it. On a NAS or a server, use the browser extension instead, or run the agent on your desktop pointed at the remote service.

The agent needs a capture token, issued in the web interface under Settings → Clients & API → Desktop (or during the setup wizard). It is shown exactly once. Expires sets how long it lasts — Never, the default, or 7, 30, 90 or 365 days; an expired token is refused and stays listed until you revoke it.
rdownloader-capture configure --token-stdin--token-stdin reads the token from standard input and is the recommended way: an argument is
readable by every local user through ps or the task manager and lands in the shell history.
--token <TOKEN> works too and is what the pairing card's copyable command uses.
For a remote service, name it too:
rdownloader-capture configure --service https://nas.example --token-stdinA non-loopback address must be https. The capture token is a long-lived credential sent with
every request, so pairing over plain HTTP to another machine is refused unless you pass
--allow-insecure-service. An existing plain-HTTP pairing to another machine is named in a warning
on every start until it is paired again over https.
The token is stored in the operating-system keyring, with a user-private 0600 file fallback on
Unix. The service address goes into capture.json in the per-user configuration directory.
A capture token is not an API token. It may push links into the LinkGrabber, read one narrow event stream and read and switch the agent's own settings (the clipboard pause and the shortcuts below) — nothing else. It cannot read download paths, change any other setting, or reach the MCP endpoint, and it cannot be minted as an API token. See Accounts, sessions and permissions.
May control the queue. Tick this box on the pairing card to let the agent pause and start the
whole queue from its tray, add everything from the LinkGrabber, and step aside for games (all
below). It is off unless you tick it, it is offered for the desktop agent only, and it adds
exactly that: pausing everything, for a while or until resumed, resuming it, sending the
LinkGrabber's contents to the downloads, and the game-mode hold — no single download, no
reordering, no reading the queue. To give an agent that is
already paired the right, pair it again with the box ticked; the list of paired connections shows
capture:queue beside the ones that have it.
May install server updates. A second box on the pairing card, also off unless you tick it, lets the agent install rDownloader's own update from its tray (see Installing the server's update) and restart rDownloader when a restart is pending (see Restarting the server). Without it, the update entry only opens the update page in the browser, and Restart server is not shown.
rdownloader-capture runOr let it start at login:
rdownloader-capture autostart installautostart remove disables future login starts without stopping the process that is running.
Linux uses systemd user units, macOS LaunchAgents, Windows a windowless per-user launcher.
The portable launchers (start-rdownloader.sh, .bat, .command) start the agent alongside the
service; pass capture to start only the agent.
Installed through Homebrew, the agent's login start is a formula of its own:
brew install degoya/rdownloader/rdownloader-capture
rdownloader-capture configure --token-stdin
brew services start rdownloader-captureIt runs the rdownloader-capture of the rdownloader formula, so brew upgrade keeps it
current. On macOS it is a LaunchAgent in your login session, so the tray icon appears; the tray's
Quit stays quit until the next login or brew services restart rdownloader-capture, while a
failure restarts it. The log is $(brew --prefix)/var/log/rdownloader-capture.log. Use this
instead of rdownloader-capture autostart install, which would start a second agent that finds
port 9666 taken.
Where the agent runs beside rDownloader — the same folder, the installer, a Linux package — the service's update replaces both programs, and the agent restarts as the new version by itself within half a minute. Nothing else to do.
An agent installed without rDownloader — the service on a NAS, in Docker or on another computer — updates itself from 1.21 on:
- A minute after it starts, and then once a day, it asks for a newer version on the channel your rDownloader reads (stable when it cannot tell). It accepts only a release signed with rDownloader's update key, and never offers a version older than the one it runs.
- The tray menu then shows Install update to 1.21.0. Choose it, and the agent downloads its own archive, checks it against the signed release, replaces its program files and restarts as the new version. If the new version does not start within two minutes, the previous one is put back and runs again.
- Without a tray (Linux), or from a terminal:
rdownloader-capture update. It checks, installs and says how it ended;rdownloader-capture update --checkonly says what is offered. - An agent installed with Homebrew's
rdownloader-captureformula is told to runbrew upgrade rdownloader-captureinstead. - Settings → System → Updates in rDownloader shows when a connected agent offers itself an update.
To switch the agent's own check off, or back on:
rdownloader-capture update --auto-check offrDownloader cannot make the agent install anything. It can only ask once the agent allows it —
rdownloader-capture update --allow-remote on, off by default — and the agent then installs only
the version it found itself.
Installing by itself. A portable agent installed without rDownloader can also install an update the moment its check finds one, with the same verification and roll-back: tick Install updates automatically in its tray menu, or run
rdownloader-capture update --auto-install on(off switches it back). It is off by default and kept across restarts. Beside the service the
item is not shown: there rDownloader's own Install updates automatically setting decides for
both programs — see Updates.
The agent serves a JDownloader-compatible Click'n'Load endpoint on 127.0.0.1:9666 and
[::1]:9666, loopback only. A site's "Click'n'Load" button therefore works exactly as it
would with JDownloader running.
If port 9666 is already taken — a second capture agent from autostart, or JDownloader itself —
the agent reports it and exits with code 11; decide which program should have the port. A bind
to only one of the two addresses is reported, not counted as success.
Only one agent runs per user account. A second one started while the first runs waits up to ten
seconds — long enough for the restart after an update, where the new agent starts before the old
one has ended — and then says the agent is already running and exits with code 11 as well.
Loopback is not a boundary against a browser: every page open in your browser can reach
127.0.0.1:9666. So the port decides per route who may call it.
- The JDownloader-compatible
/flash*routes allow cross-origin calls, because a hoster's page calls them from its own origin. - The port takes no NZB file. A double-clicked
.nzband anrdownloader://link go to the rDownloader service directly, with the agent's pairing token — never through the port, which another account on the same machine could hold while no agent runs. - A refusal answers with a stable code; the detail stays in the log. The answer never says why a payload failed to decrypt.
- Each route has its own size limit, enforced before the body is decoded.
- At most 30 hand-overs a minute are accepted; past that a page gets
429with the codecnl_rate_limitedand nothing reaches the LinkGrabber. A package name is cut to 200 characters, and a password longer than 1024 characters is refused. - The preflight answer names the headers
Content-TypeandX-Referer— some hoster pages send their address inX-Refererand the browser drops the request otherwise; the agent never reads it — and saysAccess-Control-Allow-Private-Network: true, which Chrome asks for before a public page may call127.0.0.1. Both open the JDownloader-compatible routes only, which any page may reach anyway; that is what Click'n'Load is.
HTTP(S) links copied to the clipboard are picked up and offered to the LinkGrabber. Enabled by
default; --clipboard=false turns it off.
The native clipboard is used on Windows, macOS, X11 and supported Wayland compositors. A pure Wayland session needs the data-control protocol; where the compositor does not provide it, Click'n'Load keeps working and the limitation is written to the capture log.
What a password manager marks as concealed is left alone: neither handed over nor written to the
log. The agent honours the marks password managers set on each platform —
ExcludeClipboardContentFromMonitorProcessing and CanIncludeInClipboardHistory on Windows,
org.nspasteboard.ConcealedType and TransientType on macOS, x-kde-passwordManagerHint under
X11 and Wayland. Password managers such as KeePassXC set them for a copied password; one that
sets none of them is not recognised.
Before the agent sends its token anywhere, it asks the service address who answers there. Only
rDownloader gets the token. Any other program listening on that address — another account's
server on a shared machine, a development server, a mistyped port — gets nothing, and the agent
writes it to its log; a double-clicked .nzb or an rdownloader:// link says so in a
notification. The check tells rDownloader apart from other programs, not from a program built to
pass for it.
When you copy links you do not want downloaded, pause the watching:
- the tray's Pause clipboard watching entry (ticked while paused),
- its keyboard shortcut (see below),
- the switch on Settings → Clients & API → Desktop, or the MCP tool
update_capture_agent_settings, - on a desktop without a tray:
rdownloader-capture pause,resumeandstatus.
Only the clipboard pauses. Click'n'Load, the browser extension and rdownloader:// links keep
working, because you trigger those on purpose. While paused the agent does not read the clipboard
at all, and links copied during the pause are not delivered when you switch it back on — only
what you copy afterwards. The tray icon turns grey and the status line and tooltip end on
capture paused.
The service keeps the setting, so every switch — tray, settings page, command — is the same one, and a change made in the web interface reaches the running agent within five seconds. The agent keeps a copy, so it starts paused after a restart even when the service is not up yet.
Hand over clipboard now reads the clipboard once and delivers its links, also while
watching is paused — for the one link you do want. It is in the tray menu, has its own shortcut,
and on any desktop rdownloader-capture send-clipboard does the same. A notification says how
many links were handed over, or No link found on the clipboard.
rdownloader-capture association installDouble-clicking an .nzb file then imports it. The link containers .dlc, .ccf, .rsdf,
.rdlinks and .crawljob and .torrent files are offered too, without taking another
program's default: each gets an "Import into rDownloader" entry in its right-click menu, and
the agent appears in its Open with list. The NZB gets the same entry, whichever application is
its default handler:
- Windows 11 — the entry appears under Show more options (Shift + F10), not at the top level.
- Linux — the agent's desktop entry names all seven types, so it appears in file managers' Open With list for each.
-
macOS — there is no Finder context-menu item. Use Open With and pick
rDownloader Capture.app, which ships in the macOS archive and must stay next tordownloader-capture; it never becomes the default for these types.
association remove takes all of it back.
Windows: a drop shortcut and Send to.
rdownloader-capture drop-shortcut install # "Add to rDownloader" on the desktop
rdownloader-capture send-to install # "rDownloader" under Send toFiles dropped on Add to rDownloader, or sent with right-click → Send to → rDownloader, are
handed over like a double-clicked one; remove takes either back. The Windows installer runs all
three commands for you when you pass ASSOCIATION=1, DROPSHORTCUT=1 or SENDTO=1, and removes
all three when it uninstalls; see Installation.
However they arrive — a double-click, a drop, Send to — several files at once end in one
notification with the count: an NZB lands as an NZB import, a container goes through the
LinkGrabber's container import, a torrent becomes a
LinkGrabber package. A file of any other type is refused and named in that notification. Metalink
files (.metalink, .meta4) are not taken this way; paste their content into Add links
instead.
The agent can register as the handler for rdownloader:// addresses, so a page or a script can
hand links over with one click:
rdownloader-capture scheme install # Windows and Linux
rdownloader-capture scheme removeTwo forms are accepted:
| Address | Does |
|---|---|
rdownloader://add?url=<link> |
Adds one link. Repeatable; magnets allowed. urls= takes a newline-separated list. |
rdownloader://open?path=<absolute path> |
Imports a local .nzb
|
A scheme handler is reachable from any web page, so everything else is refused:
- no
file:,javascript:ordata:links, - no relative paths, no
..and no network share, -
no
.torrentwithopen— only.nzbfiles are imported this way, - at most 50 links and 8,192 characters.
What it accepts goes into the same LinkGrabber review the clipboard and the file association use.
macOS is not supported — a bare executable cannot claim a URL scheme there; scheme install
says so.
It does not answer widget captchas (reCAPTCHA, hCaptcha, Turnstile); answering one by hand goes through the browser extension.
On Windows and macOS, run shows a tray or menu-bar icon with the paired service, a title
line, two status lines, Open rDownloader, About rDownloader and Quit. The icon carries a badge while work is going on, and
"Open" is enabled only when there is something to open. On macOS the agent stays out of the Dock.
The menu opens on a title line — the rDownloader mark and rDownloader v… with the agent's version — that cannot be chosen, with a separator below it. About rDownloader, beside Open rDownloader, opens Settings → About rDownloader of the paired rDownloader in the browser; like Open, it is greyed out while the server does not answer.
Two status lines follow: the first names the agent's version and address with what the queue is doing, the second the server — Server v1.24.0 — running, or Server — not reachable without a version while it does not answer. The server's version is shown only when the address answers as rDownloader. The tooltip keeps one line naming the agent and the server's state.
Below them the menu lists the queue controls, named like the Start all / Pause all control in the web interface. Each is enabled while it would do something:
- Start all while a timed pause holds or downloads are paused: it ends the timed pause, or starts the paused downloads again. Failed downloads stay as they are — restart those in the web interface.
- Pause all while anything downloads or waits.
- Pause for 30 minutes and Pause for 1 hour while no timed pause holds — the same timed pause the web interface sets, which also keeps new links waiting until it ends.
While a timed pause holds, the status line starts with paused until 18:30.
Beside them, two entries empty the LinkGrabber the way e and w do in the web interface:
- Add all from LinkGrabber — every package with a link checked online and every imported NZB goes to the downloads and starts.
- Add all from LinkGrabber paused — the same, added paused.
A package or NZB that holds something already added stays in the LinkGrabber: the web interface asks about those, the tray cannot. A desktop notification says what happened — 5 links and 1 NZB added to the downloads, or The LinkGrabber has nothing to add.
The controls work only for an agent paired with May control the queue ticked. An agent paired without it shows them greyed out with Pair again to control the queue: pair it again with the box ticked to use them.
Pause while gaming is a check item that switches game mode on and off without opening the web interface; it is the same switch as on the settings page. It is greyed out with (set up in Settings) while no program and no full screen is set to watch for, and for an agent paired without May control the queue.
Install updates automatically is a check item of an agent installed without rDownloader only; see Keeping it up to date. Beside the service it is not shown.
An icon that cannot be created — in a remote session, for instance — is logged as a warning and the agent keeps running headless.
--no-tray (or RDOWNLOADER_NO_TRAY=1) forces headless mode. Without the tray there are no
keyboard shortcuts on Windows and macOS: the tray's event loop is what receives them.
Linux is always headless; the systemd user unit from autostart install provides the status
instead.
While rDownloader is offered a newer version, the menu shows Install server update 1.25.0 (with the offered version):
- Paired with May install server updates — choosing it installs the update, the same install as Settings → System → Updates with its backup, checks and roll-back. A notification says it started, the server line reads Server — updating to v1.25.0…, and a second notification tells how it ended, also when the update restarted the agent. While downloads are running, the entry asks first: choose it again within two minutes to go ahead; they continue after the restart.
- Paired without it — the entry opens the update page in the browser.
- An installation a package manager or Docker updates shows its update command, greyed out, and installs nothing.
When something waits for rDownloader's next start — a plugin installed or updated, see Restarting when needed — the server line ends in restart pending. An agent paired with May install server updates then shows Restart server, greyed out while an update is being installed or a restart has already begun. Choosing it restarts rDownloader the way Restart now in the web interface does, and a notification says that it restarts and how it comes back. While downloads are running, the entry asks first: choose it again within two minutes to go ahead; they continue after the restart. An agent paired without the right does not show the entry; its shortcut only says to pair again.
Every entry of the tray menu that you can choose can have a system-wide keyboard shortcut, so you can pause, resume or hand the clipboard over without opening the menu. Sixteen commands, seven with a shortcut by default; the others have none until you give them one. The menu shows each shortcut beside its entry. Only the title and status lines have none, since there is nothing to choose.
| Command | Windows and Linux | macOS |
|---|---|---|
| Open rDownloader | Ctrl+Alt+O | Cmd+Option+O |
| Start all | Ctrl+Alt+G | Cmd+Option+G |
| Pause all | Ctrl+Alt+P | Cmd+Option+P |
| Pause for 30 minutes | Ctrl+Alt+K | Cmd+Option+K |
| Pause for 1 hour | Ctrl+Alt+Shift+K | Cmd+Option+Shift+K |
| Pause clipboard watching | Ctrl+Alt+Z | Cmd+Option+Z |
| Hand over clipboard now | Ctrl+Alt+V | Cmd+Option+V |
| Pause while gaming | none | none |
| Install server update | none | none |
| Install updates automatically | none | none |
| Quit | none | none |
| Add all from LinkGrabber | none | none |
| Add all from LinkGrabber paused | none | none |
| Install update (the agent's own) | none | none |
| Restart server | none | none |
| About rDownloader | none | none |
The commands without a default can be given a shortcut like the others; Quit has none by default so that a stray key press does not end the agent. A shortcut does what the menu entry would, under the same rules: where the entry would be greyed out or refused, the shortcut does nothing and says why. The two LinkGrabber shortcuts of an agent paired without May control the queue, and Install update while the agent has no update of its own to install — beside the service, or with nothing offered — tell you so in a desktop notification.
A tray entry added in a later version comes with its command as well, so it can always have a shortcut.
Change them on Settings → Clients & API → Desktop: press Record beside a command and
then the combination; Reset brings the default back, No shortcut removes it. The running
agent takes the change within a few seconds, without a restart. MCP sets them with
update_capture_agent_settings, and rdownloader-capture status lists them.
A combination needs two of Ctrl, Alt/Option and Win/Cmd (Shift may come on top), so it cannot take away a program's own shortcut such as copy and paste. Combinations the system already uses (such as Ctrl+Alt+Delete) and one that another command has are refused when you save. If another program already holds a combination, the agent reports it and the settings page names the command — pick another one there.
On Windows, AltGr is Ctrl+Alt. The defaults avoid the AltGr characters of German, French and Spanish keyboards; on a layout that types more letters with AltGr (Polish, Czech), change a default that hides a character you need.
Linux: shortcuts work in an X11 session only. Wayland gives no program a system-wide
shortcut; there the agent registers none and the settings page says so — use
rdownloader-capture pause, resume and send-clipboard, for example from your desktop's own
shortcut settings.
The agent raises a native desktop notification when links arrive in the LinkGrabber, one per import — so a handoff is visible without a browser tab open. The event stream it reads carries only intake events and a bare captcha count, so the token cannot see download paths or credential changes. After a reconnect, imports that arrived meanwhile are still announced. While the agent is connected, an open rDownloader tab leaves this notice to it, so links that arrive are announced once. Links the browser extension hands over are announced by the extension, so the agent raises nothing for them; its own Click'n'Load and the files you open with it keep their notification. During quiet hours the agent raises none; what arrived meanwhile is announced together once they end.
Linux uses the freedesktop D-Bus interface. On Windows, run association install so the
notification is attributed to rDownloader rather than PowerShell. A desktop with no notification
daemon is a log warning and nothing more.
--no-notifications (or RDOWNLOADER_NO_NOTIFICATIONS=1) turns it off.
The notification about links arriving in the LinkGrabber speaks the desktop's language when it is German, English, French or Spanish, and English otherwise: the language your session sets, or, when it sets none — as on Windows and for an agent macOS starts at login — the system's preferred language. The tray menu and the agent's other notifications are English only.
The agent can step aside while you play, watch a film or present. Set it under Settings → Clients & API → Desktop, card Step aside for games:
- While a program is full screen — games, videos and presentations in full screen. Windows only: macOS cannot tell without the screen-recording permission.
-
While these programs run — process names such as
game.exeorobs64, without a path; capitals and the.exeending do not matter. Windows and macOS. - What the agent does then — Pause the queue (running and waiting downloads stop and start again afterwards) or Switch on a bandwidth profile (downloads go on at the profile's limits; the schedule decides again afterwards). The profile has to exist first, under Bandwidth.
Press Save game mode; the running agent takes it over within a few seconds. Game mode
switched on at the top of the card is the same switch as Pause while gaming in the tray:
switched off, the programs are kept for next time, and a pause the agent set ends at once. The
switch survives a restart of the agent. An assistant sets
the same over MCP with update_capture_agent_settings.
The agent holds the pause or the profile for 15 minutes at a time and renews it while the program runs, so an agent that crashed or a machine that went to sleep leaves nothing behind for longer. It lifts only what it set itself: it does not take over a pause or a profile somebody else switched on, and a pause of its own that you resume in between stays resumed until the game is over. Game mode needs the agent paired with May control the queue. Linux has no game mode.
| Command | Does |
|---|---|
run |
Run the agent |
configure --service URL --token-stdin |
Pair with a service |
open <PATH>... |
Hand one or several files over — NZBs, link containers and torrents; what the file association, the drop shortcut and Send to run |
handle <URL> |
Handle one rdownloader:// address |
scheme install / remove
|
URL-scheme handler registration |
association install / remove
|
File association for .nzb, the link containers and .torrent
|
drop-shortcut install / remove
|
The Add to rDownloader shortcut on the desktop (Windows) |
send-to install / remove
|
rDownloader under Send to (Windows) |
autostart install / remove
|
Start at login |
pause / resume
|
Pause or resume clipboard watching |
status |
Whether clipboard watching is paused, and the shortcuts |
send-clipboard |
Hand the clipboard's links over once, also while paused |
update |
Check for a newer agent and install it — only for an agent installed without rDownloader (above); --check only looks |
update --auto-check on|off, --allow-remote on|off
|
Switch the agent's own daily check, and whether rDownloader may ask it to install |
update --auto-install on|off |
Whether the agent installs a found update by itself |
Flags for run: --service (RDOWNLOADER_SERVICE; https, or plain http on this machine only —
a plain-http address elsewhere is accepted only from configure --allow-insecure-service),
--cnl-listen (repeatable, defaulting to 127.0.0.1:9666 and [::1]:9666), --clipboard,
--no-notifications (RDOWNLOADER_NO_NOTIFICATIONS), --no-tray (RDOWNLOADER_NO_TRAY).
Flags for configure: --service, --token, --token-stdin, --allow-insecure-service.
pause, resume, status, send-clipboard, open and handle take --service like run.
The token is never a command-line argument of these commands: every account on the machine can
read a command line. It comes from the keyring, the private fallback file, or the environment
variable RDOWNLOADER_CAPTURE_TOKEN.
| Code | Meaning |
|---|---|
0 |
Fine |
10 |
Not paired yet |
11 |
Already running — another agent of this account, or JDownloader holding the Click'n'Load port |
1 |
A real failure |
10 and 11 are reported by the portable launchers as outcomes, not as a failed start.
- Browser extension — the alternative for NAS and Docker
- The LinkGrabber — where everything it captures lands
- First run — issuing the pairing token
- Accounts, sessions and permissions
Getting started
- Installation
- Building from source
- Translating rDownloader
- First run
- Your first download
- The interface
Using rDownloader
- The download queue
- Download history
- The LinkGrabber
- Site rules
- Hosters and accounts
- Usenet and NZB
- BitTorrent
- Video and audio downloads
- Image galleries
- Livestream recording
- FTP, SFTP and WebDAV
- Object storage
- Subscriptions
- Remote jobs
- Storage, categories and rules
- Watched folders
- Post-processing
- Bandwidth and power
- Notifications
- Automation
- Statistics
- Keyboard and accessibility
Integrations
- Browser extension
- Desktop capture agent
- Command line client
- REST API
- MCP server
- Automation tool compatibility
Operating
- Docker and NAS
- Synology NAS
- Reverse proxy
- Accounts, sessions and permissions
- Sign in with an identity provider
- External tools
- Backup and restore
- Updates
- Security and privacy
- Diagnostics and maintenance
- Troubleshooting
- Defaults and limits
- Support matrix
Plugins
Plugin development
- Developing a plugin
- Resolver
- Transfer backend
- Intake parser
- Intake parser with mirrors
- Folder crawler
- Remote job
- Sign-in
- OAuth sign-in
- Metadata enricher
- Notification destination
- Post-processing step
- Upload destination
- Stream transform
- Plugin reference
- Packaging, signing and distribution
- Running a plugin repository
Reference