Deploy from the terminal or CI
Updated 2 July 2026
The command line is the fastest way to put a build online: npx @nippyhost/cli deploy ./dist --site demo publishes a folder and prints https://demo.nippy.site. The CLI accepts a folder, a single file, or a zip (unpacked locally before upload), and the same command run again updates the site in place — changed files are replaced, removed files are deleted, and the address never changes. Log in once with nippy login, which opens the dashboard token page and stores the pasted token in your home config with owner-only permissions.
In CI, skip the login entirely: set a NIPPY_TOKEN environment variable from your secret store and add --json for machine-readable output. Tokens are scoped — a deploy token can publish and update sites but can never delete one or touch billing — and each one can be revoked from the dashboard the moment it is no longer needed. Nippy enforces plan limits server-side and the CLI reports them plainly: the free plan is one live site and 25 MB per upload.
Step by step
- 1
Log in once
Run npx @nippyhost/cli login. It opens the token page (Settings → API & MCP), you create a token with the “Deploy” preset and paste it, and the CLI verifies it before storing it in ~/.config/nippy/ with chmod 600.
- 2
Deploy a folder, file, or zip
Run nippy deploy ./dist --site demo (with npx @nippyhost/cli, or install the package globally for the short nippy command). The files upload directly to storage and the live URL is printed when the site is serving.
- 3
Redeploy to update in place
Run the same command after changing files. The CLI diffs against what is live: new and changed files are uploaded, files you removed locally are deleted, and the URL stays exactly the same.
- 4
Automate it in CI
Add NIPPY_TOKEN as a CI secret and run npx @nippyhost/cli deploy ./dist --site docs --json. The environment variable always wins over a stored login, and the JSON output carries the URL and status for later steps.
Common questions
What happens if my folder has no index.html?
The site still publishes: a folder of photos is served as a browsable gallery with a lightbox, and mixed files get a tidy download page — the same behaviour as uploading through the browser.
What are the size and site limits?
Whatever your plan allows — the free plan is one live site and 25 MB per upload. Deploying past the live-site limit still saves the site but marks it inactive, and the CLI says so rather than failing silently.
What if the site name is taken?
Names are subdomains of nippy.site (lowercase letters, digits, hyphens). If the one you asked for is taken, the next free suffix like demo-2 is used and the CLI prints the address it actually got.
Can two deploys run at once?
One update per site is in flight at a time: a second deploy against the same site while one is mid-upload is rejected with a clear message — wait for the first to finish (or its 15-minute window to lapse) and retry.
How do I revoke a CI token?
From Settings → API & MCP in the dashboard. Revocation takes effect within one request, and the token list shows when each token was last used.
Ready to do it?
Host an HTML siteMore guides
- Publish from Claude with the MCP server
- Get your first site online
- Share photos as an online gallery
- Connect a custom domain
- My custom domain is taking a while to go live
- Password-protect a site
- Understand site analytics
- Edit your site in the browser
- Share a Claude Artifact at your own link
- Publish a page made with ChatGPT
- Open a Keynote file without a Mac
- Open a Pages file on Windows
- View Word and PowerPoint files in the browser
- How the free trial works
Still stuck?
Our team is happy to help with anything Nippy.