Zero auth. Agent-native. Live in seconds.

Your files,
live in seconds.

Run a command, drop a folder, or call from code. No config, no pipeline.

$ npx flypod ./dist
HTML or Markdown · no account

How it works

Three steps, all visible in your terminal. No pipeline to configure. Just the path from a folder to a live URL.

01

Drop

Point flypod at a folder, a build output, or even a single file. No project setup, no account prompt.

$ npx flypod index.html
02

Build and ship

flypod packs the directory, stores a version, and prepares the live preview.

-> Uploading 3.2 MB
-> Building
-> Deploying
03

Get a URL

A live URL lands in stdout. Share it, test it, or hand it back to the agent loop.

Live URL: https://hello.flypod.dev

Deploys that can disappear without drama.

Ephemeral by default

Anonymous deploys are isolated and short-lived. Perfect for previews, demos, and experiments.

TTL: 14 days

Versioned, one-command rollback

Every deploy is a version. flypod update ships a new one to the same site; flypod rollback brings the last one back. flypod remembers which site a folder maps to, so no flags needed.

flypod rollback

Deploy receipt

Optional screenshot, console errors, and failed request summaries returned after every deploy.

"screenshot": "ok", "errors": 0

Lives in your agents

One command teaches Claude Code, Codex, Cursor, and 20+ others how to ship, via a skill and the universal AGENTS.md. Your agent just knows flypod.

flypod install skill

Comments your reviewers can leave inline.

Toggle on per site. Visitors get a pseudonym, highlight any passage on the page, and leave a comment anchored to that exact text. Owners read the thread in context or through the companion JSON feed.

  • Anonymous by default, one identity per site, rename anytime.
  • Anchored to the text, not the page, so a reviewer's note stays with the line they meant.
  • Every page exposes a machine-readable companion JSON feed.

Read the comments docs →

Script it. Shell it.

Use the CLI for one-shot deploys, or call the library when your agent already has the files in memory.

CLI

$ npx flypod ./dist
✓ Live  https://hello.flypod.dev

$ flypod update      # ship a change → new version
 version a1b2c3 is now live

$ flypod rollback    # undo it
 rolled back to 9f8e7d

Library

import { deploySite, collectDist } from "flypod";

const files = await collectDist("./dist");
const result = await deploySite({ files });

console.log(result.url);

Your build has somewhere to go now.

No account. No config. Just the deploy loop, moving.