guacamole
Guacamole is an command line tool library for Python
What it is and what it does
Guacamole is a command-line application framework that abstracts away boilerplate setup tasks. Instead of manually configuring argument parsers, setting up logging, handling internationalization, and writing crash handlers, you define command classes that inherit from guacamole.Command, implement register_arguments() and invoked() methods, and call main() to run them. The framework handles argument parsing, logging initialization, i18n features, debugging facilities, and error handling automatically.
The package supports grouping commands into complex tools and uses a recipe-based customization system (recipes, ingredients, and spices) to modify behavior. It was originally part of plainbox and extracted into a standalone library. With zero runtime dependencies and a pure-Python wheel distribution, installation is frictionless, but the project has been abandoned since 2015 with no active maintenance.
Use it for:
- Build a multi-command CLI tool (like git subcommands) without manually wiring argument parsers and dispatchers
- Create a simple command-line utility that needs logging, internationalization, and error handling out of the box
- Prototype command-line applications quickly by focusing on business logic rather than CLI infrastructure
- Organize related CLI commands into a single cohesive tool using the command grouping system
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Guacamole provides a framework for building command-line applications with built-in support for argument parsing, logging, internationalization, and error handling.
No. While the framework is lightweight and has no dependencies, it has been abandoned for over a decade with no maintenance or Python version updates. Modern alternatives like Click, Typer, or even argparse directly are actively maintained and better suited for new projects. Use Guacamole only if maintaining legacy code that already depends on it.
Install
guacamole on PyPI
pip
pip install guacamoleuv
uv add guacamolepoetry
poetry add guacamoleInstalling guacamole
Before you install
Installation is straightforward with no runtime dependencies. However, the project is abandoned—last release was 2015-08-06 and last commit 2022-12-26—so expect no active maintenance or support for modern Python versions.
License in practice
Licensed under LGPLv3 (copyleft), which requires derivative works to be licensed under the same terms and makes source code available to users who receive the software.
Quickstart
pip install guacamole
import guacamole
class HelloWorld(guacamole.Command):
def register_arguments(self, parser):
parser.add_argument('name')
def invoked(self, ctx):
print("Hello {0}!".format(ctx.args.name))
HelloWorld().main(['Guacamole'], exit=False)
Project is abandoned; compatibility with Python versions after 2015 is unverified and likely problematic.
Verify before relying
- Whether the package works reliably with Python versions released after 2015
- Compatibility with modern argparse or whether it requires workarounds
- Active user base or community support despite abandonment status
Package facts
| License | LGPLv3 (copyleft) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | abandoned — 4,026 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 88,880/month — #13,696 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: guacamole-0.9.2-py2.py3-none-any.whl
Keywords: argparse, cli, tool, command, sub-command, subcommand
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
argparseProvides command-line argument parsing for…
permissive · top 1,000 on PyPI
decliDecli wraps argparse to let you define…
permissive · top 5,000 on PyPI
faceFace is a command-line application framework…
unclear · top 1,000 on PyPI
mandomando wraps argparse to let you build…
permissive · top 5,000 on PyPI
arghArgh turns plain Python functions into…
copyleft · top 5,000 on PyPI
argparse-addonsProvides additional type validators and action…
permissive · top 5,000 on PyPI
argcompleteProvides bash and zsh tab completion for Python…
permissive · top 1,000 on PyPI
autocommandAutocommand converts a Python function into a…
copyleft · top 5,000 on PyPI
jaraco.loggingAdds command-line argument parsing for Python…
permissive · top 15,000 on PyPI
argparse-extExtends Python's standard argparse module with…
copyleft · top 15,000 on PyPI