A Python tool that enhances ZSH and Bash shell functions, making them easier to define, more flexible, and interactive.
Funky is a Python-based command-line tool that enhances shell functions in ZSH and Bash by making them easier to define, more flexible, and interactive. It introduces 'funks'—shell functions with shortcuts for common patterns, automatic argument handling, and both local and global scoping to streamline command-line workflows.
Developers and power users who work extensively in ZSH or Bash shells and want to optimize their command-line productivity through reusable, context-aware shell functions.
Funky stands out by providing intelligent shortcuts and interactive management for shell functions, reducing boilerplate and making function definitions faster and more intuitive than traditional methods, all while maintaining the full power of shell functions over aliases.
Funky takes shell functions to the next level by making them easier to define, more flexible, and more interactive.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automatically transforms simple inputs like @./path into full cd commands or quoted strings into echo commands, reducing boilerplate and speeding up common tasks.
Supports both local and global funks, allowing directory-specific overrides and flexible workflow adaptation, as local funks take precedence over global ones.
Provides dedicated commands like funky and gfunky for creating, editing, and removing funks interactively, simplifying the entire lifecycle of shell functions.
For single-line definitions without argument variables, automatically appends "$@" to pass arguments seamlessly, mimicking the convenience of aliases while retaining function power.
Requires Python and pip/pipx for installation, adding an extra dependency layer that may not be ideal for minimal or resource-constrained shell environments.
Only supports ZSH and Bash, excluding users of other popular shells like Fish or PowerShell, which reduces its universality and adoption potential.
Requires running funky --setup-shell to hook into the shell, which can fail or require manual tweaking in custom or non-standard shell configurations.