File: README.md | Updated: 11/18/2025
Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object.
To install Python Fire with pip, run: pip install fire
To install Python Fire with conda, run: conda install fire -c conda-forge
To install Python Fire from source, first clone the repository and then run:
python setup.py install
You can call Fire on any Python object:<br>
functions, classes, modules, objects, dictionaries, lists, tuples, etc.
They all work!
Here's an example of calling Fire on a function.
import fire
def hello(name="World"):
return "Hello %s!" % name
if __name__ == '__main__':
fire.Fire(hello)
Then, from the command line, you can run:
python hello.py # Hello World!
python hello.py --name=David # Hello David!
python hello.py --help # Shows usage information.
Here's an example of calling Fire on a class.
import fire
class Calculator(object):
"""A simple calculator class."""
def double(self, number):
return 2 * number
if __name__ == '__main__':
fire.Fire(Calculator)
Then, from the command line, you can run:
python calculator.py double 10 # 20
python calculator.py double --number=15 # 30
To learn how Fire behaves on functions, objects, dicts, lists, etc, and to learn about Fire's other features, see the Using a Fire CLI page.
For additional examples, see The Python Fire Guide.
When you call Fire, it fires off (executes) your command.
Please see The Python Fire Guide.
| Setup | Command | Notes
| :------ | :------------------ | :---------
| install | pip install fire |
| Creating a CLI | Command | Notes
| :--------------| :--------------------- | :---------
| import | import fire |
| Call | fire.Fire() | Turns the current module into a Fire CLI.
| Call | fire.Fire(component) | Turns component into a Fire CLI.
| Using a CLI | Command | Notes
| :---------------------------------------------- | :-------------------------------------- | :----
| Help | command --help or command -- --help |
| REPL | command -- --interactive | Enters interactive mode.
| Separator | command -- --separator=X | Sets the separator to X. The default separator is -.
| Completion | command -- --completion [shell] | Generates a completion script for the CLI.
| Trace | command -- --trace | Gets a Fire trace for the command.
| Verbose | command -- --verbose |
Note that these flags are separated from the Fire command by an isolated --.
Licensed under the Apache 2.0 License.
This is not an official Google product.