Open source · self-hosted · temporary

Hand files to an agent without the setup.

Agent File Optimizer turns a set of files into a temporary, readable workspace. You get one link. Whoever you share it with, human or agent, can read the originals and clear notes about them. When the window you chose ends, the link stops working and the content is deleted.

There is no hosted service to sign up for. This project is software you run on your own Cloudflare account. The maintainer's own deployment is private and needs an admin token to create links.

What it does

Sharing a folder of mixed files with an agent usually means explaining each file, converting some of them, and remembering which copy is current. Agent File Optimizer does that preparation once. It keeps your originals, adds readable versions where it can, and gives you a link to share.

How it works

  1. Add what to share

    Drop in files, choose a folder, or paste the address of a public GitHub repository.

  2. Choose a window

    Keep the link working for 1, 6, or 12 hours. You can also revoke it sooner.

  3. Share the link

    Copy the link and send it to the agent or person who needs the files. Anyone with the link can read the workspace until it ends.

What the agent receives

Originals

Every file as you added it, unchanged, under its original relative path.

A handoff note

handoff.md says what the workspace is for, when it expires, and what to read first.

A manifest

manifest.json lists each file with its hash, the parser used, a confidence level, and any warnings.

Readable notes

content.md and content.jsonl hold text from supported formats, and tree.txt shows the layout.

Who it is for

People who want a simple handoff to an agent or a collaborator, without remembering conversion commands, copying files around, or trusting a service with more than the window needs.

What it handles today, and where it stops

InputWhat you getStatus
Text, Markdown, code, logsReadable notes plus the originalWorks
JSON, CSV, TSVStructured records in content.jsonlWorks
HTMLHeadings, lists, tables, links, and image descriptions, without scripts or styling; hidden content left outWorks
EPUB booksA book in its own reading order, with title, authors, contents, and chaptersWorks
ZIP archivesMembers extracted within size and count limitsWorks
DOCXHeadings, lists, tables, links, footnotes, comments, text boxesWorks
PPTXSlides in order: titles, bullets, tables, charts, speaker notesWorks
XLSXEach sheet as rows of cells, with dates and hidden sheets markedWorks
PDFThe text a PDF carries, in the order it was written, with its outline as contents; scanned pages are not readWorks
Images and scansKept as originals; no text recognition yetOriginal only
Private repositoriesNot supported yetNot yet
Files over 10 MiB eachRefused for nowNot yet

A file that cannot be converted is still included as its original. The upload response and manifest.json flag it with a warning. The project does not scan files for malware. It runs a small set of heuristic checks and labels them that way.

Privacy and trust

The full, detailed version is in PRIVACY.md.

How to use it

Try it on your computer

Clone the repository, run npm install, then npm run dev. Open the local address Wrangler prints. No Cloudflare account is needed. The database and bucket live on your machine, in .wrangler/, and nothing is sent to Cloudflare.

Run your own copy on Cloudflare

Click Deploy your own copy to Cloudflare above, or run npm run deploy from a clone. Either way, the storage is created for you, and you set an admin token so strangers cannot create workspaces on your account. The README covers the details and the privacy notes.

Connect an agent

Give the agent the share link. It should read handoff.md first. The link also exposes a read-only MCP endpoint for clients that support it. That endpoint is experimental.

Questions people ask

What is Agent File Optimizer?

It is a small open-source Cloudflare Worker. You add files, a folder, or a public GitHub repository, and it gives you one temporary link. Whoever has the link, a person or an AI agent, can read the original files and a plain-language handoff note about them. When the window you chose ends, the link stops working and the stored content is deleted.

Is there a hosted version I can sign up for?

No. The project is software you run on your own Cloudflare account, and the maintainer does not offer a hosted service. You can deploy a copy with one button, or run it on your own computer with no account at all.

How long does a link last?

You choose one, six, or twelve hours when you create it, and you can revoke it sooner. After that the link returns an error and the app deletes the stored files and records. If a deletion fails, a scheduled cleanup retries it.

Which file types does it read?

Text, Markdown, code, logs, JSON, CSV, TSV, HTML, EPUB books, ZIP archives, Word, PowerPoint, Excel, and PDF files are read. Office files keep their headings, lists, tables, slides, notes, and sheets. PDFs are read in the order they were written, so columns can interleave. Scanned PDFs and images are kept as originals with a warning, because there is no text recognition built in. Each file is limited to 10 MiB.

Does it scan files for malware?

No. It runs a few simple heuristic checks and labels them as such. Do not treat them as a malware verdict.

How private is a share link?

A share link is a bearer link: anyone who has it can read the workspace until it ends, so treat it like a password. The app stores only hashes of its tokens, and its own logs never include them. Your hosting provider's backups and account-level logs are outside the app's control, and the project does not promise secure erasure.

Does it work with MCP?

The share link also exposes a read-only MCP endpoint. It is experimental. It has been tested with the official TypeScript and Python SDKs and with Claude Code.

What does it cost?

The software is free under the Apache License 2.0. The workspaces run in your own Cloudflare account, so Cloudflare's pricing for Workers, R2, and D1 applies to your usage.

What has changed

The full list, by version, is in the changelog.