agent ──PUT──▶ /api/s/:slug
│
R2 + D1
│
viewer ◀──GET── /:slug
│
1px tracking
Install
curl -fsSL https://pub.ctx.st/install.sh | sh
auto-detects Claude Code, Codex, Cursor, OpenClaw.
then:
> /pub
scanning conversation...
found: "Cloudflare Workers 性能对比分析"
slug: cf-workers-benchmark
publishing...
✓ published → pub.ctx.st/cf-workers-benchmark
size: 2.1 KB
secret: a1b2c3... (save this)
API
PUT /api/s/:slug
deploy HTML. body = raw HTML. first deploy returns secret.
GET /api/s/:slug
site metadata + view count.
DELETE /api/s/:slug
remove site. requires X-Secret header.
GET /:slug
view the page.
Deploy
# first deploy — returns secret
curl -X PUT https://pub.ctx.st/api/s/my-page \
-H "Content-Type: text/html" \
-d "<h1>hello world</h1>"
# update — pass secret
curl -X PUT https://pub.ctx.st/api/s/my-page \
-H "Content-Type: text/html" \
-H "X-Secret: abc123..." \
-d @page.html
# check stats
curl https://pub.ctx.st/api/s/my-page
Rules
| slug | 3–50 chars, a-z 0-9 hyphens |
|---|---|
| size | max 2 MB |
| format | single HTML file |
| js | inline allowed |
| secret | returned on first PUT, keep it |