{"id":13677423,"url":"https://github.com/hpdeifel/hledger-iadd","last_synced_at":"2025-04-12T17:45:48.772Z","repository":{"id":48867394,"uuid":"43847203","full_name":"hpdeifel/hledger-iadd","owner":"hpdeifel","description":"A terminal UI as drop-in replacement for hledger add.","archived":false,"fork":false,"pushed_at":"2025-03-12T08:58:05.000Z","size":351,"stargazers_count":88,"open_issues_count":28,"forks_count":9,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-03T21:12:10.364Z","etag":null,"topics":["curses","finance","haskell","hledger","ledger","plaintext-accounting","tui","ui"],"latest_commit_sha":null,"homepage":null,"language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hpdeifel.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-10-07T22:00:14.000Z","updated_at":"2025-03-22T13:29:20.000Z","dependencies_parsed_at":"2023-12-06T16:28:50.482Z","dependency_job_id":"f9ee2860-4484-4a72-a8a9-d4b2a1ae1018","html_url":"https://github.com/hpdeifel/hledger-iadd","commit_stats":{"total_commits":389,"total_committers":10,"mean_commits":38.9,"dds":"0.046272493573264795","last_synced_commit":"0a3a0a9447c4b5ac13298b3c358d34fcb8e61663"},"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hpdeifel%2Fhledger-iadd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hpdeifel%2Fhledger-iadd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hpdeifel%2Fhledger-iadd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hpdeifel%2Fhledger-iadd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hpdeifel","download_url":"https://codeload.github.com/hpdeifel/hledger-iadd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248609570,"owners_count":21132916,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["curses","finance","haskell","hledger","ledger","plaintext-accounting","tui","ui"],"created_at":"2024-08-02T13:00:41.987Z","updated_at":"2025-04-12T17:45:48.751Z","avatar_url":"https://github.com/hpdeifel.png","language":"Haskell","funding_links":[],"categories":["Add/Edit Transactions"],"sub_categories":[],"readme":"# hledger-iadd\n\nAn interactive terminal UI as drop-in replacement for `hledger add`.\n\n![Screencast](doc/screencast.gif)\n\n## Features\n\nThis project improves in the following ways on hledger's `add` command:\n\n - Interactive as-you-type completion for account names and\n   descriptions with optional fuzzy matching (see [below](#configuration-file)).\n\n - Integrated calculator: Amounts can be written as simple sums with\n   real-time feedback on the result.\n\n - All actions while entering a transaction can be undone\n\n - Configurable format for date input. Instead of `y/m/d` it is also\n   possible to use other formats like the german `d.m.y`.\n\nAlso see the user guide under [Usage](#usage).\n\n## Installation\n### Latest release\n#### Archlinux\n\nFor Archlinux users, an [AUR package](https://aur.archlinux.org/packages/hledger-iadd-bin) with a binary built by me (@hpdeifel)\nis available. If you want to compile `hledger-iadd` yourself, use one of the\nfollowing installation methods.\n\n#### stack\n\nThe easiest method would be [stack]: Install the [stack] program and\ntype:\n\n    stack install --resolver=lts hledger-iadd-1.3.21\n\nThis downloads and builds `hledger-iadd` and all it's Haskell\ndependencies. After that, it copys the resulting binary to\n`~/.local/bin`. See `stack --help` for more options. You may get asked\nto install the GHC Haskell compiler locally. To do that, type `stack\nsetup`.\n\n#### cabal\n\nFirst, install the GHC Haskell compiler and the `cabal install`,\n`alex` and `happy` build tools, possibly from your distribution or the\n[haskell platform]. Type\n\n    cabal install --bindir ~/bin hledger-iadd\n\nto install the binary in `~/bin`.\n\n### Development version\n\nTo install the development version, clone the git repository first:\n\n    git clone https://github.com/hpdeifel/hledger-iadd.git\n\tcd hledger-iadd\n\n#### stack\n\nThe easiest method would be [stack]: Install the [stack] program and\ntype:\n\n    stack install\n\nTo build and install all Haskell dependencies locally and install\n`hledger-iadd` to `~/.local/bin`. See `stack --help` for more options.\nYou may get asked to install the GHC Haskell compiler locally. To do\nthat, type `stack setup`.\n\n#### Cabal\n\nFirst, install the GHC Haskell compiler and the `cabal install`,\n`alex` and `happy` build tools, possibly from your distribution or the\n[haskell platform].\n\nSince `cabal` builds regularly break in non-isolated environments, the\nrecommended next step is to create a cabal sandbox where all\ndependencies will be installed in:\n\n    cd hledger-iadd\n\tcabal sandbox init\n\nYou can now download and install all dependencies locally with\n\n    cabal install --only-dependencies\n\nAnd finally you're ready to build and install `hledger-iadd`:\n\n    cabal configure --bindir ~/bin\n\tcabal build\n\tcabal copy\n\n## Usage\n\n*[YouTube video demonstrating basic interactions](https://www.youtube.com/watch?v=ZuCT9EzryaI)*\n\nYou can start the program either with\n\n    hledger iadd\n\nor simply `hledger-iadd`.\n\nThe following command line options are available:\n\n  - `-f/--file/`: Path to the journal file. (Default: `~/.hledger.journal`)\n  - `--date-format`: Format for parsing dates. (Default:\n    `[[%y/]%m/]%d`, the usual ledger date format). Brackets can be\n    used to specify optional parts. E.g the german date format would\n    be `%d[.[%m[.[%y]]]]`. (Dates are written as `y/m/d` to the\n    journal regardless of this option).\n  - `--completion-engine`: Algorithm for account name completion. Can\n    be `substrings` or `fuzzy`.\n  - `--dump-default-config`: Print the example config file to stdout\n    and exit\n\nThe UI is partitioned in 4 regions:\n\n    Current Transaction (view of your work in progress)\n\t---------------------------------------------------\n\tQuestion: [ text area                             ]\n\t---------------------------------------------------\n\tContext information (e.g. list of accounts)\n\n\n\n\n\t---------------------------------------------------\n\tMessage area\n\nFor each transaction, you will get asked the following questions in\norder:\n\n 1. Date?\n 2. Description?\n 3. Account name?\n 4. Amount?\n 5. The last two questions are repeated until you enter the empty account\n 6. Do you want to add this transaction to the journal?\n\nTo accept the default answer, immediately press \u003ckbd\u003eReturn\u003c/kbd\u003e at a\npromt.\n\nWhile you type, the context area shows possible completions. Pressing\n\u003ckbd\u003eReturn\u003c/kbd\u003e answers the question with the currently selected\ncompletion. You can select differnt completions with \u003ckbd\u003eC-n\u003c/kbd\u003e\nand \u003ckbd\u003eC-p\u003c/kbd\u003e.\n\nThe following keyboard shortcuts are available:\n\n| Key                             | Function                                                                      |\n| ------------------------------- | ----------------------------------------------------------------------------- |\n| \u003ckbd\u003eC-c\u003c/kbd\u003e, \u003ckbd\u003eC-d\u003c/kbd\u003e  | Quit the program without saving the current transaction                       |\n| \u003ckbd\u003eEsc\u003c/kbd\u003e                  | Abort the current transaction or exit when at toplevel                        |\n| \u003ckbd\u003eRet\u003c/kbd\u003e                  | Accept the currently selected answer                                          |\n| \u003ckbd\u003eAlt-Ret\u003c/kbd\u003e              | Accept the current answer verbatim from the text area, ignoring the selection |\n| \u003ckbd\u003eC-z\u003c/kbd\u003e                  | Undo the last action                                                          |\n| \u003ckbd\u003eTab\u003c/kbd\u003e                  | Insert the currently selected answer into the text area                       |\n| \u003ckbd\u003eC-n\u003c/kbd\u003e,\u003ckbd\u003e↓\u003c/kbd\u003e     | Select the next context item                                                  |\n| \u003ckbd\u003eC-p\u003c/kbd\u003e,\u003ckbd\u003e↑\u003c/kbd\u003e     | Select the previous context item                                              |\n| \u003ckbd\u003e;\u003c/kbd\u003e                    | Edit comment for current prompt                                               |\n| \u003ckbd\u003eAlt-;\u003c/kbd\u003e                | Edit transaction comment                                                      |\n| \u003ckbd\u003eF1\u003c/kbd\u003e,\u003ckbd\u003eAlt-?\u003c/kbd\u003e  | Show help dialog                                                              |\n\n## Default Currency\n\nTo make entry easier it is recommended that you set a [default commodity](https://hledger.org/journal.html#default-commodity)\nin your ledger file if you haven't already done so.\nThat way when entering amounts, `hledger-iadd` will add the symbols for you.\nYou can do this by adding a line like below to the top of your ledger file:\n\n```lisp\n; sets the default commodity symbol and placement, thousands separator, and decimal symbol\nD $1,000.00\n```\n\n## Configuration File\n\n`hledger-iadd` is optionally configurable through a configuration file\nin `${XDG_CONFIG_HOME}/hledger-iadd/config.conf`. This file consists\nof simple\n\n    key = value\n\nassignments on individual lines with whitespace or comments starting\nwith `#` between them. The default config can be obtained by\npassing `--dump-default-config` to `hledger-iadd`.\n\nThe following options are currently available:\n\n  - `file`: Path to the journal file.\n  - `date-format`: The date format. See the documentation for\n    `--date-format` for details.\n  - `completion-engine`: Algorithm used to find completions for\n    account names. Possible values are:\n\t- `substrings`: Every word in the search string has to occur\n      somewhere in the account name\n\t- `fuzzy`: All letters from the search string have to appear in\n      the name in the same order\n\n## License\n\nThe code of `hledger-iadd` is released under the [BSD3] license, but\nsince `hledger-lib` -- the library that `hledger-iadd` uses -- is\nlicensed under the [GPLv3], the terms of the GPL apply to the compiled\nand linked binary.\n\n[stack]: https://github.com/commercialhaskell/stack\n[haskell platform]: https://www.haskell.org/platform/\n[BSD3]: https://opensource.org/licenses/BSD-3-Clause\n[GPLv3]: https://www.gnu.org/licenses/gpl-3.0.en.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhpdeifel%2Fhledger-iadd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhpdeifel%2Fhledger-iadd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhpdeifel%2Fhledger-iadd/lists"}