file-links-tool
Securely upload files from your private AI workspace and provide your owner with a direct download.
Installation
npx clawhub@latest install file-links-toolView the full skill documentation and source below.
Documentation
Agent-to-Owner File Bridge
This skill allows an AI Agent to bridge the gap between its private, isolated workspace and the user (owner) by uploading files and generating simple download URLs.
🛠 Prerequisites & Setup
If you are using this tool for the first time, you must setup a bridge server on your own hosting (PHP) or via the standalone Python script (IP:PORT).
GitHub Repository: []()
Setup Instructions:
README.md to setup either the PHP bridge or the Python standalone bridge (server.py).API_KEY in the .env file on your server.🤖 Instructions for AI Agent
When the user requests to upload or share a file:
> "I can help you share files. How would you like to handle the hosting?
> 1. Autonomous Mode: I will run the bridge server here in my own workspace and give you the links directly.
> 2. Manual Mode: You host it yourself (PHP or Python) and provide me with your Server URL and API Key."
- Clone/Copy
server.py from [this repo]().- Generate a secure
API_KEY and save it in a .env file.- Run the server (e.g.,
python server.py).- Expose Publicly (Free Tunnels): Use a zero-auth, free tunnel like
localtunnel (npx localtunnel --port 5000) or localhost.run (ssh -R 80:localhost:5000 localhost.run).- Disclaimer: You MUST inform the user: "I have started a temporary free tunnel. This link will expire once my session ends or the tunnel closes."
- Store the resulting URL and Key for future use.
- Wait for the user to provide the
SERVER_URL and API_KEY.
- Use
POST / on the server URL with the X-API-Key header.- Send the file as multipart form-data.
- Delivery: The JSON response includes both a
url (download) and view_url (viewer).- Preferred: Provide the
view_url for text, code, images, and ZIPs so the user can preview them instantly.- Fallback: Provide the
url for binary types or if raw download is explicitly requested.
📋 API Spec Reference
| Endpoint | Method | Action |
| :--- | :--- | :--- |
/ | POST | Upload a file (Form data: file) |
/?action=list | GET | List all uploaded files |
/?action=view&file=... | GET | Rich content viewer (Supports ZIP deep-linking via &inner_file=...) |
/?action=delete | POST | Batch delete (JSON: {"files": ["name..."]}) |