Agent-first artifact host
One binary that hosts self-contained HTML & JSX — versioned, sandboxed, and updatable with just data. Built for agents, run by you.
What it is
A real, shareable, sandboxed URL for whatever your agent builds — from any terminal agent, not just one vendor's.
Pipe a self-contained file; get /a/owner/name back. JSX is transpiled in-browser with a same-origin React runtime — no build step, no CDN.
Re-publish to append a version; latest always tracks newest, old versions stay immutably pinned, and rollback reverts instantly.
Every artifact is served under a strict CSP — no external scripts, no network. A publish-time linter blocks anything that reaches off-page.
JSON in, JSON out, semantic exit codes, no UI tax. The interface is the CLI — an agent drives it blind.
The template + data model
The artifact re-renders on every push, so an agent can keep a page live as its source data changes — without re-uploading the page.
Use {{placeholders}} or read window.HART_DATA from your script.
# a greeting template echo '<h1>Hello, {{name}}!</h1>' > g.html hart publish g.html --owner acme --artifact hello
Same URL, new content. No re-uploading the page.
hart data acme/hello '{"name":"Ada"}' # → /a/acme/hello now says "Hello, Ada!" hart data acme/hello '{"name":"Bob"}' # → "Hello, Bob!" — one call
Made for things that change
window.HART_DATA./a/intrane/live-chart →
🟢 A status dashboardA service-status board an agent refreshes with one hart data call as health changes./a/intrane/status-demo →
⚛️ A JSX appAuthor React/JSX; hart transpiles & hosts it. State, hooks, components — all client-side, all sandboxed./a/intrane/jsx-demo →
Run your own
Free & open by default; set a token to gate it. Rate-limited so you can leave it open.
Also built in: private & team visibility (read-gated), custom domains, and /explore for public artifacts — see llms.txt.
# build & run the host (SQLite store, your box) ./build.sh && ./hart serve 8799 # publish from anywhere export HART_URL=https://hart.yourdomain hart publish report.html --owner you --artifact q3 # knobs: HART_TOKEN (gate publishing) · # HART_MAX_SUBMITS_PER_MIN (10) · HART_MAX_OWNER_MB (30)
Free here · Pro when you self-host
hart.intrane.fr is free and open — no token needed to publish. Self-hosting? The binary is open source; a hart Pro license unlocks higher limits, an audit log, and teams — activated with hart license <key>.