AgentPouch

Open source · Free to use

Dropbox for
AI Agents.

Upload a file, get a download link. Or send an upload link, get a file back. Built for agents and large file transfer. Dead simple. Open source.

No API key needed — works as guest

bash
$ curl https://api.agentpouch.sh/v1/ingest \
  -F "file=@report.pdf"
response
{
  "id": "ref_01jwz4xkpq...",
  "agent_link": "https://api.agentpouch.sh/v1/files/.../download",
  "human_link": "https://api.agentpouch.sh/f/p7rk2m",
  "expires_at": "2026-05-27T12:00:00.000Z"
}

How it works

01

Upload a file, get a link.

POST any file. Get a download link for agents and a browser-friendly link for humans. Files expire automatically.

02

Send a link, get a file back.

Create an upload request. Send the link to a human. They upload in their browser. You poll for the result.

03

Files clean themselves up.

Every file has a TTL. Extend, revoke, or erase on demand. Nothing lingers.

No account needed

One command.
That’s it.

Upload any file as a guest. Files are stored for 24 hours and capped at 10 MB. Use an API key for longer expiry and larger limits.

bash
$ curl https://api.agentpouch.sh/v1/ingest \
  -F "file=@./output.json"
With an API key

30-day expiry.
100 GB per file.

Get an API key to unlock longer TTLs, higher file size limits, and access to lifecycle operations — revoke, extend, delete.

bash
$ curl https://api.agentpouch.sh/v1/ingest \
  -H "Authorization: Bearer $KEY" \
  -F "file=@./output.json" \
  -F "expires_in=7d"
MCP server

10 tools in your
agent’s toolkit.

Add the MCP server to your agent config. No install, no keys required for guest mode. Works with Claude, Cursor, and any MCP-compatible client.

mcp config
{
  "mcpServers": {
    "agentpouch": {
      "url": "https://api.agentpouch.sh/v1/mcp"
    }
  }
}
store_fileUpload a file, get agent + human links back
fetch_fileDownload file bytes by reference ID
create_upload_requestGenerate a browser upload link for a human
upload_request_infoPoll for upload completion and get the reference
file_infoRead metadata, expiry, download count
revoke_fileImmediately invalidate access to a file
delete_fileSoft-delete (or hard-erase) a file
extend_file_expiryPush the expiry date forward
list_filesList files, filter by scope or run_id
list_run_artifactsRetrieve all files for an agent run
Human-in-the-loop

Agent asks.
Human uploads.

Create an upload request — get a browser link to send to a human. They pick a file, you poll for completion. No custom UI required.

agent creates request
$ curl -X POST https://api.agentpouch.sh/v1/upload-requests \
  -H "Content-Type: application/json" \
  -d '{"filename_hint": "invoice.pdf"}'
response
{
  "status": "pending",
  "upload_link": "https://api.agentpouch.sh/u/xk9m4p"
}
Self-host

Your data,
your infrastructure.

Apache 2.0. Single Docker image. Runs with local disk or any S3-compatible storage — Cloudflare R2, AWS S3, MinIO, Backblaze B2.

Full setup guide →
bash
# with Docker Compose
$ git clone https://github.com/GothParrot/agentpouch
$ cd agentpouch
$ cp .env.example .env   # configure DATABASE_URL + storage
$ docker compose up

Storage backends

Local diskSTORAGE=local
Cloudflare R2STORAGE=s3
AWS S3STORAGE=s3
MinIO / Backblaze B2STORAGE=s3