smart-image-loader
by @tingwei1123
Smart image loader that handles both URLs and local files, automatically downloads URLs to temporary locations, and displays images using the read tool. Use when a user wants to view or display an image, whether it's a web URL or a file in the workspace.
clawhub install smart-image-loaderπ About This Skill
name: smart-image-loader description: Smart image loader that handles both URLs and local files, automatically downloads URLs to temporary locations, and displays images using the read tool. Use when a user wants to view or display an image, whether it's a web URL or a file in the workspace.
Smart Image Loader
Quick Start
When a user asks to display an image:
1. Check if input is a URL or local path
- URLs start with http:// or https://
- Local paths are file paths in the workspace
2. For URLs:
- Download the image to a temporary location using the Python script
- Use read tool to display the image
- Clean up the temporary file afterward
3. For local files:
- Verify the file exists (relative to workspace or absolute path)
- Use read tool directly to display the image
Usage Examples
User says: "Show me this image: https://example.com/photo.jpg"
1. Run: python3 scripts/smart_image_loader.py https://example.com/photo.jpg
2. Script downloads to temp: /tmp/dir/photo.jpg
3. Use read tool on: /tmp/dir/photo.jpg
4. Clean up: Delete the temp file
User says: "Display ./images/logo.png"
1. Run: python3 scripts/smart_image_loader.py ./images/logo.png
2. Script verifies file exists
3. Use read tool on: /home/node/clawd/images/logo.png (absolute path)
Script Usage
python3 scripts/smart_image_loader.py
Arguments
| Argument | Description |
|----------|-------------|
| image_path_or_url | Either a local file path (relative or absolute) or a URL |
Output Format
The script returns a JSON-like output with:
Status: SUCCESS or FAILEDType: url or localFile Path: Local path for the read toolMessage: Status descriptionCleanup Needed: true if temp file should be deletedExamples
# URL example
python3 scripts/smart_image_loader.py https://example.com/image.jpg
Output: Downloads to /tmp/xyz/image.jpg, use read tool on that path
Local file example (relative)
python3 scripts/smart_image_loader.py ./photos/vacation.jpg
Output: File found at /home/node/clawd/photos/vacation.jpg
Local file example (absolute)
python3 scripts/smart_image_loader.py /home/node/clawd/downloads/graphic.png
Output: File found at /home/node/clawd/downloads/graphic.png
Workflow Decision Tree
User asks to display an image
|
v
Is it a URL? (http:// or https://)
|
+----+---------------------------+
| |
YES NO
| |
v v
Download to temp Does file exist?
| |
v +-----+-----+
Use read tool | |
| YES NO
v |
Cleanup temp file v
Use read tool
|
v
Done (no cleanup)
Cleanup Guidelines
exec with rm for cleanupImage Formats Supported
Error Handling
| Scenario | Action | |----------|--------| | URL download fails | Report error to user | | Local file not found | Report error to user | | Invalid input | Show usage instructions |
π‘ Examples
# URL example
python3 scripts/smart_image_loader.py https://example.com/image.jpg
Output: Downloads to /tmp/xyz/image.jpg, use read tool on that path
Local file example (relative)
python3 scripts/smart_image_loader.py ./photos/vacation.jpg
Output: File found at /home/node/clawd/photos/vacation.jpg
Local file example (absolute)
python3 scripts/smart_image_loader.py /home/node/clawd/downloads/graphic.png
Output: File found at /home/node/clawd/downloads/graphic.png