Command Line Interface¶
Responder installs a responder command that lets you launch
applications from the terminal. You can point it at a Python module,
a local file, or even a URL — and it will find your API instance
and start serving.
Launching from a Module¶
The most common way to run a Responder application in production. Use Python’s standard dotted module path:
$ responder run acme.app
This imports acme.app and looks for an attribute called api
(a responder.API instance). It’s the same import system Python
uses everywhere — your PYTHONPATH and virtual environment are
respected.
Launching from a File¶
During development, you often have a single file you want to run:
$ responder run helloworld.py
This loads the file directly and starts the server. Quick and easy for prototyping and single-file applications.
You can test it with a simple HTTP request:
$ curl http://127.0.0.1:5042/hello
hello, world!
Launching from a URL¶
Responder can fetch and run a Python file from any URL — great for demos, sharing examples, and running code from GitHub:
$ responder run https://github.com/kennethreitz/responder/raw/refs/heads/main/examples/helloworld.py
This also works with github:// URLs and any filesystem protocol
supported by fsspec:
$ responder run github://kennethreitz:responder@/examples/helloworld.py
Cloud storage is supported too — Azure Blob Storage, Google Cloud
Storage, S3, HDFS, SFTP, and more. Install fsspec[full] for all
protocols:
$ uv pip install 'fsspec[full]'
Custom Instance Names¶
By default, Responder looks for an attribute called api. If your
application uses a different name, specify it with a colon:
$ responder run acme.app:service
$ responder run myapp.py:application
For URLs, use a fragment:
$ responder run https://example.com/app.py#service
Building Frontend Assets¶
If your project includes a JavaScript frontend with a package.json,
the build subcommand runs npm run build:
$ responder build
$ responder build /path/to/frontend