{"id":16527749,"url":"https://github.com/benoitzugmeyer/bank","last_synced_at":"2026-06-08T17:31:24.715Z","repository":{"id":19567757,"uuid":"22816986","full_name":"BenoitZugmeyer/bank","owner":"BenoitZugmeyer","description":"A commandline banking utility","archived":false,"fork":false,"pushed_at":"2014-11-12T20:05:56.000Z","size":220,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-26T13:54:23.977Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BenoitZugmeyer.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-08-10T19:36:48.000Z","updated_at":"2018-08-31T23:10:50.000Z","dependencies_parsed_at":"2022-08-24T05:20:24.014Z","dependency_job_id":null,"html_url":"https://github.com/BenoitZugmeyer/bank","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BenoitZugmeyer/bank","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BenoitZugmeyer%2Fbank","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BenoitZugmeyer%2Fbank/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BenoitZugmeyer%2Fbank/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BenoitZugmeyer%2Fbank/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BenoitZugmeyer","download_url":"https://codeload.github.com/BenoitZugmeyer/bank/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BenoitZugmeyer%2Fbank/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34073667,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-10-11T17:36:38.587Z","updated_at":"2026-06-08T17:31:24.691Z","avatar_url":"https://github.com/BenoitZugmeyer.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n====\nbank\n====\n\nA command line banking utility.\n\nDisclaimer\n==========\n\nThis project is at its early stages, things will break. Please backup your database regularly.\n\nInstallation\n============\n\nInstall it via :code:`pip` (python 3+)::\n\n    $ pip install https://github.com/BenoitZugmeyer/bank/archive/master.zip\n\nUsage\n=====\n\n::\n\n    $ bank --help\n    Usage: bank [OPTIONS] COMMAND [ARGS]...\n\n    Options:\n      -v, --verbose\n      -V, --version  Print version and exit\n      --config PATH  [default: ~/.config/bank.yml]\n      --help         Show this message and exit.\n\n    Commands:\n      balances  Display current account balances\n      chart     Chart the absolute balance of accounts over time\n      config    Print parsed configuration file\n      reindex   Reindex all transactions from the database\n      search    Search for transactions\n      tail      Display the last transactions\n      update    Update the database with latest transactions\n\n\nAdaptors\n========\n\nAn adaptor is a python module to download account transactions from any service. For now, only one adaptor is included.\n\n\nbred\n----\n\nInterfaces with the `bred`_ french bank. :code:`bank` will prompt for an identifier and a password if you don't provide one in the configuration file.\n\n\nSearch query language\n=====================\n\n:code:`bank` provides a query language to quickly find transactions. For now, this is only accessible via the :code:`bank search` command.\n\nFull text search\n----------------\n\n:code:`bank` uses the `sqlite3 fts extension`_ to search inside various fields of each transaction. By default, it searches into the description field.\n\n:code:`gittip`\n    transactions with the word 'gittip' in the description\n\n:code:`paypal or amazon`\n    transactions containing the word 'paypal' or 'amazon'\n\n:code:`sncf or \"capitaine train\"`\n    transactions containing the word 'sncf' or 'capitaine train' (but not 'train capitaine')\n\n:code:`volt*`\n    transactions containing a word starting with 'volt'\n\n:code:`type:loan`\n    transactions with the word 'loan' in the type field\n\nTime search\n-----------\n\nOperators to filter transactions based on some dates.\n\n:code:`since 2014-02-03`\n    transactions since february 3rd, 2014\n\n:code:`since 10 days`\n    transactions since 10 days from now\n\n:code:`before 2014-02-03`\n    transactions before february 3rd, 2014\n\n:code:`between 2014-01-01 and 2014-01-31`\n    transactions from january 2014\n\nAmount search\n-------------\n\nOperators to filter transactions based on the amount of the transaction.\n\n:code:`more than 1000`\n    transactions with the absolute amount being more than 1000\n\n:code:`more than +1000`\n    transactions with the amount being more than 1000\n\n:code:`less than -1000`\n    transactions with the amount being less than -1000\n\nCombining everything\n--------------------\n\nAll those predicates can be combined in a single query. The default operator is a :code:`and`.\n\n:code:`gittip since 10 days`\n    transactions containing 'gittip' within the 10 last days\n\n:code:`amazon more than +0`\n    all amazon refounds\n\n:code:`not account:xxx or since 10 days`\n    all transactions excluding those from the account id xxx if they are more than 10 days\n\n\nConfiguration\n=============\n\nThe configuration file should be in `yaml`_ format. By default, :code:`bank` will use the file :code:`bank.yml` located in the local directory, but you can specify another path with the :code:`--config` option. All paths are relative to the configuration file\n\nThe configuration file is structured as follow:\n\n.. code:: yaml\n\n    # The database path. Defaults to bank.db.\n    database: path_to_sqlite_database.db\n\n    # Accounts listing.\n    accounts:\n\n        # Each account is reprensented by an ID. This ID should never change.\n        XXXXXX-XXX:\n\n            # Name of the account. You can rename it at any time.\n            name: Checking account\n\n            # Name of the adaptor to use. For now, only 'bred' is supported\n            type: bred\n\n            # Optional, the name of the session to use. Defaults to the 'type'\n            # attribute\n            session: my other session\n\n\n        # Another account...\n        YYYYYY-YYY:\n            name: Hop\n            type: bred\n\n    # Optional, this lists information to send to the adaptor to authenticate\n    # you. By default, all accounts of the same type will use the same session,\n    # but you can specify any number of sessions you want\n    sessions:\n\n        # Default session informations to use with the 'bred' adaptor\n        bred:\n\n            # Optional, you identifier. bank will prompt it if you don't\n            # provide one.\n            identifier: fred\n\n            # Optional, you password. bank will prompt it if you don't provide\n            # one.\n            password: xxx\n\n        my other session:\n            identifier: toto\n\n\nLicense\n=======\n\nCopyright (C) 2014 Benoît Zugmeyer \u003cbenoit@zugmeyer.com\u003e\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program.  If not, see \u003chttp://www.gnu.org/licenses/\u003e.\n\n\n.. _yaml: http://yaml.org/\n.. _bred: http://bred.fr/\n.. _sqlite3 fts extension: http://www.sqlite.org/fts3.html\n.. _this issue: https://bitbucket.org/fdik/pypeg/issue/23/host-pypeg-on-pypi\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenoitzugmeyer%2Fbank","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbenoitzugmeyer%2Fbank","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenoitzugmeyer%2Fbank/lists"}