Skip to content

nikil0dion/garmin-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

garmin-cli

CLI for logging Garmin Connect health data to markdown with structured JSON storage.

Features

  • Auth management — login, status, auto-refresh tokens
  • Health logging — daily reports, sleep, stress, summary
  • Activity logging — detailed activity analysis
  • Markdown output — monthly files with formatted reports
  • JSON storage — raw data for analysis

Installation

go install github.com/nikil0dion/garmin-cli/cmd/garmin-cli@latest

# Or build from source
go build -ldflags="-w -s" -trimpath -o garmin-cli ./cmd/garmin-cli

Configuration

Environment Variables (Recommended)

# Credentials for login/refresh
export GARMIN_EMAIL="your@email.com"
export GARMIN_PASSWORD="your-password"

# Optional
export GARMIN_DATA_DIR="/path/to/data"
export GARMIN_LOG_LEVEL="info"          # error, warn, info, debug

# Token (exported via `garmin-cli auth export`)
export GARMIN_TOKEN="base64-encoded-token"

Priority: env vars > config.json > defaults

Config File (Fallback)

~/.config/garmin-cli/config.json:

{
  "email": "your@email.com",
  "password": "your-password",
  "data_dir": "/path/to/data"
}

Usage

Authentication

# Login
garmin-cli auth login your@email.com

# Check status
garmin-cli auth status

# Auto-refresh token (for cron)
garmin-cli auth refresh

Logging

# Full daily report (sleep + body battery + stress + summary)
garmin-cli log daily
garmin-cli log daily yesterday
garmin-cli log daily 2024-01-15

# Individual reports
garmin-cli log sleep
garmin-cli log stress
garmin-cli log summary

# Activity (latest or by ID)
garmin-cli log activity
garmin-cli log activity 21929289091

Output

Data is saved to:

  • Markdown: ~/.local/share/garmin-cli/markdown/YYYY-MM.md
  • JSON: ~/.local/share/garmin-cli/json/TIMESTAMP_TYPE.json

Example Output

💤 СОН (2024-01-15)

Всего: 7.2ч
Качество: 85% хорошо ✅

Фазы:
• Глубокий: 1.8ч
• REM: 1.5ч
• Лёгкий: 3.9ч

❤️ Средний пульс: 52 bpm

Cron Setup

# Refresh token and log daily at 8 AM
0 8 * * * garmin-cli auth refresh && garmin-cli log daily

License

MIT

About

Garmin Connect CLI — health data to markdown via env-based auth

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors