Self-hosted · Open source · Agent-native

Modern file storage
built for AI agents

Give your agent an API key. It uploads, manages, and publishes files. You stay in control.

See how it works GitHub

Hosted version coming soon.

Trusted by

How it works

From login to live in four steps

01

Login to dashboard

Sign in with Google to access your personal dashboard.

02

Get an API Key

Generate an API key from your dashboard in one click.

03

Hand it to your agent

Pass the API key to your agent and point it to your Stashy instance.

04

Upload & Publish

Your agent uploads files and publishes them to a public URL.

Features

Everything your agent needs

Multi-protocol API

REST, gRPC, gRPC-Web, and Connect — your agent speaks whatever protocol it prefers.

Any storage backend

In-memory for dev, local disk, Google Cloud Storage, Amazon S3, MinIO, or Cloudflare R2.

Private by default

Files are private until you publish them. Publish makes a file publicly accessible at a clean URL.

CDN-ready publish

One click to make a file public. Serve it from your own domain or CDN.

Self-hosted & open source

Deploy it yourself — Docker, bare metal, or any cloud. Your data, your rules.

Domain-restricted access

Restrict access to your company's email domain. Keep your storage private to your team.

Agent quickstart

Two commands, files in the cloud

Your agent uploads a file, then publishes it — the result is a public URL anyone can access.

Upload a file
# 1. Upload
curl -H "Authorization: Bearer <api-key>" \
  -X POST https://stashy.example.com/v1/files \
  -H "Content-Type: image/png" \
  --data-binary @screenshot.png

# → {"id":"f_abc123","url":"https://stashy.example.com/f_abc123"}
Publish it
# 2. Publish (makes it public)
curl -H "Authorization: Bearer <api-key>" \
  -X POST https://stashy.example.com/v1/files/f_abc123/publish
Public URL — no auth needed
# 3. Anyone can access it
curl https://stashy.example.com/f_abc123

Deploy in minutes

Docker Compose or bare Go binary. SQLite by default, PostgreSQL when you're ready.

# Quick start
export SESSION_SECRET="your-secret"
export GOOGLE_CLIENT_ID="..."
export GOOGLE_CLIENT_SECRET="..."

stashy serve

Full setup guide in the docs.

Hosted version

Interested?

We're working on a hosted version — no infra, no setup. Leave your email and we'll reach out when it's ready.

No spam. Just one email when it launches.

Or reach us at contact@stashy.sh