One command. Localhost โ†’ live URL.

flieger turns your running dev server into a public URL in seconds โ€” with safety checks so you don't accidentally ship your OpenAI key to the world.

$ npx flieger share
Free ยท no credit card ยท works with Claude Code, Cursor, Cline

What your share looks like

Pro users get a subdomain they'd actually want to tweet. AI agents like Claude Code can call flieger directly โ€” ask them to ship, they ship.

๐Ÿ”’ https://my-recipe-app.flieger.app

My Recipe App

Built with Next.js ยท Live for my friend ๐ŸŽ‰

Spaghetti Carbonara
30 min ยท 4 servings
Claude Code
you Deploy this app so I can show it to Jenny.
claude

Done. Live at my-recipe-app.flieger.app.

I also fixed one issue โ€” your .env wasn't in .gitignore, so your Supabase keys would have leaked on your next commit.

Tunnel stays up until you close this terminal.

Safety checks, built in

Most "my vibe-coded app got hacked" stories start with one of three mistakes. flieger catches all three before your URL goes live.

1

Exposed API keys

Scans your source for OpenAI, Anthropic, Stripe, GitHub, Google, Slack, AWS keys. Flags plaintext hits so you can rotate before someone runs up your bill.

2

Secrets in Git

Checks that .env is in .gitignore and that it wasn't committed in an earlier history. If it was, we tell you how to rotate and scrub.

3

Wide-open CORS

Detects cors(), cors({ origin: '*' }), and friends โ€” configs that let any random site call your API and ride your users' sessions.

Pricing

Free forever for laptop-tethered sharing. โ‚ฌ9/month for stable URLs you'd want to show a client.

Free
โ‚ฌ0 / forever
Perfect for "show me your localhost" moments.
  • Unlimited flieger share
  • All 3 safety checks
  • Random *.trycloudflare.com URL
  • One concurrent share
  • Laptop must be running
Install from npm
Pro
โ‚ฌ9 / month
When a random URL isn't good enough.
  • Everything in Free
  • Custom *.flieger.app subdomains
  • Up to 3 concurrent shares
  • Priority on new features (auto-fix, MCP)
  • Cancel anytime ยท EU VAT included
Go Pro โ†’

Questions people ask

Can't find yours? Use the form below โ€” you'll actually get a reply.

What happens when I close my laptop?

The URL stops working. Pro gives you a stable slug โ€” your URL stays my-app.flieger.app โ€” but the tunnel itself still needs your laptop running. 24/7 hosting is on the roadmap. For now: Vercel or Railway if you need always-on, flieger if you want to show a work-in-progress.

Does flieger see my source code?

No. Your code stays on your laptop. The tunnel just forwards HTTP traffic between Cloudflare's edge and your local dev server. flieger doesn't log, scrape, or transmit your files. Open source so you can read it: the published package is exactly what runs.

Is the free tier actually free? Forever?

Yes. Free tunnels run through Cloudflare's Quick Tunnels, which are free for reasonable use. flieger doesn't charge for the free tier because there's nothing to charge for โ€” no servers, no bandwidth, no storage on our side.

Can I use it with Python, Go, or other languages?

Yes. The tunnel is language-agnostic. flieger auto-detects Next.js, Vite, SvelteKit, Nuxt, and Express; for anything else, pass --port 3000 (or whatever port your server uses). FastAPI, Flask, Hono, Go servers โ€” all work.

Can I use a custom domain like mycompany.com?

Not yet. Pro gives you *.flieger.app subdomains. Full custom domains (app.mycompany.com โ†’ your laptop) are on the roadmap โ€” reach out if it's a must-have for you.

How do I cancel Pro?

Self-serve in your Lemon Squeezy customer portal โ€” the link is in your purchase receipt. Cancel anytime; you keep Pro until the end of the billing period. No calls, no emails, no dark patterns.

Do I need a Cloudflare account?

No. Cloudflare handles the tunneling behind the scenes, but you don't need an account, API key, or anything else on your end. Install cloudflared once (flieger tells you how), and you're done.

My license stopped working after a reinstall. Why?

Each Pro license is tied to one machine. After a reinstall, run flieger logout on the old machine (or wait โ€” it'll self-release), then flieger login <key> on the new one. If you're stuck, send a message below and I'll reset it.

Say hi

Bug reports, feature requests, "can you make it work with X" โ€” drop me a line. I read everything and usually reply within a day.