A shell toolkit for organically transitioning from commands to reusable functions with metadata, help, and Git versioning.
Composure is a shell toolkit that helps users transition from one-off commands to reusable, documented functions with built-in version control. It solves the problem of ad-hoc shell workflows by providing a structured workflow (craft, draft, revise, write) to iteratively build and maintain shell scripts. The tool integrates metadata, help systems, and Git to make shell programming more organized and accessible.
System administrators, DevOps engineers, and power users who frequently work in Unix-like shells and want to streamline their command-line workflows. It's ideal for those who build complex pipelines and seek to reuse and document their shell functions.
Developers choose Composure because it turns the shell into a REPL-like environment with built-in versioning and documentation, reducing friction in creating reusable scripts. Its unique workflow and metadata system encourage best practices without sacrificing the flexibility of the command line.
Don't fear the Unix chainsaw
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The craft-draft-revise-write process seamlessly evolves commands into reusable functions, as shown in the demo and typical usage journey, reducing ad-hoc clutter.
Arbitrary metadata keywords like 'about' and 'group' enable apidoc-style help via 'glossary' and 'reference', making functions self-documenting and easier to maintain.
Git integration automatically stores and versions functions in a local repository, preserving history without manual commits, as highlighted in the Git integration section.
Works on bash, zsh, and ksh93 across macOS and Linux, ensuring broad usability in Unix-like environments without shell lock-in.
The help system ('glossary' and 'reference') does not support nested functions with metadata, restricting organization in complex scripts, as admitted in known issues.
'revise' works best with terminal-based editors; windowed editors require extra configuration or scripts, adding setup complexity, as noted in known issues.
Default behavior sources all composed functions, which can slow shell startup time, though configurable with LOAD_COMPOSED_FUNCTIONS, indicating a performance trade-off.