# publish-website: the agent skill that deploys a website and returns a live URL

`publish-website` is an open SKILL.md for Claude Code, Codex, Cursor, Gemini CLI and any agent that reads skills. Ask your agent to "publish this" and it uploads the folder to chorus.host and hands back `https://<name>.chorus.host`. No signup; with a free account it also deploys APIs.

## Install

```bash
npx skills add chorus-host/skill -g
```

No Node? Save the file yourself:

```bash
mkdir -p ~/.claude/skills/publish-website
curl -fsSL https://chorus.host/skill.md -o ~/.claude/skills/publish-website/SKILL.md
```

Then ask for what you want in your own words: "put this dashboard online", "share this report as a link", "deploy this Hono API".

## What your agent hands back

The skill tells the agent exactly how to report the result, so you get the link on its own line and a claim link that works:

```text
Your site is live:

https://quiet-river-42.chorus.host

It will be deleted in 24 hours. To keep it, open this link and sign in with your email:
https://chorus.host/claim/quiet-river-42#ctk_...
```

Under the hood the agent runs one of these, depending on what it has: `curl -sS https://chorus.host/v1/publish -F file=@index.html` (one request), `publish.py` (folders, no install), or the three-call HTTP API for big sites. Everything it needs is in the [SKILL.md](/skill.md) itself, about 4,000 tokens.

## Install it in your agent

Checked 1 October 2026; the `npx skills` and Codex marketplace commands were run in a clean home directory that day.

| Agent | Command | Where the skill lands |
|---|---|---|
| Claude Code | `npx skills add chorus-host/skill -g -a claude-code`, or `/plugin marketplace add chorus-host/skill` inside Claude Code | `~/.claude/skills/publish-website/` |
| Codex | `codex plugin marketplace add chorus-host/skill`, or `npx skills add chorus-host/skill -g` | Codex plugin marketplace, or `~/.agents/skills/publish-website/` |
| Cursor, OpenCode, Hermes and other agents | `npx skills add chorus-host/skill -g` | `~/.agents/skills/publish-website/` |
| Gemini CLI | `gemini extensions install https://github.com/chorus-host/skill` | Gemini extensions |
| Anything else | Save https://chorus.host/skill.md as `SKILL.md` in the agent's skills folder | |

To update later: `npx skills update`. The skill's source is [github.com/chorus-host/skill](https://github.com/chorus-host/skill) (MIT).

## Skill or MCP server?

Use the skill when the agent can run shell commands (Claude Code, Codex, Cursor's agent, Gemini CLI). It can publish folders of any size, and big files go straight to storage.

Use the [MCP server](/mcp) when it can't: claude.ai, Claude Desktop, ChatGPT's developer mode and other chat clients. The `publish_site` tool takes up to 4 MB per call without an API key.

## Deploy skills compared

Checked 1 October 2026 against each skill's SKILL.md and docs. "Not documented" means we couldn't find it stated.

| Skill | Account to publish | What you get back | Unclaimed deploys | Needs | Server code |
|---|---|---|---|---|---|
| chorus.host `publish-website` | No | Site URL and claim URL | Deleted after 24 hours | curl (Python or Node optional) | APIs as Workers, with a free account |
| [Vercel `deploy-to-vercel`](https://github.com/vercel-labs/agent-skills) | Normally a Vercel login; a no-auth fallback is documented as a last resort | Preview URL and claim URL (fallback) | Not documented | Vercel CLI | Vercel Functions |
| [Netlify `netlify-deploy`](https://github.com/openai/skills) | Yes, an active Netlify login | Site URL | n/a | Netlify CLI | Netlify Functions |
| [ShipStatic `ship`](https://www.shipstatic.com/agents) | No | Site URL and claim link | Deleted after 3 days | Node.js 20.19 or later | No |
| [here.now](https://here.now/docs) | No | Site URL and claim token | Deleted after 24 hours | curl | No |

What each does better: Vercel's and Netlify's skills build framework projects and deploy to a platform you may already use. ShipStatic keeps anonymous deploys for 3 days. here.now has custom domains on its free plan and far more installs (16,075 on skills.sh). chorus.host's skill needs nothing but curl and also covers backend APIs.

## The SKILL.md

<!-- html:skill-md -->

Raw file: [chorus.host/skill.md](/skill.md). The same file is served at `/.well-known/agent-skills/publish-website/SKILL.md` for `npx skills add https://chorus.host`.

## Questions

### Is there a skill that deploys a static site without an account?

Yes. `npx skills add chorus-host/skill -g` installs `publish-website`, which publishes a file or folder to chorus.host with no account and returns the live URL and a claim link. Sites last 24 hours unless claimed.

### Does it work in Codex, Cursor and Gemini CLI?

Yes. It's a standard SKILL.md: `npx skills add chorus-host/skill -g` installs it for any agent that reads `~/.agents/skills`, Codex can add it as a plugin marketplace, and Gemini CLI installs it as an extension.

### How do I update it?

Run `npx skills update`, or download https://chorus.host/skill.md again over the old file.

### Should I use the skill or the MCP server?

The skill if your agent runs shell commands; it handles folders of any size. The MCP server at https://chorus.host/mcp if your agent can't, like claude.ai or ChatGPT.

### What are the limits?

Without an account: sites last 24 hours, 5 publishes an hour per IP address, 250 MB per file. With a free account: no expiry, 60 publishes an hour, 5 GB per file. Live numbers: https://chorus.host/v1/limits.

### Can it deploy an API?

Yes, with a free account (an emailed 6-digit code, no password). The skill covers deploying JavaScript, TypeScript and Hono APIs to `<name>.worker.chorus.host` on Cloudflare Workers. See [Workers](/workers).
