fire
A library for automatically generating command line interfaces.
Decision gist · record as of 2026-08-14
Yes. Python Fire is a low-friction, well-maintained library with no security issues and permissive licensing. It's ideal if you need to quickly expose Python code as a CLI without the overhead of a full argument-parsing framework. Install it when you want rapid prototyping or need to turn existing Python objects into command-line tools; skip it if you need fine-grained control over CLI behavior or complex argument validation.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low install friction with a single lightweight dependency (termcolor).
- Active maintenance with recent release activity; last commit 2026-07-01 and latest release 2025-08-16 indicate ongoing support.
License · maintenance · safety
Apache-2.0 (permissive) — Licensed under Apache 2.0 (permissive), allowing use in commercial and proprietary projects with minimal restrictions.
last release 2025-08-16 (363 days) · last repo commit 2026-07-01 · 28,206 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 21,233,843 downloads/mo, #1,006 on PyPI
Alternatives
Verify before relying
pip install fire
import fire
def hello(name="World"):
return "Hello %s!" % name
if __name__ == '__main__':
fire.Fire(hello)
# Then: python script.py --name=David- Whether the package handles complex nested object hierarchies or only flat function/class interfaces
- Performance characteristics when exposing large APIs or deeply nested module structures
What it is and what it does
Python Fire is a library that turns any Python object into a command-line interface by introspecting its structure and automatically mapping arguments to parameters. You pass a function, class, module, or data structure to fire.Fire() and it generates a CLI with help text, argument parsing, and interactive mode—no explicit argument parser configuration needed. The library handles functions with default arguments, class methods, nested objects, dictionaries, and lists, making it useful for quick prototyping, debugging, and exposing existing Python code as command-line tools.
The package depends only on termcolor for colored output and supports Python 3.7 through 3.13. It's maintained by Google, with active development and no known security vulnerabilities. The approach trades some control and customization for speed and simplicity—ideal when you want a working CLI in minutes rather than building one from scratch with argparse or Click.
Use it for
- Quickly expose a Python function or class as a command-line tool for one-off scripts or internal utilities
- Debug and test Python code interactively via CLI without writing separate test harnesses
- Turn an existing Python module or library into a usable command-line interface for exploration or automation
- Build REPL environments with pre-imported modules and objects for interactive development
- Create simple CLI wrappers around Python functions for shell integration or CI/CD pipelines
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Python Fire is a low-friction, well-maintained library with no security issues and permissive licensing. It's ideal if you need to quickly expose Python code as a CLI without the overhead of a full argument-parsing framework. Install it when you want rapid prototyping or need to turn existing Python objects into command-line tools; skip it if you need fine-grained control over CLI behavior or complex argument validation.
Install
fire on PyPI
Before you install
Low install friction with a single lightweight dependency (termcolor). Active maintenance with recent release activity; last commit 2026-07-01 and latest release 2025-08-16 indicate ongoing support.
License in practice
Licensed under Apache 2.0 (permissive), allowing use in commercial and proprietary projects with minimal restrictions.
Quickstart
pip install fire
import fire
def hello(name="World"):
return "Hello %s!" % name
if __name__ == '__main__':
fire.Fire(hello)
# Then: python script.py --name=David
Verify before relying
- Whether the package handles complex nested object hierarchies or only flat function/class interfaces
- Performance characteristics when exposing large APIs or deeply nested module structures
Package facts
| License | Apache-2.0 permissive |
| Python support | Supports the current Python release >=3.7 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagetermcolor |
| Maintenance | Actively maintained 363 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 21,233,843 / month, #1,006 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersOperating System :: MacOSOperating System :: OS IndependentOperating System :: POSIXOperating System :: UnixProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Software Development :: Libraries :: Python Modules |
Evidence: fire-0.7.1-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 › “python cli generator”
- fireAutomatically generates command-line interfaces from any Python…
- openapi-generator-cliProvides a Python CLI wrapper for OpenAPI Generator, enabling…
- entrypoint2Converts Python function signatures and docstrings into command-line…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also tyro · clize · argparse-dataclass · click · click-repl · prefect-cloud · Events · logfury · EasyProcess · entrypoint2