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
Add what to share
Drop in files, choose a folder, or paste the address of a public GitHub repository.
Choose a window
Keep the link working for 1, 6, or 12 hours. You can also revoke it sooner.
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
| Input | What you get | Status |
|---|---|---|
| Text, Markdown, code, logs | Readable notes plus the original | Works |
| JSON, CSV, TSV | Structured records in content.jsonl | Works |
| HTML | Headings, lists, tables, links, and image descriptions, without scripts or styling; hidden content left out | Works |
| EPUB books | A book in its own reading order, with title, authors, contents, and chapters | Works |
| ZIP archives | Members extracted within size and count limits | Works |
| DOCX | Headings, lists, tables, links, footnotes, comments, text boxes | Works |
| PPTX | Slides in order: titles, bullets, tables, charts, speaker notes | Works |
| XLSX | Each sheet as rows of cells, with dates and hidden sheets marked | Works |
| The text a PDF carries, in the order it was written, with its outline as contents; scanned pages are not read | Works | |
| Images and scans | Kept as originals; no text recognition yet | Original only |
| Private repositories | Not supported yet | Not yet |
| Files over 10 MiB each | Refused for now | Not 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
- Short windows. A link lasts one, six, or twelve hours, or until you revoke it.
- Bearer links. Anyone who has the link can read the workspace. Treat it like a password for those hours.
- Deletion. When a workspace ends or is revoked, the app deletes its stored files and records. If a deletion fails, a scheduled cleanup retries.
- What is not covered. Your hosting provider's own backups, logs, and retention policies sit outside the app. The project does not promise secure erasure.
- No external processing by default. Parsing runs inside your Worker. An external parser exists only as an explicit, opt-in adapter.
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
- Web pages are now read as documents, not stripped of tags, and EPUB books are read in their own order. Long files come over MCP in parts, so an agent does not lose the end.
- Word, PowerPoint, Excel, and PDF files are now read from their structure, and checked against independent extractors.
- Setup is a button or one command. The database tables create themselves on first use.
- Opening a share link in a browser shows a readable page. Agents still receive the Markdown.
- A workspace with no files yet explains that, instead of showing an error.
- A blank admin token now refuses to create workspaces instead of leaving them open.
- The page that creates links is protected against being framed, and input borders are easier to see.
The full list, by version, is in the changelog.