Deploy sites, upload files, sync changes β all from your terminal. No signup, no config. Just pip install and go.
The CLI automatically saves your access tokens to ~/.tempserv/config.json after every upload. No need to manually copy or store tokens β sync, replace, and delete commands find the right token for you.
Made local changes? tempserv sync ./folder pushes only what changed. Same URL, same expiry, zero hassle.
--compress flag minifies HTML, CSS, and JS automatically. Smaller files = faster loads.
tempserv diff ./folder slug shows exactly what's different between your local files and the live deployment.
Scriptable, JSON output, no browser needed. Perfect for GitHub Actions, cron jobs, and automated pipelines.
Prefer a visual interface? Visit tempserv.badman993944.workers.dev for:
π‘ CLI is recommended for developers. Web UI is great for quick uploads and non-technical users.
tempserv site ./folderDeploy static sitetempserv site ./f -e 24hrCustom expirytempserv site ./f --compressMinify before uploadtempserv sync ./folderSync changes to livetempserv sync ./f -cSync + compresstempserv sync ./f -s slug -t tokManual overridetempserv upload file.zipUpload single filetempserv upload ./site --mode siteUpload foldertempserv upload f.pdf -p passPassword protecttempserv upload f.mp4 -e 6hrCustom expirytempserv download abc123Download filetempserv info abc123View file infotempserv replace abc new.txtReplace a filetempserv open abc123Open in browsertempserv open ./folderOpen folder's deploytempserv statusWorker health checktempserv share abc123Get shareable linktempserv share abc --copyCopy link clipboardtempserv diff ./f abc123Compare local vs servertempserv listShow recent uploadstempserv delete abc123Delete a resourcetempserv clean --expired-onlyRemove expired recordstempserv clean --allClear all recordstempserv login [url]Set instance URLtempserv --json listJSON outputtempserv --json statusJSON health checktempserv --url http://... upload fOverride base URLtempserv pasteCreate paste URLtempserv paste -e 6hrCustom expirytempserv paste-write SLUG "text"Append texttempserv paste-write SLUG "t" -a clean&addClear then writetempserv paste-write SLUG -a cleanClear all texttempserv autowatch SLUGWatch for 5mintempserv autowatch SLUG -d 120 -i 32min, 3s intervalZero dependencies. Just curl, wget, or any HTTP client. Works on any machine β servers, phones (Termux), containers, GitHub Actions, cron jobs.
Upload, replace, delete, and query files from bash scripts, Python, Node.js, or any language. Full automation without installing anything.
Works with Postman, Insomnia, httpie, fetch API, axios, requests β any tool that speaks HTTP. No SDK or library required.
Full control over every parameter. Bypass the CLI entirely β send multipart forms, set custom headers, handle responses your way.
Use it from Python, Node.js, Go, Rust, PHP, Java β literally any language with HTTP support. No bindings, no wrappers.
Upload a file or website. Returns URL, access token, and expiry info.
| Field | Type | Description |
|---|---|---|
mode | string | site or file |
expiry | string | Preset: 15min 30min 1hr 2hr 6hr 12hr 24hr β or custom 1β1440 minutes |
paths | JSON array | File paths: ["index.html","css/style.css"] |
files | File(s) | Multipart file data |
password | string | Optional password protection (file mode only) |
Get JSON metadata about a deployment including all files, sizes, and MIME types.
Serves index.html with cookie-based asset routing. Redirects to /site/{slug}/ and sets a 30-minute session cookie.
Serves sub-files (CSS, JS, images, etc.) with correct MIME types.
File info page with download & preview buttons. Password gate if protected.
Direct download with Content-Disposition: attachment. Supports ?pw=password for protected files.
Inline preview for browser-viewable types (images, PDFs, videos, text).
Replace files at the same URL. Old files are deleted, new ones go live. Expiry preserved.
| Header | Value |
|---|---|
X-Access-Token | Your access token |
Permanently delete a resource and all its files from KV + D1.
| Header | Value |
|---|---|
X-Access-Token | Your access token |
Verify password for a protected file. Returns {"ok":true} or {"ok":false}.
Create an empty paste with a pre-allocated URL. Write text later via the write API. Perfect for CI/CD pipelines β get the URL first, push logs as they arrive.
| Field | Type | Description |
|---|---|---|
expiry | string | Preset or custom minutes (same as upload) |
Write text to an existing paste. Supports multiple actions. Rate limited to 20 requests per minute per IP.
| Field | Type | Description |
|---|---|---|
text | string | Text to write (not required for clean action) |
action | string | append (default) | replace | clean | clean&add |
HTML view of the paste with copy button and API hint.
Plain text content of the paste. Perfect for scripting.
| Status | Meaning |
|---|---|
| 400 | Bad request β invalid mode, expiry, missing files |
| 401 | Missing X-Access-Token header |
| 403 | Invalid access token or wrong password |
| 404 | Resource not found |
| 410 | Resource expired β auto-deleted |
| 429 | Rate limit exceeded (paste API: 20 req/min) |
| Pattern | Purpose | Auth |
|---|---|---|
/site/{slug} | Website hosting | Cookie 30min |
/site/{slug}/{path} | Site sub-files | Cookie |
/file/{slug} | File info page | None |
/file/{slug}/dl | Direct download | ?pw= if protected |
/file/{slug}/view | Inline preview | ?pw= if protected |
/paste/{slug} | Paste HTML view | Public |
/paste/{slug}/raw | Paste raw text | Public |
/{asset} | Cookie fallback | Reads cookie |
Tempserv CLI β pypi.org/project/tempserv-cli
Built with Cloudflare Workers + KV + D1