{"id":18133345,"url":"https://github.com/andreapavoni/cash_cli","last_synced_at":"2025-10-13T05:04:29.599Z","repository":{"id":136326958,"uuid":"263259231","full_name":"andreapavoni/cash_cli","owner":"andreapavoni","description":"Basic CLI app to track personal financing written in #Rust","archived":false,"fork":false,"pushed_at":"2022-05-26T16:00:56.000Z","size":48,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-06T16:24:29.501Z","etag":null,"topics":["cli-app","rust"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andreapavoni.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2020-05-12T07:03:09.000Z","updated_at":"2022-01-27T10:43:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"3159138a-8aab-4e11-b4a9-8f11aee279b8","html_url":"https://github.com/andreapavoni/cash_cli","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/andreapavoni/cash_cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreapavoni%2Fcash_cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreapavoni%2Fcash_cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreapavoni%2Fcash_cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreapavoni%2Fcash_cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andreapavoni","download_url":"https://codeload.github.com/andreapavoni/cash_cli/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreapavoni%2Fcash_cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275014094,"owners_count":25390622,"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","status":"online","status_checked_at":"2025-09-13T02:00:10.085Z","response_time":70,"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":["cli-app","rust"],"created_at":"2024-11-01T13:07:29.573Z","updated_at":"2025-10-13T05:04:24.559Z","avatar_url":"https://github.com/andreapavoni.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cash\n\nSimple, experimental CLI app to track personal finances. It's starting as a way to learn\nand train myself with Rust.\n\n## Dependencies\n\nYou need SQLite installed.\n\n## Quick setup\n\n```\ncargo install diesel_cli --no-default-features --features sqlite\ndiesel migration run\ncargo build\ncargo test\ntarget/debug/cash -h\n```\n\n### Simple usage\n\n```\n# manually add records\ntarget/debug/cash record withdraw -a \"1000\" --category \"Lifestyle\" --label \"Club\" -d \"2020-05-27\" -D \"Dancing\"\n\n# import demo data (may 2020)\ntarget/debug/cash import data.demo.csv\n\n# import demo template for recurrent records\ntarget/debug/cash import template.demo.csv --template\n\n# List records for may 2020\ntarget/debug/cash list -m 5 -y 2020\n\n+----------------+--------------+------------+-------------+---------------+\n| Date           | Category     | Label      | Description |               |\n+----------------+--------------+------------+-------------+---------------+\n| 2020-05-02     | Bills        | Services   | iCloud      |     -1,00 €   |\n+----------------+--------------+------------+-------------+---------------+\n| 2020-05-04     | Bills        | Services   | Netflix     |    -16,00 €   |\n+----------------+--------------+------------+-------------+---------------+\n| 2020-05-08     | Bills        | Internet   | May 2020    |    -60,00 €   |\n+----------------+--------------+------------+-------------+---------------+\n| 2020-05-08     | Bills        | Mobile     | May 2020    |     -8,00 €   |\n+----------------+--------------+------------+-------------+---------------+\n| 2020-05-10     | Earnings     | Paycheck   | April 2020  |  5 000,00 €   |\n+----------------+--------------+------------+-------------+---------------+\n| 2020-05-13     | Fundamentals | Car        | Diesel      |    -20,00 €   |\n+----------------+--------------+------------+-------------+---------------+\n| 2020-05-20     | Extra        | Bank       | Mortgage    |   -600,00 €   |\n+----------------+--------------+------------+-------------+---------------+\n| 2020-05-23     | Lifestyle    | Restaurant | Ice cream   |     -1,00 €   |\n+----------------+--------------+------------+-------------+---------------+\n| 2020-05-23     | Optional     | Shopping   | Covid mask  |     -8,00 €   |\n+----------------+--------------+------------+-------------+---------------+\n| 2020-05-25     | Bills        | Energy     | May 2020    |   -100,00 €   |\n+----------------+--------------+------------+-------------+---------------+\n| 2020-05-25     | Fundamentals | Car        | Check       |   -250,00 €   |\n+----------------+--------------+------------+-------------+---------------+\n| 2020-05-27     | Bills        | Services   | Spotify     |    -10,00 €   |\n+----------------+--------------+------------+-------------+---------------+\n| 2020-05-28     | Fundamentals | Car        | Diesel      |    -20,00 €   |\n+----------------+--------------+------------+-------------+---------------+\n| 2020-05-31     | Optional     | Shopping   | Tshirt      |    -25,00 €   |\n+----------------+--------------+------------+-------------+---------------+\n| 2020-05-31     | Family       | Kids       | Doll        |    -10,00 €   |\n+----------------+--------------+------------+-------------+---------------+\n| 2020-05-31     | Family       | Kids       | Robot       |    -10,00 €   |\n+----------------+--------------+------------+-------------+---------------+\n+----------------+--------------+------------+-------------+---------------+\n| Total earnings |              |            |             |  5 000,00 €   |\n+----------------+--------------+------------+-------------+---------------+\n| Total expenses |              |            |             | -1 139,00 €   |\n+----------------+--------------+------------+-------------+---------------+\n| Total          |              |            |             |  3 861,00 €   |\n+----------------+--------------+------------+-------------+---------------+\n\n\n# report for may 2020 by grouped by categories\ntarget/debug/cash report -m 5 -y 2020\n\n+--------------+--------------+\n| Fundamentals |  -290,00 €   |\n+--------------+--------------+\n| Extra        |  -600,00 €   |\n+--------------+--------------+\n| Optional     |   -33,00 €   |\n+--------------+--------------+\n| Lifestyle    |    -1,00 €   |\n+--------------+--------------+\n| Family       |   -20,00 €   |\n+--------------+--------------+\n| Bills        |  -195,00 €   |\n+--------------+--------------+\n| Earnings     | 5 000,00 €   |\n+--------------+--------------+\n+--------------+--------------+\n| Total        | 3 861,00 €   |\n+--------------+--------------+\n\n# report for may 2020 grouped by labels in category \"Bills\"\ntarget/debug/cash report -m 5 -y 2020 -c Bills\n\n+----------+-------------+\n| Mobile   |   -8,00 €   |\n+----------+-------------+\n| Internet |  -60,00 €   |\n+----------+-------------+\n| Energy   | -100,00 €   |\n+----------+-------------+\n| Services |  -27,00 €   |\n+----------+-------------+\n+----------+-------------+\n| Total    | -195,00 €   |\n+----------+-------------+\n```\n\nIt's still _heavily work in progress_, but it works. See TODO below.\n\n## TODO\n\n- [x] write a better README with some fancy example output\n- [ ] Basic features + ideas/iterations\n  - [x] record withdraw\n  - [x] record deposit\n    - [ ] use normal price, not cents\n  - [x] list records (by month and/or category)\n    - [ ] set month and/or year from-to ranges (maybe -M and -Y?)\n  - [x] report stats (by month and/or category)\n    - [ ] set month and/or year from-to ranges (maybe -M and -Y?)\n  - [x] import from CSV\n    - [x] provide CSV files for demos data\n    - [x] templates to import operations: sets same date day and current month + year\n      - [ ] set month and/or year on the CLI options\n  - [ ] export to CSV\n- [ ] (re)write proper tests\n- [ ] remove all those `unwrap()`s and add better error handling\n\n## MAYBE\n\n- [ ] multiple containers to move money around (aka: `wallet`) ?\n  - keep a balance (total and/or for each wallet)\n- [ ] remote server for storage/sync (aka `cloud`)\n  - users and API keys\n  - no web ui OR barebones equivalent of a CLI ?\n    - same features as API and hypothetichal web UI like the CLI app\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreapavoni%2Fcash_cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandreapavoni%2Fcash_cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreapavoni%2Fcash_cli/lists"}