Cloudcash
Cloudcash is an open source, part CLI, part GUI tool that allows checking the current usage/billing information on a variety of different cloud service providers, including Amazon AWS, DigitalOcean, Vultr and others!
Project
Check your cloud spending from the CLI, from Waybar, and from the macOS menu bar!
Waybar
macOS menu bar
Supported cloud services
- Alibaba Cloud (have no account ¯\(ツ)/¯ )
- Amazon Web Services
- DigitalOcean
- GitHub
- Google Cloud Platform (have no account ¯\(ツ)/¯ )
- Heroku (have no account ¯\(ツ)/¯ )
- Hetzner Cloud (no billing API yet)
- Microsoft Azure (have no account ¯\(ツ)/¯ )
- Oracle Cloud (have no account ¯\(ツ)/¯ )
- Render (no billing API yet)
- Vultr
- suggest a new one!
Build
go build .
Configuration
Only add the services that you want to use and delete all the others:
cat ~/.config/cloudcash.toml
[Waybar]
Pango = " {{.Name}} <span color='#aaaaaa'>${{.Status.CurrentCharges}}</span> [<span color='#aaaaaa'>${{.Status.PreviousCharges}}</span>]"
PangoJoiner = " · "
[Menu]
Template = "{{.Name}} ${{.Status.CurrentCharges}}"
Joiner = " · "
IsDefault = false
[Service]
[Service.Vultr]
APIKey = "XXXX"
[Service.DigitalOcean]
APIKey = "XXXX"
[Service.AWS]
AWSAccessKeyID = "AAAA"
AWSSecretAccessKey = "XXXX"
Region = "us-east-1"
[Service.GitHub]
APIKey = "XXXX"
Users = [
"mrusme"
]
Orgs = [
"paper-street-soap-co"
]
Alternative paths for configuration file:
/etc/cloudcash.toml
$XDG_CONFIG_HOME/cloudcash.toml
$HOME/.config/cloudcash.toml
$HOME/cloudcash.toml
./cloudcash.toml
Note regarding GitHub: You can specify multiple users/orgs, which are queried and added up to one total amount. Calculation is done locally, based on the paid minutes reported by the GitHub API and the officially available numbers, and could be off to a certain degree, due to additional costs that might have incurred on GitHub.
Waybar
The Pango
template used in the -waybar-pango
output is used per service,
separated by the PangoJouner
string. To make it clear, if Pango
is
<span>{{.Name}}</span>
and PangoJoiner
is -
then the output for two
services (e.g. Vultr and AWS) would be:
<span>Vultr</span> - <span>AWS</span>
The Pango
configuration uses Go’s
text/template
.
macOS menu bar
The Template
in Menu
is what is used to render the macOS menu bar widget. As
with the Waybar output, the template is per service, separated by
the Joiner
string. Unlike the Waybar.Pango
configuration, Menu.Template
does not support Pango, but it can include things like Emojis.
To always run in menu mode, set Menu.IsDefault
to true
.
Use
CLI (text)
cloudcash
CLI (JSON)
cloudcash -json
Waybar
rg -NA6 'cloudcash":' ~/.config/waybar/config
"custom/cloudcash": {
"format": "{}",
"return-type": "json",
"exec": "/usr/local/bin/cloudcash -waybar-pango",
"on-click": "",
"interval": 3600
},
macOS menu bar
cloudcash -menu-mode
Alternatively set Menu.IsDefault
to true
in configuration.
Links
Enjoyed this? Support me via Monero, Bitcoin, Lightning, or Ethereum! More info.