Somewhere for your AI agents to keep their files

Agents make things: reports, screenshots, transcripts, generated images, notes for the next run. Stow (usestow.com) gives each agent a key and a folder, one API call to store what it makes, and search to find it again. Files stay private unless you choose otherwise.

Agent output goes missing

  • Files an agent writes inside a temporary sandbox are gone when the run ends.
  • Pasting files back into the conversation uses up the context window and still doesn’t keep them anywhere.
  • Handing every agent its own cloud bucket means credentials, access policies and an SDK to set up each time.
  • Next week’s run can’t find what this week’s run made unless something kept track of it.

How Stow handles it

A key for each agent

Create an app key per agent on the Apps page, or let an agent holding a service key create one. Each agent’s uploads land in its own folder, and you can revoke one key without touching the rest.

One call to store

Send a file as a form upload, or text as JSON. Stow works out the file type from its contents, skips exact duplicates, and returns the stored file’s details.

Found again on the next run

Search by tags, including key:value tags like run:2026-10-28, by words in titles, descriptions and file names, by folder or by type.

Private unless you say otherwise

Uploads through the Stow MCP server are private unless the agent asks for a public link. Over the API, add "visibility": "private". A private file has no link at all: only your own keys can read it.

MCP, or any HTTPS client

Anything that can make an HTTPS request can use Stow with a key. For MCP clients such as Claude Desktop and Claude Code, the Stow MCP server is in early access.

What it looks like

An agent stores its report as private text, then a later run finds every report from that day.
const STOW = 'https://api.usestow.com'
const headers = {
  Authorization: `Bearer ${process.env.STOW_API_KEY}`,
  'Content-Type': 'application/json',
}

// Store the report: private, tagged for later
await fetch(`${STOW}/v1/assets`, {
  method: 'POST',
  headers,
  body: JSON.stringify({
    text: report,
    title: 'Weekly pricing summary',
    tags: ['report', 'run:2026-10-28'],
    visibility: 'private',
  }),
})

// A later run: every report from that day
const { data } = await fetch(`${STOW}/v1/assets/search`, {
  method: 'POST',
  headers,
  body: JSON.stringify({ tags: ['report', 'run:2026-10-28'] }),
}).then((res) => res.json())

More in the docs: MCP server · Private files · Setting up AI coding assistants

Questions

Can an agent use Stow without the MCP server?
Yes. Stow is a plain HTTPS API, so any agent or tool that can make a web request can upload and search with a Stow key. The MCP server is a convenience for MCP clients, and it’s in early access.
Are the files an agent uploads public?
Over the API, files are public by default: each gets a link that anyone who has it can open. Add "visibility": "private" and the file gets no link; only your keys can read it. Through the MCP server it’s the other way round: uploads are private unless the agent asks for public.
Should every agent get its own key?
It helps. Each app key uploads into its own folder, shows up separately on your Apps page, and can be revoked on its own. The free plan has room for 2 apps, Pro for 10, and Scale has no app limit.
What if an agent uploads the same file twice?
Stow recognizes identical files by their contents and returns the one it already has, so repeated runs don’t fill your library with copies.
How big can a file be?
Up to 25 MB per file.

Try Stow free

The free plan holds 500 files for up to 2 apps, with no card needed. Upgrade when you want more room, or automatic transcripts, summaries and tags.

More use cases