Skill: Deluge API

SkillDev tools

Deluge Web JSON-RPC and core RPC reference covering session login, web methods, and commonly used core torrent operations.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Skill: Deluge API skill

What this skill tells your AI

The instructions your AI receives, as published by tympanix/electorrent in .agents/skills/deluge-api/SKILL.md and read by ahel’s review.

Purpose

Use this skill when you need to integrate with Deluge Web or reason about Deluge RPC calls exposed through the Web UI.

Protocols

Web API

  • Endpoint: /json
  • Spec: JSON-RPC v1-style request body
  • Typical request body:
{
  "method": "web.update_ui",
  "params": [["name", "progress"], {}],
  "id": 1
}
  • File uploads are sent to /upload

Core daemon RPC

DelugeRPC is the daemon/client wire protocol. Messages are zlib-compressed, rencode-encoded payloads.

  • Request: [[request_id, method, [args], {kwargs}], ...]
  • Response: [message_type, request_id, [return_value]]
  • Error: [message_type, request_id, exception_type, exception_msg, traceback]
  • Event: [message_type, event_name, data]

The Web UI exposes many core methods directly through the JSON endpoint, so callers often use JSON requests with core.*, auth.*, and web.* method names.

Session flow

Typical Web UI flow:

  1. auth.login(password)
  2. web.get_hosts()
  3. web.connect(host_id)
  4. Use web.* and core.* methods against the connected daemon

Main Web methods

MethodParametersPurpose
web.add_hosthost, port, username='', password=''Add daemon to host list
web.edit_hosthost_id, host, port, username='', password=''Edit host entry
web.remove_hosthost_idRemove host entry
web.get_hostsnoneReturn configured hosts
web.get_host_statushost_idGet daemon status
web.connecthost_idConnect Web UI to a daemon
web.connectednoneCheck connected state
web.disconnectnoneDisconnect current daemon
web.get_eventsnoneDrain queued events
web.register_event_listenereventSubscribe to event queue
web.deregister_event_listenereventRemove subscription
web.get_confignoneRead Web UI config
web.set_configconfigUpdate Web UI config
web.set_themethemeChange theme
web.get_pluginsnoneAvailable/enabled Web UI plugins
web.get_plugin_infonamePlugin details
web.get_plugin_resourcesnamePlugin resource files
web.upload_pluginfilename, pathUpload plugin
web.download_torrent_from_urlurl, cookie=NoneDownload torrent to temp path
web.get_magnet_infouriParse magnet metadata
web.get_torrent_infofilenameInspect torrent file on disk
web.get_torrent_filestorrent_idTorrent files tree
web.get_torrent_statustorrent_id, keysSelected torrent fields
web.update_uikeys, filter_dictIncremental UI snapshot
web.add_torrents[{path, options}]Add uploaded/downloaded torrent files

Core methods commonly used through Web API

MethodParametersPurpose
core.get_config_values[keys]Read daemon config such as download_location
core.resume_torrent[hashes]Resume torrents
core.pause_torrent[hashes]Pause torrents
core.force_recheck[hashes]Recheck torrents
core.remove_torrent[hash, remove_data]Remove torrent, optionally deleting data
core.queue_up[hashes]Move up in queue
core.queue_down[hashes]Move down in queue
core.queue_top[hashes]Move to top
core.queue_bottom[hashes]Move to bottom

Important request and response details

  • web.connect(host_id) returns the list of methods the daemon supports
  • web.update_ui(keys, filter_dict) returns torrent/UI data keyed by torrent hash
  • web.add_torrents() expects uploaded files to be referenced by temporary path
  • web.download_torrent_from_url() returns the temporary filename to pass into web.add_torrents()
  • web.get_torrent_info() returns name, files_tree, and info_hash

Common options for web.add_torrents

Common per-torrent options include:

  • download_location
  • file_priorities
  • add_paused
  • compact_allocation
  • max_connections
  • max_download_speed
  • max_upload_slots
  • max_upload_speed
  • prioritize_first_last_pieces

Electorrent usage

Electorrent uses:

  • auth.login
  • web.get_hosts
  • web.connect
  • web.update_ui
  • web.download_torrent_from_url
  • web.add_torrents
  • core.get_config_values
  • core.resume_torrent
  • core.pause_torrent
  • core.force_recheck
  • core.remove_torrent
  • core.queue_up, core.queue_down, core.queue_top, core.queue_bottom

References

Signals

GitHub stars
1k
Forks
98
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
deluge-api
Source
github.com/tympanix/electorrent