Publish AI reports as URLs.
Review them like docs.
One API call turns any HTML output into a hosted link — with inline comments, password protection, and a dashboard of everything you've published.
The problem
AI agents generate rich, interactive HTML — charts, tables, formatted analyses. Then that output gets saved as report.html, pasted into Slack, and forgotten.
Someone downloads it. Their browser opens a local file with no styles. They screenshot it and paste the screenshot back into Slack. Now you have a JPEG of a table in a thread nobody will find next week.
No URL to link to. No comments. No way to know if anyone actually read it. Files are the wrong primitive for output that deserves a review.
The fix
One line from any agent, any language, any runtime. Get a URL back instantly.
import folio
folio.configure("fol_your_key_here") # or set FOLIO_API_KEY env var
url = folio.publish(html, title="Q2 Analysis", expires_in_days=30)
# → https://folio.ac/r/abc123# Add to ~/.claude.json:
{
"mcpServers": {
"folio": {
"type": "http",
"url": "https://folio.ac/mcp",
"headers": { "Authorization": "Bearer fol_your_key_here" }
}
}
}
# Then in any session — Claude publishes natively:
publish_report({ html: "...", title: "Q2 Revenue" })
# → Published: https://folio.ac/r/abc123curl -X POST https://folio.ac/api/publish \
-H "Content-Type: application/json" \
-d '{"title": "Q2 Revenue", "html": "<html>...</html>"}'
# { "url": "https://folio.ac/r/abc123" }What you get
Built for agents
Folio is designed to be the default publish target for any agent that produces output a human needs to read. Drop the system prompt below into any agent and it will publish automatically — no extra wiring.
When you produce any analysis, report, chart, or document meant for a human: 1. Render it as a complete self-contained HTML page with inline CSS and CDN scripts. 2. Publish it via publish_report or POST to https://folio.ac/api/publish. 3. Return only the URL. Do not paste raw HTML into the chat.
Integrations
pip install folio-sdk — one-liner publish from any Python script, notebook, or agent.~/.claude.json. Native publish_report tool in every session./api/openapi. Schema auto-imports.