{"id":14156395,"url":"https://github.com/utkuufuk/budget-cli","last_synced_at":"2025-04-13T02:32:58.511Z","repository":{"id":107371511,"uuid":"156103145","full_name":"utkuufuk/budget-cli","owner":"utkuufuk","description":"Manage your Google budget spreadsheets from terminal","archived":false,"fork":false,"pushed_at":"2022-09-08T00:48:29.000Z","size":2692,"stargazers_count":34,"open_issues_count":1,"forks_count":6,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-26T20:55:41.653Z","etag":null,"topics":["budget-tool","cli-app","google-spreadsheet","google-spreadsheet-api"],"latest_commit_sha":null,"homepage":"https://utkuufuk.com/2018/11/10/budget-cli","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/utkuufuk.png","metadata":{"files":{"readme":"README.md","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,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-11-04T16:42:18.000Z","updated_at":"2023-12-27T21:23:20.000Z","dependencies_parsed_at":"2023-03-08T20:30:59.927Z","dependency_job_id":null,"html_url":"https://github.com/utkuufuk/budget-cli","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utkuufuk%2Fbudget-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utkuufuk%2Fbudget-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utkuufuk%2Fbudget-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utkuufuk%2Fbudget-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/utkuufuk","download_url":"https://codeload.github.com/utkuufuk/budget-cli/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248657830,"owners_count":21140842,"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":["budget-tool","cli-app","google-spreadsheet","google-spreadsheet-api"],"created_at":"2024-08-17T08:05:25.985Z","updated_at":"2025-04-13T02:32:58.239Z","avatar_url":"https://github.com/utkuufuk.png","language":"Python","readme":"# budget-cli\n * insert/edit transaction entries\n * view transaction logs \u0026 summary\n * synchronize with annual budget\n * only configure once in a year\n\n![Demo](demo.gif)\n\n## Preliminaries\n 1. Create *monthly budget* spreadsheets for each month from the [spreadsheet template gallery](https://docs.google.com/spreadsheets/u/0/?ftv=1\u0026folder=0ACoSgW1iveL-Uk9PVA).\n\n 2. Optionally, create an additional *annual budget* spreadsheet if you want to use the synchronization feature.\n\n 3. Take note of the SPREADSHEET_IDs which is embedded inside the URL:\n``` cmd\nhttps://docs.google.com/spreadsheets/d/\u003cSPREADSHEET_ID\u003e/edit#gid=\u003cSHEET_ID\u003e\n```\n\n## Install\n 1. Complete steps 1 in the [quickstart guide](https://developers.google.com/sheets/api/quickstart/python). Make sure that you copy the **`credentials.json`** file into **project directory.**\n\n 2. Update spreadsheet IDs inside [config.json](config.json) with your own monthly budget spreadsheet IDs.\n\n 3. From project directory:\n``` sh\n./install.sh\n```\n \n## Uninstall\n``` sh\n./uninstall.sh\n```\n\n## Usage\n * For `summary`, `categories`, `log` and `sync` commands, this month's spreadsheet will be used unless specified explicitly.\n\n * For `expense` and `income` commands, today's date will be assumed and this month's spreadsheet will be used unless date is specified explicitly.\n\n * For `edit` command, the transaction date will stay the same and this month's spreadsheet will be used unless date is specified explicitly, in which case the month will be determined accordingly.\n\n### Transaction Entry\n``` sh\n# insert expense transaction in June budget\nbudget expense \"Jun 29, 40, Pizza, Food\"\n\n# insert expense transaction for today in this month's budget\nbudget expense \"40, Pizza, Food\"\n\n# insert income transaction in August budget\nbudget income \"Aug 2, 3000, Salary, Paycheck\"\n\n# insert income transaction for today in this month's budget\nbudget income \"3000, Salary, Paycheck\"\n\n# edit 4th income transaction in this month's budget (see `budget log` for transaction number)\nbudget edit income 4 \"65, Tax Return, Other\"\n\n# edit 5th expense transaction in September budget (see `budget log sep` for transaction number)\nbudget edit expense 5 \"Sep 17, Mobile Plan, Communication\"\n\n# execute all transaction commands within ./example.txt (path can be relative or absolute)\nbudget insert ./example.txt\n```\n\nHere's what an input file might look like when using the `insert` command:\n```txt\nexpense \"Jun 29, 40, Pizza, Food\"\nexpense \"40, Pizza, Food\"\nincome \"Aug 2, 3000, Salary, Paycheck\"\nincome \"3000, Salary, Paycheck\"\n```\n\n\n### Summary\n``` sh\n# print monthly budget summary for all months so far\nbudget summary\n\n# print monthly budget summary for January\nbudget summary jan\n```\n\n### Categories\n``` sh\n# list all monthly budget categories \u0026 amounts for this month\nbudget categories\n\n# list all monthly budget categories \u0026 amounts for February\nbudget categories feb\n```\n\n### Log\n``` sh\n# log monthly budget transaction history for this month\nbudget log\n\n# log monthly budget transaction history for March\nbudget log mar\n```\n\n### Annual Budget Synchronization\nIn order to synchronize with annual budget, expense \u0026 income categories must be exactly the same across all monthly budget spreadsheets and the annual budget spreadsheet.\n\n``` sh\n# update annual budget with expenses \u0026 income of this month\nbudget sync\n\n# update annual budget with expenses \u0026 income of April\nbudget sync apr\n```\n","funding_links":[],"categories":["others"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Futkuufuk%2Fbudget-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Futkuufuk%2Fbudget-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Futkuufuk%2Fbudget-cli/lists"}