By · Founder, Stacktree · Last updated
use case

Host AI-generated reports on a private URL.

When your agent writes a perf report, a research summary, or a status doc, Stacktree is the URL it puts the file behind — private by default, replaceable in place, and openable by your team without anyone needing a Stacktree account.

Get started free

Paste a report's HTML and get a private link. No account, nothing to install.

Where should AI-generated reports live?

On a private static-HTML host with replace-in-place semantics. Stacktree exists for exactly this case: the agent calls publish_html, gets back an unguessable URL you can gate by password or email domain, and calls update_site when the report regenerates. Inbox attachments go stale, GitHub commits are heavy, and Notion mangles HTML formatting — Stacktree avoids all three failure modes.

The kinds of report that fit

  • Performance reports. Daily/weekly perf rollups generated by an agent that reads metrics + writes HTML.
  • Research summaries. Deep-research output condensed to a one-page HTML brief.
  • Status docs. Project standups, sprint summaries, on-call handoffs.
  • Code-review writeups. Per-PR analysis the agent produces alongside or instead of comments.
  • Audit reports. Compliance checks, security scans, infra diffs.

The agent loop

# Day 1
agent: publish_html(file: "perf-2026-05-14.html")
       → https://stacktr.ee/p/RwJjpE3kA…
       set_email_gate(slug, domain: "yourco.com")
       set_expiry(slug, "30d")

# Days 2..30 — same URL, fresh content each morning
agent: update_site(slug, file: "perf-2026-05-15.html")
agent: update_site(slug, file: "perf-2026-05-16.html")
...

The viewer's bookmark always shows yesterday's run. No version inboxes, no "see latest" links to chase.

Privacy posture

  • Unguessable URL. The link is the credential. No one finds reports by enumerating URLs.
  • Email-domain gate. Only verified @yourco.com viewers open the report.
  • End-to-end encryption (optional). AES-GCM in the browser; Stacktree only stores ciphertext.
  • X-Robots-Tag noai. Reports are excluded from AI training corpora by default.

What this replaces

  • Email attachments (immediately stale; impossible to track who saw what).
  • "Reports" channels in Slack (formatting dies, scrolling kills context).
  • Pushing reports to GitHub (one commit per run; reviewers don't know which is current).
  • Hosting on an internal Vercel/Render project (heavy granularity for a one-shot artifact).
FAQ

Frequent questions

Where should AI-generated reports live? +
On a private static-HTML host with replace-in-place semantics. Stacktree fits that bill: agents publish via MCP, get a private URL back, and call update_site when the report is regenerated. Inbox attachments go stale; GitHub commits are heavy; Notion pages mangle the formatting.
Why HTML and not PDF? +
HTML renders interactively (charts, sortable tables, expandable sections), the agent doesn't need a headless Chrome to produce it, and the file is human-editable if you ever need to tweak it. PDFs make sense for archived deliverables; HTML makes sense for living reports.
How does the agent know to publish? +
The agent calls publish_html via the Stacktree MCP server. You install it once with npx stacktree-install (covers Claude Code, Cursor, Codex, OpenCode, Amp) and the agent treats it as any other tool.
What if the report contains sensitive numbers? +
Three controls. (1) Unguessable URL — the link itself is the credential. (2) Optional password gate. (3) Optional email-domain gate (only @yourco.com viewers can open). For maximum confidentiality, end-to-end encryption keeps the server from seeing plaintext.
Can the report be replaced when the agent re-runs? +
Yes. update_site swaps the content under the same URL. Stakeholders bookmark once; the latest version is always behind that bookmark.
What about embedding charts? +
Stacktree serves the HTML file as-is, so any embedded chart library (Plotly, Chart.js, D3, Vega) works without extra setup.
Keep reading

Related guides

References

Sources and further reading

Give your agent a place to put its reports.

One MCP install. The next report has a private URL the moment it lands.

Sign up free →