CLI
npx novence deploy ./dist — upload, check, publish, print the live URL. No install.
novence.ai · static sites for agents
npx novence deploy ./dist — or the TypeScript and Python SDKs, MCP, REST, or GraphQL. Live at https://{suffix}.novence.ai.
$ # One command. Prints the live URL. No email until you claim.
npx novence deploy ./dist
# Created project site (abcd1234)
# Uploaded 12 files
# https://abcd1234.novence.ai/
# Claim afterwards:
# novence claim --email you@example.com
# The URL is the last line on stdout, so it pipes:
URL=$(npx novence deploy ./dist)$ curl -s -X POST https://api.novence.ai/v1/bootstrap \
-H 'content-type: application/json' \
-d '{"email":"you@example.com"}'
# → { "apiKey":"nv_live_…", "emailVerificationRequired":true }
# Save apiKey. Deploy on unverified trial — do not wait for OTP.
# AFTER the live URL: ask for the 6-digit code, then:
# curl -s -X POST https://api.novence.ai/v1/auth/verify-email \
# -H 'content-type: application/json' \
# -d '{"email":"you@example.com","code":"123456"}'$ # 1) bootstrap 2) project 3) upload 4) deploy → live URL
# 5) THEN verify email OTP for Free quotas
# Live URL: https://{suffix}.novence.ai/
export KEY=nv_live_…
export API=https://api.novence.ai
curl -s -X POST $API/v1/projects \
-H "authorization: Bearer $KEY" -H 'content-type: application/json' \
-d '{"name":"launch"}'
# uploads → deployments → poll until status=live
# Or just: npx novence deploy ./dist$ # MCP (streamable HTTP)
https://api.novence.ai/mcp
# Tools: create_project → get_upload_url → deploy → get_checks_results
# Spec: https://novence.ai/openapi.yaml
# Agent brief: https://novence.ai/llms-full.txt
# Index: https://novence.ai/llms.txt$ import { Novence, bootstrapAccount, verifyEmail } from "@novence/sdk";
const { apiKey } = await bootstrapAccount("you@example.com");
await verifyEmail("you@example.com", process.env.VERIFY_CODE!);
const client = new Novence({ apiKey }); // defaults to https://api.novence.ai
const { project, url } = await client.projects.create({ name: "launch" });
await client.files.uploadDir(project.id, "./site");
await client.deployments.create(project.id);
// url → https://{suffix}.novence.ai/$ pip install novence
from novence import Novence, bootstrap_account, verify_email
boot = bootstrap_account("you@example.com")
verify_email("you@example.com", "123456")
client = Novence(api_key=boot["apiKey"])
project = client.create_project("launch")
pid = project["project"]["id"]
client.upload_dir(pid, "./dist")
client.deploy(pid)
print(client.wait_for_deployment(pid)["liveUrl"])$ # Recurring (Checkout) — humans / cards
curl -s -X POST https://api.novence.ai/v1/billing/checkout \
-H "authorization: Bearer $KEY" -H 'content-type: application/json' \
-d '{"plan":"pro"}'
# → { "url": "https://checkout.stripe.com/…" }
# Agent subscription (MPP / SPT) — 402 then Payment → monthly sub
curl -i -X POST https://api.novence.ai/v1/billing/mpp \
-H "authorization: Bearer $KEY" -H 'content-type: application/json' \
-d '{"plan":"pro"}'Watch
An agent builds a static site, bootstraps a key, deploys, passes checks, and lands on https://{suffix}.novence.ai. 75 seconds, no cuts to a dashboard.
Automate your workflow · Start today
Get API keynpx novence deploy ./dist — upload, check, publish, print the live URL. No install.
npm install @novence/sdk or pip install novence. Typed clients over the same plane.
Streamable HTTP tools for Claude, Cursor, and any MCP client at /mcp.
For agents
Fastest: npx novence deploy. Or the SDKs. Raw REST below.
Use HTTPS — Canonical API https://api.novence.ai. Auth is Bearer nv_live_…. Lost key? Resend OTP then POST /v1/auth/reissue-key.
POST /v1/bootstrap returns an API key immediately. Do not wait for OTP — unverified trial still publishes.
Create a project, upload static website, deploy. Live URL is https://{suffix}.novence.ai/. Checks may be skipped on trial; still live.
Ask for the 6-digit OTP and POST /v1/auth/verify-email to unlock Free quotas. Required before Checkout or full free quotas.
CNAME www → fallback.novence.ai; apex URL-redirect to www. Checkout: POST /v1/billing/checkout. Agents: POST /v1/billing/mpp.
Agent loop
create_project
Bootstrap an account key, then open a project with a unique suffix.
→ projectId + upload session
Custom domains
Point www at Novence with a CNAME. Send bare-domain visitors to www with a registrar URL redirect. That is the recommended path for SSL and apex visitors.
Domain instructions →| Type | Host | Value |
|---|---|---|
| CNAME | www | fallback.novence.ai |
| URL redirect | @ | https://www.example.com/ |
What ships

Streamable HTTP MCP for projects, uploads, deploys, domains, and quotas. Errors tell the agent what to fix.
#1 MCP
Check workers run Lighthouse, axe, and link checks. Failed deploys stay off live until thresholds pass.
#2 Checks
Static sites are served globally at https://{suffix}.novence.ai/ after checks pass.
#3 Edge
npx novence, npm install @novence/sdk, or pip install novence. Same plane as REST, GraphQL, and MCP.
#4 APIs
Opt-in pageviews, 404s, referrers, and countries from the edge. No cookies, no script in your HTML. Read via dashboard, API or MCP.
#5 Analytics
Projects, storage, bandwidth, deploys, and form submissions are capped per plan. Overages meter on Pro and Scale.
#6 Quotas
HTML, CSS, and JS marketing sites. No server-side apps. Agents ship pages; Novence hosts them.
#7 ScopeFree · Pro · Scale
Free for one live site. Pro for twenty client pitches. Scale when you're running a studio. Paid plans include a large pool before anything extra hits the invoice — see examples and for agencies.
Selected: Pro ($29 / mo)
Get a key, then upgradeAfter verify: tell your agent to open the dashboard and go to Billing > Checkout.
Or use the API:POST https://api.novence.ai/v1/billing/checkout with Bearer key and { "plan": "pro" }. Opens Stripe Checkout.
Same monthly subscription via Machine Payments Protocol: POST https://api.novence.ai/v1/billing/mpp. Returns HTTP 402, then settle with a Payment credential (e.g. link-cli). First month charged via SPT; renews until cancelled.
