원클릭으로
rtorrent-api
// rTorrent XML-RPC command reference focused on remote control, multicall patterns, load methods, and the torrent commands used by Electorrent.
// rTorrent XML-RPC command reference focused on remote control, multicall patterns, load methods, and the torrent commands used by Electorrent.
Deluge Web JSON-RPC and core RPC reference covering session login, web methods, and commonly used core torrent operations.
qBittorrent WebUI API reference covering authentication, sync, transfer, torrent, RSS, and search endpoints for qBittorrent 5.0+.
Write code edits quickly without performing testing or validation
Synology Download Station Web API reference covering API discovery, authentication, request format, common errors, and Download Station task operations.
Transmission RPC reference covering JSON-RPC 2.0 transport, session token handling, torrent methods, session methods, and protocol versioning.
Safe Electron IPC patterns for renderer-main communication with preload bridges, channel design, replies, and serialization limits.
| name | rtorrent-api |
| description | rTorrent XML-RPC command reference focused on remote control, multicall patterns, load methods, and the torrent commands used by Electorrent. |
Use this skill when you need to integrate with rTorrent over XML-RPC.
/RPC2d.multicall2 or load.startload_start, d.get_name, or get_download_rate still appear in old examples but should not be used for new integrationsd.name.set command, for example d.priority.set=
d.multicall2("", "main", "d.hash=", "d.name=", "d.custom1=")d.custom=addtimed.* calls take the torrent info hash as the first XML-RPC argumentExample shape:
d.name = <hash> -> string
t.multicall(<hash>, "", ...) for trackers on one torrentf.multicall(<hash>, "", ...) for files on one torrentp.multicall(<hash>, "", ...) for peers on one torrentsystem.multicall([{ methodName, params }...])| Group | Purpose | Important examples |
|---|---|---|
d.* | Torrent/download fields and actions | d.multicall2, d.name, d.state, d.start, d.stop, d.erase |
t.* | Tracker fields and tracker multicalls | t.multicall, t.url, t.scrape_complete, t.is_enabled |
f.* | File fields and file priority | f.multicall, f.path, f.size_bytes, f.priority.set |
p.* | Peer inspection | p.multicall, p.address, p.client_version, p.down_rate |
load.* | Add torrents and magnet links | load.normal, load.start, load.raw_start, verbose variants |
view.* | Named views for listing/filtering/sorting torrents | view.list, view.add, view.filter, view.sort |
session.* | Session path/name/save behavior | session.path, session.name, session.save |
method.*, schedule2, event.* | Scripting, dynamic methods, scheduling | method.insert, method.set_key, schedule2 |
execute.*, system.* | Host/system interaction | execute.throw, execute.capture, system.client_version, system.shutdown.normal |
network.*, protocol.*, throttle.*, dht.*, pieces.* | Connectivity, encryption, limits, DHT, piece behavior | network.port_range, protocol.encryption.set, throttle.global_down.max_rate.set, dht.mode.set |
directory.*, group*.seeding.ratio.* | Default save path and seeding ratio policy | directory.default.set, group.seeding.ratio.enable, group2.seeding.ratio.max.set |
system.client_versionsystem.api_version if present on the targetview.list
maind.multicall2("", "main", ...)
main viewsystem.multicall([...])
Common listing fields for remote UIs:
d.hash, d.name, d.base_path, d.directory, d.tied_to_file, d.loaded_filed.size_bytes, d.completed_bytes, d.left_bytes, d.completed_chunks, d.chunk_sized.is_active, d.is_open, d.complete, d.state, d.down.rate, d.up.rate, d.down.total, d.up.totald.peers_accounted, d.peers_complete, d.tracker_size, d.tracker_numwantd.message, d.custom1, d.custom=addtimet.multicall(<hash>, "", ...)
Important tracker fields:
t.urlt.groupt.typet.is_enabledt.is_opent.min_intervalt.normal_intervalt.scrape_completet.scrape_downloadedt.scrape_incompletet.scrape_time_lastf.multicall(<hash>, "", ...)
p.multicall(<hash>, "", ...)
Important file fields:
f.pathf.size_bytesf.completed_chunksf.size_chunksf.priorityf.priority.setImportant peer fields:
p.addressp.portp.client_versionp.completed_percentp.down_ratep.up_rateload.normal("", <uri>)
load.start("", <uri>)
load.raw("", <torrent-bytes>)
load.raw_start("", <torrent-bytes>)
load.verbose, load.start_verbose, load.raw_verbose
If a save location must be set at add time, pass it in the initial load.* call:
d.directory.set=<json-encoded-path>Changing the directory after load is not equivalent for Electorrent's rTorrent flow.
d.open(<hash>)d.start(<hash>)d.stop(<hash>)d.close(<hash>)Typical start sequence:
d.opend.startTypical stop sequence:
d.stopd.closed.erase(<hash>)d.delete_tied(<hash>)d.check_hash(<hash>)Common related fields:
d.hashingd.hashing_failedd.state_changedd.timestamp.startedd.timestamp.finishedd.custom1.set(<hash>, <label>)d.custom.set(<hash>, <key>, <value>)d.custom1 ... d.custom5d.priority.set(<hash>, <0-3>)Priority values commonly used by clients:
| Value | Meaning |
|---|---|
0 | off / do not download |
1 | low |
2 | normal |
3 | high |
execute.throw("", "mkdir", "-p", <path>)
Useful related execution/system commands:
execute2, execute.nothrow, execute.captureexecute.*.bg background variantssystem.file.allocatesystem.shutdown.normalsystem.shutdown.quickUseful server/session inspection:
session.pathsession.namesession.savedirectory.defaultdirectory.default.setUseful network/rate settings often surfaced by remote clients:
throttle.global_down.max_ratethrottle.global_down.max_rate.setthrottle.global_up.max_ratethrottle.global_up.max_rate.setthrottle.max_downloads.globalthrottle.max_downloads.global.setthrottle.max_uploads.globalthrottle.max_uploads.global.setnetwork.port_rangenetwork.port_range.setnetwork.port_opennetwork.bind_addressnetwork.proxy_addressnetwork.http.proxy_addressnetwork.scgi.open_localnetwork.scgi.open_portnetwork.xmlrpc.dialect.setnetwork.xmlrpc.size_limitprotocol.encryption.setprotocol.pexdht.mode.setdht.portUseful for advanced integrations and config management:
method.insertmethod.getmethod.setmethod.list_keysmethod.has_keymethod.set_keyschedule2schedule_remove2For efficient snapshots, use d.multicall2 for torrent rows and t.multicall or f.multicall for nested resources, then normalize result arrays by column order on the client side.
Example:
d.multicall2("", "main", "d.hash=", "d.name=", "d.size_bytes=", "d.custom=addtime")
Remember that selector order defines result column order.
Electorrent uses:
system.client_versiond.multicall2t.multicallsystem.multicallf.multicallload.startload.raw_startexecute.throwd.open, d.startd.stop, d.closed.custom1.setd.custom=addtimed.custom5.setd.erased.delete_tiedd.check_hashd.priority.set