harg: Haskell program configuration using higher kinded data

[ bsd3, cli, hkd, library, options, parsing, system ] [ Propose Tags ]

Please see the README on GitHub at https://github.com/alexpeits/harg#readme

[Skip to Readme]
Versions [RSS] [faq],,,,,,,,,
Change log CHANGELOG.md
Dependencies aeson (>=1.4.2 && <1.5), barbies (>=2.0.3 && <2.1), base (>=4.7 && <5), bytestring (>=0.10.8 && <0.11), directory (>=1.3.3 && <1.4), higgledy (>=0.4.1 && <0.5), optparse-applicative (>=0.15.1 && <0.16), split (>=0.2.3 && <0.3), text (>=1.2.3 && <1.3), yaml (>=0.11.0 && <0.12) [details]
License BSD-3-Clause
Copyright Copyright (c) 2020 Alex Peitsinis
Author Alex Peitsinis
Maintainer alexpeitsinis@gmail.com
Category System, CLI, Options, Parsing, HKD
Home page https://github.com/alexpeits/harg
Bug tracker https://github.com/alexpeits/harg/issues
Source repo head: git clone https://github.com/alexpeits/harg
Uploaded by alexpeits at 2021-03-04T14:08:44Z
Distributions NixOS:
Downloads 2509 total (29 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user
Build status unknown [no reports yet]


[Index] [Quick Jump]

Manual Flags

Automatic Flags

Build files in docs/ using markdown-unlit to test that examples are synced to the code and working. This should only be enabled on CI.


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees


Readme for harg-

[back to package description]

harg 🔩

Build Status Hackage

harg is a library for configuring programs by scanning command line arguments, environment variables, default values and more. Under the hood, it uses a subset of optparse-applicative to expose regular arguments, switch arguments and subcommands. The library relies heavily on the use of higher kinded data (HKD) thanks to the barbies library. Using higgledy also helps reduce boilerplate code significantly.


To find out more, check out the docs or the package page on hackage. There is also an example module that serves as an extensive demonstration of the library.


  • Better errors using optparse-applicative's internals
  • Allow user to pass optparse-applicative preferences
  • Write tests