Documentation for ComposableCommands.

ComposableCommands.jl is a Julia package that simplifies the process of interpreting and building command-line instructions. It allows you to programmatically construct commands, manage command parameters, handle command redirections, and much more. This is particularly useful when dealing with complex commands or dynamically generated commands.


  • Abstract representation of command line commands, options, flags, and arguments
  • Support for subcommands and command composition
  • Redirection and pipe handling
  • Intuitive API for building and interpreting commands

See the Index for the complete list of documented functions and types.

The code is hosted on GitHub, with some continuous integration services to test its validity.

This repository is created and maintained by @singularitti. You are very welcome to contribute.


The package can be installed with the Julia package manager. From the Julia REPL, type ] to enter the Pkg REPL mode and run:

pkg> add ComposableCommands

Or, equivalently, via the Pkg API:

julia> import Pkg; Pkg.add("ComposableCommands")   Resolving package versions...
   Installed ComposableCommands ─ v0.2.0
    Updating `~/work/ComposableCommands.jl/ComposableCommands.jl/docs/Project.toml`
  [b5b47461] ~ ComposableCommands v0.2.0 `~/.julia/dev/ComposableCommands` ⇒ v0.2.0
    Updating `~/work/ComposableCommands.jl/ComposableCommands.jl/docs/Manifest.toml`
  [b5b47461] ~ ComposableCommands v0.2.0 `~/.julia/dev/ComposableCommands` ⇒ v0.2.0
Precompiling project...
  1 dependency successfully precompiled in 0 seconds. 21 already precompiled.
  1 dependency precompiled but a different version is currently loaded. Restart julia to access the new version


  • STABLEdocumentation of the most recently tagged version.
  • DEVdocumentation of the in-development version.

Project status

The package is tested against, and being developed for, Julia 1.6 and above on Linux, macOS, and Windows.

Questions and contributions

Usage questions can be posted on our discussion page.

Contributions are very welcome, as are feature requests and suggestions. Please open an issue if you encounter any problems. The Contributing page has a few guidelines that should be followed when opening pull requests and contributing code.

Manual outline

Library outline