Install the CLI
Single binary. macOS or Linux. About 200 KB.
$ curl -fsSL https://pagenta.ai/install.sh | bashGet a token
Generate a Personal Access Token in Settings → Tokens — never expires, works on any machine, revocable from the dashboard. Best path for agents, CI, and remote shells.
$ export PAGENTA_API_TOKEN="pgnt_…"Add it to your ~/.zshrc / ~/.bashrc so it persists across terminals. Or use the interactive flow instead: pagenta login (browser; refresh-token flow).
Deploy a file
Any standalone .html file — inlined styles, scripts, and assets. Re-run with the same slug to update in place — same URL, no version churn.
$ pagenta deploy ./my-page.html --slug my-page→ live at https://pagenta.live/p/<you>/my-page
Common flags
Attach to a Space
$ pagenta deploy ./report.html --slug q1-review --space acme-corpLock behind a password
$ pagenta deploy ./report.html --slug q1 --password 'spring-2026'Auto-expire after a window
$ pagenta deploy ./preview.html --slug preview --expires-in 7dSchedule a refresh.js (live data)
$ pagenta cron set --page stocks --every 1h ./refresh.jsUse it from Claude / ChatGPT / Cursor / Codex
The CLI doubles as an MCP server. Any agent that supports MCP can deploy your HTML and manage spaces. Add this to your agent’s config:
$ {
"mcpServers": {
"pagenta": {
"command": "pagenta",
"args": ["mcp"],
"env": {
"PAGENTA_API_TOKEN": "pgnt_…"
}
}
}
}Restart your agent, then prompt: “Take this HTML and deploy it as /pitch under the acme-corp Space.”
Group pages in a Space
One URL, one password, every page for an audience in one place. Useful for shipping a set of deliverables to a client, team, classroom, or community.
$ pagenta space create acme-corp --name 'Acme Corp' --password 'shared-pw'$ pagenta space add acme-corp <page-slug>$ pagenta space listWhat your page can do
Deployed pages run under a strict security policy. Most things work; a couple are blocked on purpose — build with these in mind.
Works at runtime
- Call any HTTPS API and upload files straight to storage (S3, Cloudinary, Supabase) with
fetch() - Record from the mic or camera — the visitor gets the browser’s permission prompt
- Post a form to any HTTPS endpoint; open secure WebSockets
- Load images, audio, and video from any HTTPS URL
Blocked by design
- External
<script src>— inline your JS, or call a service’s REST API instead of pasting its widget <iframe>embeds (hosted forms, video, payment boxes)- Geolocation, the Payment Request API, and USB