flask-cloudflared
Start a TryCloudflare Tunnel from your flask app.
Decision gist · record as of 2026-08-14
Yes, if you need rapid, zero-configuration tunneling for Flask development and testing. The low install friction, permissive license, and straightforward decorator API make it a practical choice for prototyping and temporary sharing. The aging maintenance status and small community (43 stars) mean it is not a long-term production solution, but it is reliable for its intended use case of quick local-to-public exposure.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.6 or later and a working Cloudflare TryCloudflare service connection.
- Low install friction with three lightweight runtime dependencies.
- Last commit was 2026-01-27 and the repository is active, though the project shows aging maintenance signals with infrequent updates.
License · maintenance · safety
permissive license (permissive) — Licensed under Apache Software License (permissive), which allows commercial and private use with minimal restrictions.
last release 2026-01-27 (199 days) · last repo commit 2026-01-27 · 43 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 98,133 downloads/mo, #13,103 on PyPI
Alternatives
Verify before relying
pip install flask-cloudflared
from flask import Flask
from flask_cloudflared import run_with_cloudflared, get_cloudflared_url
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello World'
@run_with_cloudflared
def run():
app.run()
if __name__ == '__main__':
run()
print(get_cloudflared_url())- Whether the package works reliably with Python versions beyond 3.6, given the classifier specifies only 3.6 support
- Current status of Cloudflare's TryCloudflare service and whether it remains stable for production-like use cases
What it is and what it does
flask-cloudflared wraps a Flask application with a decorator that automatically starts a Cloudflare TryCloudflare tunnel, making your local Flask app accessible via a public URL without manual tunnel setup. It depends on Flask, requests, and tqdm, and runs your app on port 5000 by default while starting a metrics page on a random port between 8100 and 9000. You can retrieve the tunnel URL programmatically and customize the port, metrics port, and tunnel domain through function arguments.
The package is designed for rapid prototyping, testing, and sharing—scenarios where you need a temporary public endpoint without infrastructure setup. It abstracts away the Cloudflare tunnel CLI, letting you manage tunneling directly from Python code. For persistent or custom domains, you can pass a tunnel ID or config path to use your own Cloudflare tunnel configuration.
Use it for
- Quickly share a local Flask development server with teammates or external users without deploying to production.
- Test webhooks or third-party integrations that require a public URL pointing to your local machine.
- Demonstrate a Flask prototype or MVP to stakeholders without setting up hosting infrastructure.
- Debug issues in a live-like environment by exposing your local app to the internet temporarily.
- Set up automated testing or CI/CD workflows that need a public endpoint for callback validation.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need rapid, zero-configuration tunneling for Flask development and testing.
The low install friction, permissive license, and straightforward decorator API make it a practical choice for prototyping and temporary sharing. The aging maintenance status and small community (43 stars) mean it is not a long-term production solution, but it is reliable for its intended use case of quick local-to-public exposure.
Install
flask-cloudflared on PyPI
Before you install
Low install friction with three lightweight runtime dependencies. Last commit was 2026-01-27 and the repository is active, though the project shows aging maintenance signals with infrequent updates.
Requires Python 3.6 or later and a working Cloudflare TryCloudflare service connection.
License in practice
Licensed under Apache Software License (permissive), which allows commercial and private use with minimal restrictions.
Quickstart
pip install flask-cloudflared
from flask import Flask
from flask_cloudflared import run_with_cloudflared, get_cloudflared_url
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello World'
@run_with_cloudflared
def run():
app.run()
if __name__ == '__main__':
run()
print(get_cloudflared_url())
Verify before relying
- Whether the package works reliably with Python versions beyond 3.6, given the classifier specifies only 3.6 support
- Current status of Cloudflare's TryCloudflare service and whether it remains stable for production-like use cases
Package facts
| License | permissive license permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagesFlaskrequeststqdm |
| Maintenance | Aging 199 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 98,133 / month, #13,103 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: Apache Software LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3.6 |
Evidence: flask_cloudflared-0.0.15-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “cloudflare tunnel flask”
- flask-cloudflaredStarts a Cloudflare TryCloudflare tunnel for a Flask app, exposing it…
- pulumi-cloudflarePulumi provider for Cloudflare that lets you define and manage…
- workers-runtime-sdkPython SDK for building and running applications on Cloudflare…
Give your agent the search over MCP, or paste the wish link into any chat.
More Dynamic Content packages
MarkupSafe provides a text object that escapes special characters so untrusted strings can be safely embedded in HTML and XML without injection attacks.
Jinja2 is a templating engine that renders dynamic content by combining templates with Python-like syntax and data, supporting template inheritance, macros, autoescaping, and sandboxed execution.
Soupsieve is a CSS selector library designed to work with Beautiful Soup 4 to select, match, and filter HTML and XML elements using modern CSS selectors from CSS level 1 through CSS level 4 specifications.
Install it if you use Beautiful Soup for HTML or XML parsing and want modern CSS selector support.
Werkzeug is a WSGI utility library providing request/response objects, URL routing, an interactive debugger, HTTP utilities, and a development server for building web applications.
Flask is a lightweight WSGI web application framework for building web applications in Python, from simple single-page sites to complex multi-route applications.
Mako compiles Python-embedded templates into Python modules for fast rendering, supporting layout inheritance, custom functions, and direct Python expressions within template syntax.
See also pyngrok · prime-tunnel · cloudflare · Flask-HTTPAuth · flask-cors · sshtunnel · cloudscraper · pulumi-cloudflare · Flask-Limiter · ngrok