/install download-file
📥 Large File Downloader
When to Use
Use this skill when downloading files from HTTP/HTTPS URLs, especially large files (>100MB).
Typical scenarios:
- Downloading software installers (DMG, EXE, ZIP)
- Downloading large datasets
- Downloading video/audio files
- Downloading documents/PDFs
- Any file download from URL
Trigger keywords:
- "download this file"
- "save this DMG"
- "download from this URL"
- "get this file"
- "帮我下载 xxx" (Chinese)
Core Principles
⚠️ Must-Follow Best Practices
- Always use background execution - Never run large downloads synchronously
- Always set timeout - Configure reasonable timeout based on file size
- Always support resume - Use
curl -C -for resumable downloads - Always show progress - Use
--progress-barflag - Always verify results - Check file size after download completes
Standard Process
Step 1: Start Download (Background Mode)
exec(
command="curl -L -C - --progress-bar -o \x3Cdestination_path> \x3CURL>",
background=true,
timeout=600
)
Parameter explanation:
-L- Follow redirects-C -- Resume partial download--progress-bar- Show progress bar-o- Output file pathbackground=true- Critical! Run in background to avoid timeouttimeout=600- 10 minutes timeout (adjust based on file size)
Step 2: Monitor Progress
process(action="poll", sessionId="\x3Csession_id>")
Poll periodically to check download progress until completion.
Step 3: Verify Result
exec(command="ls -lh \x3Cfile_path>")
Check:
- File exists
- File size is reasonable
- File is complete (compare MD5/SHA if available)
Complete Examples
Example 1: Download DMG File (215MB)
User: "Download https://github.com/example/app/releases/download/v1.0/app.dmg"
Agent action:
{
"tool": "exec",
"command": "curl -L -C - --progress-bar -o ~/Downloads/app.dmg https://github.com/example/app/releases/download/v1.0/app.dmg",
"background": true,
"timeout": 600
}
Returns: {status: "running", sessionId: "xxx"}
Then poll periodically:
{
"tool": "process",
"action": "poll",
"sessionId": "xxx"
}
After download completes, verify:
{
"tool": "exec",
"command": "ls -lh ~/Downloads/app.dmg && file ~/Downloads/app.dmg"
}
Example 2: Download Small File (\x3C50MB)
For small files, simplified handling is acceptable:
exec(command="curl -L -o ~/Downloads/small.pdf https://example.com/small.pdf", timeout=120)
Small files can run synchronously, but still set timeout.
Timeout Reference
| File Size | Recommended Timeout |
|---|---|
| \x3C 50MB | 120 seconds (2 min) |
| 50-200MB | 300 seconds (5 min) |
| 200-500MB | 600 seconds (10 min) |
| 500MB-1GB | 1200 seconds (20 min) |
| > 1GB | 1800 seconds (30 min) or more |
Error Handling
Common Errors & Solutions
1. Download interrupted
# Re-run same command, curl -C - will resume automatically
curl -L -C - --progress-bar -o file.zip \x3CURL>
2. Permission denied
# Ensure destination directory is writable
mkdir -p ~/Downloads
3. Redirect failed
# Use -L flag to follow redirects
curl -L -o file.zip \x3CURL>
4. Network timeout
# Increase timeout or use --retry
curl -L --retry 3 --connect-timeout 30 -o file.zip \x3CURL>
Advanced Options
Multi-threaded Download (aria2)
If aria2 is available, use multi-threading for faster downloads:
exec(
command="aria2c -x 16 -s 16 -k 1M --continue -o ~/Downloads/file.zip \x3CURL>",
background=true,
timeout=600
)
Full Flow with Progress Monitoring
# 1. Start download
exec(command="curl -L -C - --progress-bar -o ~/Downloads/file.zip \x3CURL>", background=true, timeout=600)
# 2. Poll every 30 seconds
process(action="poll", sessionId="xxx")
# 3. Verify after completion
exec(command="ls -lh ~/Downloads/file.zip")
# 4. Optional: Calculate checksum
exec(command="md5sum ~/Downloads/file.zip")
Security Considerations
- Download from trusted sources only - Verify URL origin
- Check file type - Use
filecommand to verify - Scan for viruses - If needed, scan after download
- Don't overwrite important files - Check if destination exists
Related Skills
feishu-send-file- Send downloaded file to Feishufile-read- Read downloaded file contentvideo-frames- Extract frames if video file
Troubleshooting
If download fails, follow these steps:
-
Check network connectivity
curl -I \x3CURL> -
Check disk space
df -h ~/Downloads -
View detailed error
curl -v -o /dev/null \x3CURL> -
Try alternative tool
wget --continue \x3CURL>
Remember: Always use background=true for large file downloads! 🎯
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install download-file - After installation, invoke the skill by name or use
/download-file - Provide required inputs per the skill's parameter spec and get structured output
What is Download File?
Download large files from HTTP/HTTPS URLs with resume support, progress monitoring, and timeout handling. It is an AI Agent Skill for Claude Code / OpenClaw, with 445 downloads so far.
How do I install Download File?
Run "/install download-file" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Download File free?
Yes, Download File is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Download File support?
Download File is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Download File?
It is built and maintained by moony320 (@moony320); the current version is v1.0.1.