Cover image for npx hosting — deploy any folder to a live URL in one command, no account

Andrius Putna

I built a zero-config CLI that deploys the current folder to a live site. Anonymous by default, with a single-use claim link if you want to keep it.

Every static hosting tool I've used asks for the same ritual before you can see your site online: create an account, verify an email, install a CLI, log in, answer a config wizard. That's a lot of ceremony for "put these files on a URL".

So I built hosting — a CLI where the entire flow is:

npx hosting

Enter fullscreen mode Exit fullscreen mode

That's it. No account, no config, no login. Your folder is live:

Uploading 3 files (12.4 KB)...

  Live site:   https://1freehosting.com/s/happy-panda-482
  Claim link:  https://1freehosting.com/claim/xxxxxxxx-...

Enter fullscreen mode Exit fullscreen mode

The claim-link model

The interesting part isn't the upload — it's the ownership model.

Deploys are anonymous by default. You get two links back:

  • Live site — the public URL, share it with anyone.
  • Claim link — private and single-use. Open it, sign in, and the site attaches to your account so you can manage it from a dashboard.

Unclaimed sites expire 24 hours after the last deploy. That keeps throwaway experiments truly throwaway — no zombie sites, no cleanup — while anything you actually care about is one click from permanent.

This inverts the usual order: instead of authenticate, then deploy, you deploy, then decide if it was worth authenticating for.

Updating the same site

The first deploy writes a .hosting.json file with the site's deploy token. Every later hosting run from that folder updates the same site — before and after you claim it.

vim index.html
hosting        # same URL, new content

Enter fullscreen mode Exit fullscreen mode

Some details I sweated:

  • .hosting.json is added to your .gitignore automatically (it contains the token).
  • Hidden files (.env, .git, …) are skipped client-side, so secrets never leave your machine. node_modules and OS junk are skipped too.
  • Want a fresh URL? hosting --new.
  • Deploying from CI or another machine? Grab the token from the dashboard and run hosting link <subdomain> --token <token> (or set HOSTING_DEPLOY_TOKEN).

Commands

Command What it does
hosting Deploy the current folder (updates the linked site, or creates one)
hosting deploy [dir] Deploy a specific folder
hosting link <subdomain> Link the folder to an existing site
hosting claim Open the last deploy's claim link in your browser
hosting open Open the last deploy's live site

Fit for AI coding agents

It's also a nice fit for AI coding agents: an agent that just generated a landing page can run one non-interactive command and hand you a live URL — no browser login dance mid-session.

Try it

cd your-static-site
npx hosting

Enter fullscreen mode Exit fullscreen mode

The CLI is MIT-licensed and open source — it's the companion to 1freehosting.com, where claimed sites live.

I'd love feedback on the claim-link flow — does "anonymous first, claim later" feel right to you, or would you rather log in up front? 👇

Also thinking to create Github action for temporary or permanent artifacts preview deployments.