{"id":13581135,"url":"https://github.com/mrusme/cloudcash","last_synced_at":"2025-04-19T17:22:46.972Z","repository":{"id":58456653,"uuid":"531407727","full_name":"mrusme/cloudcash","owner":"mrusme","description":"Check your cloud spending from the CLI, from Waybar, and from the macOS menu bar!","archived":false,"fork":false,"pushed_at":"2025-04-15T17:22:12.000Z","size":1470,"stargazers_count":22,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-15T18:31:24.490Z","etag":null,"topics":["amazon-web-services","aws","cloud","cost","cost-control","digitalocean","macos","macos-menubar","vultr","waybar"],"latest_commit_sha":null,"homepage":"https://xn--gckvb8fzb.com","language":"Go","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/mrusme.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"custom":["https://github.com/mrusme#support"]}},"created_at":"2022-09-01T07:19:22.000Z","updated_at":"2025-04-15T17:22:12.000Z","dependencies_parsed_at":"2022-09-05T08:11:04.236Z","dependency_job_id":"c3c95a92-5be6-4287-b0c6-c89ee984337e","html_url":"https://github.com/mrusme/cloudcash","commit_stats":{"total_commits":27,"total_committers":2,"mean_commits":13.5,"dds":0.03703703703703709,"last_synced_commit":"aa59f3a27de6df1e1b541814aeb397a744aa28cf"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrusme%2Fcloudcash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrusme%2Fcloudcash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrusme%2Fcloudcash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrusme%2Fcloudcash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrusme","download_url":"https://codeload.github.com/mrusme/cloudcash/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249747185,"owners_count":21319694,"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":["amazon-web-services","aws","cloud","cost","cost-control","digitalocean","macos","macos-menubar","vultr","waybar"],"created_at":"2024-08-01T15:01:58.424Z","updated_at":"2025-04-19T17:22:46.923Z","avatar_url":"https://github.com/mrusme.png","language":"Go","funding_links":["https://github.com/mrusme#support"],"categories":["Go","\u003ca name=\"financial\"\u003e\u003c/a\u003eFinancial tools"],"sub_categories":[],"readme":"Cloudcash\n---------\n\nCheck your cloud spending from the CLI, from\n[Waybar](https://github.com/Alexays/Waybar), and from the macOS menu bar!\n\n\n#### Waybar\n![Cloudcash on Waybar](screenshot-waybar.png)\n\n\n#### macOS menu bar\n![Cloudcash on macOS](screenshot-macos.png)\n\n\n#### Supported cloud services\n\n- [ ] [Alibaba\n  Cloud](https://www.alibabacloud.com/help/en/bss-openapi/latest/querybill) *(have no account ¯\\\\_(ツ)_/¯  )*\n- [x] Amazon Web Services\n- [x] DigitalOcean\n- [x] GitHub\n- [ ] [Google Cloud Platform](https://cloud.google.com/go/billing/apiv1) *(have\n  no account ¯\\\\_(ツ)_/¯  )*\n- [ ]\n  [Heroku](https://devcenter.heroku.com/articles/platform-api-reference#team-monthly-usage)\n  *(have no account ¯\\\\_(ツ)_/¯  )*\n- [ ] Hetzner Cloud *(no billing API yet)*\n- [ ] [Microsoft\n  Azure](https://docs.microsoft.com/en-us/azure/cost-management-billing/manage/consumption-api-overview)\n  *(have no account ¯\\\\_(ツ)_/¯  )*\n- [ ] [Oracle\n  Cloud](https://docs.oracle.com/en-us/iaas/Content/Billing/Concepts/costanalysisoverview.htm) *(have no account ¯\\\\_(ツ)_/¯  )*\n- [ ] Render *(no billing API yet)*\n- [x] Vultr\n- [ ] [suggest a new\n  one!](https://github.com/mrusme/cloudcash/issues/new?title=[suggestion]%20New%20cloud%20service%20NAME%20HERE)\n\n\n## Build\n\n```sh\ngo build .\n```\n\n\n## Configuration\n\nOnly add the services that you want to use and delete all the others:\n\n```sh\ncat ~/.config/cloudcash.toml\n```\n\n```\n[Waybar]\nPango = \"  {{.Name}} \u003cspan color='#aaaaaa'\u003e${{.Status.CurrentCharges}}\u003c/span\u003e [\u003cspan color='#aaaaaa'\u003e${{.Status.PreviousCharges}}\u003c/span\u003e]\"\nPangoJoiner = \" · \"\n\n[Menu]\nTemplate = \"{{.Name}} ${{.Status.CurrentCharges}}\"\nJoiner = \" · \"\nIsDefault = false\n\n[Service]\n\n[Service.Vultr]\nAPIKey = \"XXXX\"\n\n[Service.DigitalOcean]\nAPIKey = \"XXXX\"\n\n[Service.AWS]\nAWSAccessKeyID = \"AAAA\"\nAWSSecretAccessKey = \"XXXX\"\nRegion = \"us-east-1\"\n\n[Service.GitHub]\nAPIKey = \"XXXX\"\nUsers = [\n  \"mrusme\"\n]\nOrgs = [ \n  \"paper-street-soap-co\"\n]\n```\n\nAlternative paths for configuration file:\n\n- `/etc/cloudcash.toml`\n- `$XDG_CONFIG_HOME/cloudcash.toml`\n- `$HOME/.config/cloudcash.toml`\n- `$HOME/cloudcash.toml`\n- `./cloudcash.toml`\n\n***Note regarding GitHub:*** You can specify multiple users/orgs, which are\nqueried and added up to one total amount. Calculation is done locally, based on\nthe paid minutes reported by the GitHub API and the [officially available\nnumbers](https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions),\nand could be off to a certain degree, due to additional costs that might have\nincurred on GitHub.\n\n\n### Waybar\n\nThe `Pango` template used in the `-waybar-pango` output is used **per service**,\nseparated by the `PangoJouner` string. To make it clear, if `Pango` is\n`\u003cspan\u003e{{.Name}}\u003c/span\u003e` and `PangoJoiner` is ` - ` then the output for two\nservices (e.g. Vultr and AWS) would be:\n\n```html\n\u003cspan\u003eVultr\u003c/span\u003e - \u003cspan\u003eAWS\u003c/span\u003e\n```\n\nThe `Pango` configuration uses Go's\n[`text/template`](https://pkg.go.dev/text/template).\n\n\n### macOS menu bar \n\nThe `Template` in `Menu` is what is used to render the macOS menu bar widget. As\nwith the [Waybar](#waybar) output, the template is **per service**, separated by\nthe `Joiner` string. Unlike the `Waybar.Pango` configuration, `Menu.Template`\ndoes not support Pango, but it can include things like Emojis.\n\nTo always run in menu mode, set `Menu.IsDefault` to `true`.\n\n\n## Use\n\n\n### CLI (text)\n\n```sh\ncloudcash\n```\n\n\n### CLI (JSON)\n\n```sh\ncloudcash -json\n```\n\n\n### Waybar\n\n```sh\nrg -NA6 'cloudcash\":'  ~/.config/waybar/config\n```\n\n```json\n  \"custom/cloudcash\": {\n    \"format\": \"{}\",\n    \"return-type\": \"json\",\n    \"exec\": \"/usr/local/bin/cloudcash -waybar-pango\",\n    \"on-click\": \"\",\n    \"interval\": 3600\n  },\n```\n\n\n### macOS menu bar \n\n```sh\ncloudcash -menu-mode \n```\n\nAlternatively set `Menu.IsDefault` to `true` in configuration.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrusme%2Fcloudcash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrusme%2Fcloudcash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrusme%2Fcloudcash/lists"}