Simple command args parsing and execution

Version on this page:0.1.5
LTS Haskell 22.30:0.1.8
Stackage Nightly 2024-07-24:0.1.8
Latest on Hackage:0.1.8

See all snapshots simple-cmd-args appears in

BSD-3-Clause licensed by Jens Petersen
Maintained by [email protected]
This version can be pinned in stack with:simple-cmd-args-0.1.5@sha256:7ffce6036a780cb662c7e09ee7173101365e429bb9f2ce019d52a8b22013401e,1490

Module documentation for 0.1.5


Hackage BSD license Stackage Lts Stackage Nightly Build status

A thin layer over optparse-applicative that avoids type plumbing for subcommands by using Parser (IO ()).


import SimpleCmdArgs
import Control.Applicative (some)
import SimpleCmd (cmd_)

main =
  simpleCmdArgs Nothing "my example tool" "Longer description..." $
    [ Subcommand "echo" "Print name" $ putStrLn <$> strArg "NAME"
    , Subcommand "ls" "Touch FILE" $ cmd_ "ls" <$> some (strArg "FILE...")

See more examples.



simple-cmd-args uses PVP Versioning.

0.1.5 (2020-02-06)

  • add Eq and Ord instances for Subcommand

0.1.4 (2019-10-29)

  • export many, some, str
  • export <$> and <*> on older ghc7

0.1.3 (2019-09-12)

  • export <|>

0.1.2 (2019-05-24)

  • add flagWith and flagWith’
  • export Parser, auto, optional

0.1.1 (2019-04-08)

  • add switchWith, strOptionWith, optionWith, optionalWith, strOptionalWith, argumentWith
  • export simpleCmdArgsWithMods

  • fix and improve haddock documentation


  • Initial release with subcommands and option Mod functions