---
name: file-share
description: Upload files to a user-approved temporary public sharing service when the user explicitly requests a public download link.
---

# file-share

Upload local files to temporary file sharing services to get public download links.

## Important

Prefer the channel's native attachment delivery when available. A failed send is not permission to upload the file to a third party. Before uploading, obtain explicit user approval for the selected public service and file; do not upload sensitive information. A background task returns its artifact path to the main Agent and does not send channel messages itself.

## Available Services

### tmpfiles.org (Recommended, 1 hour expiry, 100MB)

```bash
curl -s -F "file=@<file_path>" https://tmpfiles.org/api/v1/upload
# Returns: {"status":"success","data":{"url":"http://tmpfiles.org/12345/file.pdf"}}
# Note: Add /dl to URL for direct download: http://tmpfiles.org/dl/12345/file.pdf
```

### uguu.se (48 hours expiry, 128MB)

```bash
curl -s -F "files[]=@<file_path>" https://uguu.se/upload.php
# Returns: {"success":true,"files":[{"url":"https://d.uguu.se/xxxxx.pdf",...}]}
```

## Workflow

1. Generate/process the file in the assigned workspace (task outputs stay in that task directory)
2. Confirm explicit user approval of the file and public service, then upload using the selected command
3. Extract the download URL from response
4. Return the link to the main Agent for channel delivery, or use the channel tool only if this role actually provides it

## Notes

- Do not upload sensitive information (public links)
- Verify the file exists before uploading
- For tmpfiles.org, add `/dl` to URL for direct download

## Unavailable Services (Do NOT use)

The following services are blocked or unreliable:
- transfer.sh - timeout
- x0.at - timeout
- litterbox.catbox.moe - timeout
- catbox.moe - timeout
- 0x0.st - blocks automated uploads
- file.io - unreliable
