gccli CLAUDE.md

gccli CLAUDE.md is an instructions file for coding agents from bpauli/gccli. It costs 1,727 tokens per session, scanned A, original, MIT.

A repository guide for gccli, a Go command-line program for working with Garmin Connect data such as activities, workouts, health, devices, and goals.

In plain words
What is it for?
Use it when developing or reviewing gccli, running formatting, linting, unit or end-to-end tests, building the program, or preparing changes for commit.
Why use it?
It gives contributors the project structure, build and quality commands, testing options, and requirements for end-to-end tests.

Instructions file

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/bpauli/gccli/claude-md
Clone the repo
git clone --depth 1 https://github.com/bpauli/gccli

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for gccli CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/bpauli/gccli/claude-md.svg)](https://agentmods.dev/instructions/bpauli/gccli/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/bpauli/gccli/claude-md"><img src="https://agentmods.dev/badge/instructions/bpauli/gccli/claude-md.svg" alt="Measured on agentmods" height="20"></a>
Per session 1,727 This file is loaded in full into every session.
When invoked 1,727 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.01727 $0.01727
Opus 5 $0.00864 $0.00864
Sonnet 5 $0.00345 $0.00345
Haiku 4.5 $0.00173 $0.00173

Measured 5d ago against content hash 49b370878d6a, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-05, from the pricing page.

Security

Grade A, and why

gccli CLAUDE.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

CLAUDE.md · 113 lines

How it starts

The opening of the file, as written. The whole thing — 113 lines — stays where its author put it; the contents beside it link to each section on GitHub.

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Project Overview

gccli is a Go CLI (gccli) for interacting with the Garmin Connect API. It covers authentication, activities, workouts, health data, body composition, devices, gear, goals, badges, challenges, profile, hydration, training, and wellness data. Module: github.com/bpauli/gccli.

Build & Quality Commands

make build              # Build binary to ./bin/gccli
make run -- <args>      # Build and run with arguments
make fmt                # Format code (goimports + gofumpt)
make lint               # Run golangci-lint
make test               # Unit tests with race detector
make test-e2e           # E2E tests (requires .env with GARMIN_EMAIL/GARMIN_PASSWORD)
make ci                 # Full CI gate: fmt-check + lint + test
make tools              # Install dev tools to .tools/

Run a single test:

go test -run TestFuncName ./internal/pkg/...

Run E2E tests selectively:

go test -tags=e2e -run TestName -v -count=1 ./internal/e2e/...

All three checks (make fmt, make lint, make test) must pass before committing.

Architecture

Layered structure: cmd/gccli/main.gointernal/cmd/ (CLI commands) → internal/garminapi/ (API client) → internal/garminauth/ (authentication).

Key packages

  • internal/cmd/ — Kong-based CLI commands. Each command is a struct with Run(g *Globals) error. Globals holds context, UI, and account info. resolveClient() loads tokens from the OS keyring and creates an API client.
  • internal/garminapi/ — HTTP client for Garmin Connect. Returns json.RawMessage from API calls (no Go structs for every endpoint). Includes RetryTransport (429/5xx retry with backoff) and CircuitBreaker for resilience. Auto-refreshes OAuth2 tokens on 401.
  • internal/garminauth/ — Garmin SSO authentication. Supports browser-based SSO (local callback server) and headless email/password login with MFA. OAuth1 → OAuth2 exchange flow.
  • internal/secrets/ — OS keyring storage (macOS Keychain, Linux Secret Service, file fallback). Tokens keyed by gccli:token:{email}.
  • internal/config/ — Config file paths and env var overrides.
  • internal/outfmt/ — Output formatting (JSON/Table/Plain). Mode passed via context.
  • internal/ui/ — Terminal UI (colors, prompts) via termenv. Passed via context.
  • internal/errfmt/ — Maps typed errors to user-friendly messages.
  • internal/fit/ — FIT file binary encoding for weight data uploads.
  • internal/testutil/ — Test helpers: mock HTTP servers, test token fixtures.
  • internal/e2e/ — End-to-end tests (build tag e2e) against real Garmin Connect API.

Read the full file on GitHub · 113 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 5d ago First seen · 113 lines · 1,727 tokens per session scan A 49b370878d6a

Subscribe to this mod's changes

gccli CLAUDE.md is an instructions file published in the GitHub repository bpauli/gccli (27 stars, last pushed 5d ago), licensed MIT. It adds 1,727 tokens to every session, about $0.0086 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.