Install
openclaw skills install @hansponddg/background-downloadAsynchronous background download with retry, status tracking via Ontology, notifications to original channel. Supports resume on broken connections.
openclaw skills install @hansponddg/background-download中文:后台异步下载技能
Asynchronous background file download with:
-c)start - Start a new background downloadpython3 scripts/download.py start --title "Title" --url "https://example.com/file.zip" --path "/path/to/save/file.zip" --channel "feishu:direct:user_id" [--max-retries 3]
status - Check download status by task idpython3 scripts/download.py status --id down_xxxxxxx
list - List all download tasks filtered by statuspython3 scripts/download.py list [--status pending|downloading|completed|failed|archived]
archive - Archive old completed taskspython3 scripts/download.py archive --days 7
cleanup-zombies - Mark stale downloading tasks as failedpython3 scripts/download.py cleanup-zombies --hours 2
User requests download
↓
Create DownloadTask in Ontology (status=pending)
↓
Fork background download process, exit immediately (non-blocking)
↓
Background:
Update status → downloading
Loop:
Download with curl -C - (resume)
If success:
Update status → completed
Send notification to original channel
Done
If fail:
retry_count += 1
If retry_count < max_retries: wait 30s → retry
Else:
Update status → failed
Send failure notification to original channel
Done
Heartbeat daily:
cleanup-zombies --hours 2
archive --days 7
See references/schema.json for DownloadTask definition.
Required properties:
title: Human-readable download nameurl: Download URLpath: Local path to save filestatus: pending|downloading|completed|failed|archivedretry_count: Current number of retriesmax_retries: Maximum retries (usually 3)created_by_channel: Original channel identifier (channel_type:channel_id:user_id) for notification# From another skill
from scripts.download import start_download
start_download(
title="Obsidian Windows",
url="https://github.com/obsidianmd/obsidian-releases/releases/download/v1.12.4/Obsidian-1.12.4.exe",
path="/home/user/files/Obsidian.exe",
channel="feishu:direct:ou_xxxxxxx",
max_retries=3
)
Completion/failure notifications are sent via openclaw message send to the original channel recorded in created_by_channel.
ontology skill must be installed and initializedcurl or wget available on system