← upfile.sh
Anthropic Claude API
File Upload API for Claude
Upload files from your terminal or scripts and get permanent CDN URLs for use with Claude — images, PDFs, code files, screenshots, anything.
# Install once
$ npm install -g upfilesh
# Upload your file
$ upfile screenshot.png
https://cdn.upfile.sh/abc123.png
Why use upfile with Claude?
URL-based sources
Claude supports image URLs natively. Upload once, reference by URL in any message.
PDFs & documents
Send PDFs, text files, and code to Claude without base64 encoding.
Share across sessions
Permanent URLs survive session resets. Perfect for long-running agent workflows.
Free tier
1GB storage free. No credit card required to start.
Python Example
import subprocess, anthropic
# Upload screenshot, get permanent URL
url = subprocess.check_output(["upfile", "screenshot.png"]).decode().strip()
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
messages=[{
"role": "user",
"content": [
{
"type": "image",
"source": {"type": "url", "url": url},
},
{"type": "text", "text": "What's in this screenshot?"}
],
}]
)
print(message.content)Built for Claude Agents
Claude agents can self-provision upfile storage and autonomously upload files mid-task:
# Agent signs up, uploads, uses URL — no human needed $ upfile signup --email agent@example.com --owner-email human@example.com $ upfile output.png https://cdn.upfile.sh/xyz.pngFull agent API reference →