One home for every file your agents, apps and team create

An agent saves a report, your app serves it, you find it in the dashboard. Same files, same links.

Three ways in, one set of files

An agent saves a report. You check it in the dashboard. Your app serves it from the same URL. Nobody copies files between tools.

Agents

Let Claude, ChatGPT or Cursor save what they make and hand you a link that lasts, instead of losing it in a chat. They connect over MCP and sign in, so there's no API key to paste. Coding agents like Claude Code and Codex use the CLI.

Apps

Add uploads to your product without building the plumbing. Drop the React uploader into your frontend and call the REST API or the Node.js SDK from your server. Your API key never reaches the browser.

You

See, preview and share every file in one dashboard. Upload from a terminal or a CI job with the same CLI your agents use.

Adding uploads to your app? Skip the plumbing

Storing user files in S3 yourself means presigned URLs, CORS rules, thumbnails, a database of what you stored and a job to clean up what nobody uses. MediaLit already does all of that, so you write one API call instead.

Direct browser uploads

Your server hands out a short-lived signature and the browser uploads directly. Your API key never leaves your server.

No orphaned files

Uploads stay temporary until your app decides to keep them. Anything nobody keeps is deleted after 24 hours, so abandoned uploads never pile up.

Public and private files

Public files get a permanent URL. Private files are served through signed URLs that expire.

Resumable uploads

Large files upload in chunks and pick up where they left off after a dropped connection.

Thumbnails

Thumbnails are generated for images and videos on upload, with optional WebP conversion.

Every file, listed

List your files with their details, paginated and filtered by group or access, without keeping your own database.

Up and running in a minute

Connect an agent, upload from your terminal or call it from your code. Same account, same files.

1. Connect an agent

Add the MCP server in Claude, ChatGPT, Cursor or any MCP client, then sign in. In Claude Code:

claude mcp add --transport http medialit https://api.medialit.cloud/mcp

2. Upload from your terminal

Install the CLI, sign in once, and upload. In a CI job, set MEDIALIT_API_KEY instead of logging in.

npm install -g @medialit/cli
medialit login
medialit upload photo.jpg --public

3. Call it from your code

Use the Node.js SDK on your server, or the REST API from any language.

const medialit = new MediaLit({ apiKey: process.env.MEDIALIT_API_KEY });
const media = await medialit.upload("./photo.jpg", { access: "public" });

Open source, and portable

Everything that runs medialit.cloud is open source. If you outgrow the hosted service or need your files somewhere else, run the same API yourself on AWS S3, Cloudflare R2, MinIO or any S3-compatible storage. Point your code at your server and it keeps working.

Simple pricing

Start free. Upgrade when you need more room. Every plan gets the API, the MCP server, the CLI and the dashboard.

Free

$0

For side projects and trying MediaLit out.

1 GB of storage

50 MB maximum file size

Unlimited uploads and downloads

Agent access over MCP

The CLI and the dashboard

Public and private files

Thumbnails for images and videos

Delivery through a CDN

Pro

Most popular

$10/month

For production apps and anyone with more to store. Same features, 100x the room.

Everything in Free

100 GB of storage

2 GB maximum file size

Questions, answered

Is MediaLit just a wrapper around object storage?

No. Storing bytes is the easy part. MediaLit adds what you would otherwise build around it: browser uploads without exposing keys, resumable uploads, automatic cleanup of unused uploads, public and private access, a list of your files with their details, thumbnails, quotas, an MCP server for agents, a dashboard and a CLI.

Can I upload from the browser without exposing my API key?

Yes. Your server creates a short-lived upload signature and the browser uploads with it. The React uploader handles this for you.

Which AI assistants work with MediaLit?

Any client that supports remote MCP servers, including Claude, ChatGPT, Cursor and VS Code. You sign in with OAuth, so there is no API key to paste.

Can I upload from the terminal, a CI job or a coding agent?

Yes, with the CLI. Run medialit login on your machine, and you and any coding agent running there can use it. In CI, set MEDIALIT_API_KEY instead of logging in.

Can I use my own S3 or R2 bucket?

Yes, by self-hosting MediaLit on AWS S3, Cloudflare R2, MinIO or any S3-compatible storage. The hosted service at medialit.cloud stores files in its own storage.

Is the open-source version limited?

No. Everything that runs medialit.cloud is in the GitHub repository, licensed under AGPL-3.0.

What happens when I run out of storage?

New uploads are refused until you free up space or upgrade to Pro. Files you already have stay online and keep their URLs.

Who can see my files?

Only you, unless you make a file public. Public files get a permanent URL that anyone with the link can open. Private files can only be opened through signed URLs that expire. An agent gets access only after you sign in and connect it.

Give your files one home

Start free on medialit.cloud, or run it on your own infrastructure.