Your weather station in your terminal. Because sometimes you just need to know the CO2 level without opening an app.
netatmo is a lightweight CLI tool built with Cobra and Go that lets you fetch data from your Netatmo Weather Station right in your terminal.
- π Status β Full dashboard with all readings at once
- π‘οΈ Temperature β Indoor and outdoor readings
- π§ Humidity β Indoor and outdoor levels
- π«οΈ CO2 β Carbon dioxide concentration
- π Noise β Sound level in decibels
- π Pressure β Atmospheric pressure
- πΆ WiFi β Signal strength monitoring
- βοΈ Firmware β Device firmware info
- π Secure Auth β OAuth2 with automatic token refresh
- π Shell Completion β Bash, Zsh, and Fish support
- Go 1.24 or later
- A Netatmo Weather Station
- A Netatmo developer account at dev.netatmo.com
go install github.com/mariusbreivik/netatmo@latestDownload pre-built binaries for your platform from the Releases page.
# Clone the repo
git clone https://github.com/mariusbreivik/netatmo.git
cd netatmo
# Build it
go build -o netatmo .All configuration lives in one file: ~/.netatmo-config.json
Step 1: Set up your API credentials
- Head to dev.netatmo.com/apps
- Create an app (or use an existing one)
- Grab your Client ID and Client Secret
netatmo configure
# Follow the prompts, or use flags:
netatmo configure --client-id YOUR_ID --client-secret YOUR_SECRETStep 2: Authenticate
- In your app on dev.netatmo.com, scroll to Token generator
- Select scope
read_stationand click Generate Token - Copy both the access token and refresh token
netatmo login
# Follow the prompts, or use flags:
netatmo login --access-token YOUR_TOKEN --refresh-token YOUR_REFRESHπ‘ Pro tip: Tokens auto-refresh when they expire. Set it and forget it!
netatmo statusExample output:
π Living Room Station
βββββββββββββββββββββββββββββββββββββββββββββββββββ
π Indoor (Indoor)
βββββββββββββββββββββββββββββββββ
π‘οΈ Temperature 22.5Β°C β
π§ Humidity 45%
π«οΈ CO2 892 ppm
π Noise 42 dB
π³ Outdoor (Outdoor)
βββββββββββββββββββββββββββββββββ
π‘οΈ Temperature 8.3Β°C β
π§ Humidity 67%
π Battery 87% π
π System
βββββββββββββββββββββββββββββββββ
π Pressure 1013.2 hPa β
πΆ WiFi Good πΆ
βοΈ Firmware 181
β±οΈ Last updated: 2 minutes ago
# Indoor temperature
netatmo temp --indoor
netatmo temp -i
# Outdoor temperature
netatmo temp --outdoor
netatmo temp -onetatmo humidity --indoor # or -i
netatmo humidity --outdoor # or -onetatmo co2πΏ Keep it under 1000 ppm for a happy brain!
netatmo noiseπ Measured in decibels. Library quiet? Or rock concert?
netatmo pressureπ Atmospheric pressure for weather nerds.
# Bash
netatmo completion bash > /etc/bash_completion.d/netatmo
# Zsh
netatmo completion zsh > "${fpath[1]}/_netatmo"
# Fish
netatmo completion fish > ~/.config/fish/completions/netatmo.fishUsage:
netatmo [command]
Available Commands:
co2 Read CO2 data from netatmo station
completion Generate shell autocompletion scripts
configure Configure Netatmo API credentials
firmware Read firmware data from netatmo station
help Help about any command
humidity Read humidity data from netatmo station
login Store Netatmo API tokens for authentication
noise Read noise data from netatmo station
pressure Read pressure data from netatmo station
status Display a full dashboard of your weather station
temp Read temperature data from netatmo station
version Print version and build information
wifi Read wifi data from netatmo station
Flags:
-v, --verbose Enable verbose/debug output
--json Output in JSON format
--no-color Disable colored output
-h, --help Show help
Want to contribute? Awesome! π
# Clone
git clone https://github.com/mariusbreivik/netatmo.git
cd netatmo
# Show available commands
make help
# Run tests
make test
# Run linter
make lint
# Build with version info
make build
# Run
./netatmo --help
./netatmo versionThe version command shows build information:
$ netatmo version
netatmo v0.2.51
Commit: af203f8
Built: 2026-02-13T20:49:34Z
Go version: go1.25.6
OS/Arch: darwin/arm64
$ netatmo version --short
v0.2.51
$ netatmo version --json
{
"version": "v0.2.51",
"commit": "af203f8",
...
}Made with β and curiosity