auto-file-sender
by @timyljob2011-sudo
Automatically send files from workspace to Feishu/Lark when files are generated or updated. Use when: (1) User creates new documents and wants them delivered...
clawhub install auto-file-senderπ About This Skill
name: auto-file-sender description: | Automatically send files from workspace to Feishu/Lark when files are generated or updated. Use when: (1) User creates new documents and wants them delivered automatically, (2) Batch processing generates multiple files that need to be sent, (3) Setting up automated file delivery workflows. Supports Word, PDF, images, and other common file formats up to 30MB.
Auto File Sender
Overview
This skill enables automatic file delivery from the workspace to Feishu/Lark users. When files are generated (documents, PDFs, images, etc.), they can be automatically sent to specified recipients without manual intervention.
Key Capabilities:
Quick Start
Basic Usage
When a file is ready to send:
// Single file
{
"action": "send",
"filePath": "/root/.openclaw/workspace/document.docx",
"filename": "document.docx",
"message": "Here's your file!",
"target": "user_open_id"
}
Auto-Send on File Creation
The skill provides a helper script to watch for new files and auto-send:
# Watch workspace and auto-send new files
python3 scripts/auto_send.py --watch /root/.openclaw/workspace --recipient USER_OPEN_ID
Workflow
Step 1: Identify Files to Send
Check for recently created/modified files:
# List files created in last 10 minutes
find /root/.openclaw/workspace -type f -mmin -10
Step 2: Send Files
Use the message tool with filePath parameter:
{
"action": "send",
"filePath": "",
"filename": "",
"message": "",
"target": ""
}
Parameters:
filePath: Absolute path to the file (required)filename: Display name for the file (optional, defaults to basename)message: Accompanying text message (optional)target: Recipient open_id (defaults to current user if omitted)Step 3: Confirm Delivery
Check the response for successful delivery:
messageId: ID of the sent messagechatId: ID of the chat/channelSupported File Types
| Type | Extensions | Max Size | |------|------------|----------| | Documents | .docx, .doc, .pdf | 30MB | | Images | .jpg, .png, .gif, .webp | 30MB | | Spreadsheets | .xlsx, .xls, .csv | 30MB | | Archives | .zip, .tar.gz | 30MB | | Others | Any | 30MB |
Batch Sending
To send multiple files at once:
// Send files sequentially
for (const file of files) {
await message.send({
action: "send",
filePath: file.path,
filename: file.name
});
}
Configuration
Default Settings
/root/.openclaw/workspaceCustom Recipient
To send to a specific user:
{
"action": "send",
"target": "ou_a65105519c863f8544fb22b40c468063", // User's open_id
"filePath": "/path/to/file"
}
Scripts
scripts/auto_send.py
Python script for watching directories and auto-sending files.
Usage:
python3 scripts/auto_send.py [options]Options:
--watch PATH Directory to watch (default: workspace)
--recipient ID Target recipient open_id
--pattern PATTERN File pattern to match (default: *)
--once Send existing files and exit (don't watch)
Examples:
# Watch and auto-send all new PDFs
python3 scripts/auto_send.py --pattern "*.pdf" --recipient USER_IDOne-time send of all docx files
python3 scripts/auto_send.py --pattern "*.docx" --once
Troubleshooting
File Not Found
ls -la Send Failed
Large Files
For files > 30MB: 1. Compress:zip -r output.zip large_file
2. Split: split -b 25M large_file part_
3. Use cloud storage and send link insteadBest Practices
1. Always verify files exist before sending 2. Use descriptive filenames for better organization 3. Batch similar files to reduce API calls 4. Clean up sent files periodically to save space 5. Log sent files for tracking (optional)
Examples
Example 1: Send Generated Document
User: "Generate a report and send it to me"
// After generating the report
{
"action": "send",
"filePath": "/root/.openclaw/workspace/report_2024.docx",
"filename": "Annual_Report_2024.docx",
"message": "Here's your annual report!"
}
Example 2: Send Multiple Files
User: "Send all the PDFs in my workspace"
# Find and send all PDFs
find /root/.openclaw/workspace -name "*.pdf" -exec \
python3 -c "import sys; print(sys.argv[1])" {} \;
Then send each file using the message tool.
Example 3: Auto-Send on Completion
After a long-running task generates output:
// Task completed, auto-send result
{
"action": "send",
"filePath": "/root/.openclaw/workspace/output.pdf",
"message": "Task completed! Here's your file."
}
π‘ Examples
Example 1: Send Generated Document
User: "Generate a report and send it to me"
// After generating the report
{
"action": "send",
"filePath": "/root/.openclaw/workspace/report_2024.docx",
"filename": "Annual_Report_2024.docx",
"message": "Here's your annual report!"
}
Example 2: Send Multiple Files
User: "Send all the PDFs in my workspace"
# Find and send all PDFs
find /root/.openclaw/workspace -name "*.pdf" -exec \
python3 -c "import sys; print(sys.argv[1])" {} \;
Then send each file using the message tool.
Example 3: Auto-Send on Completion
After a long-running task generates output:
// Task completed, auto-send result
{
"action": "send",
"filePath": "/root/.openclaw/workspace/output.pdf",
"message": "Task completed! Here's your file."
}
βοΈ Configuration
Default Settings
/root/.openclaw/workspaceCustom Recipient
To send to a specific user:
{
"action": "send",
"target": "ou_a65105519c863f8544fb22b40c468063", // User's open_id
"filePath": "/path/to/file"
}
π Tips & Best Practices
1. Always verify files exist before sending 2. Use descriptive filenames for better organization 3. Batch similar files to reduce API calls 4. Clean up sent files periodically to save space 5. Log sent files for tracking (optional)