gccli: Instructions file for Claude Code

CLAUDE.md

gccli CLAUDE.md is an instructions file for Claude Code from bpauli/gccli. It costs 3,765 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 for Claude Code

Written for Claude Code: the file is CLAUDE.md. Also seen: mentions CLAUDE.md; mentions Claude Code; mentions AGENTS.md.

This is bpauli/gccli's own configuration. It tells Claude Code how to work on gccli itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything gccli configures →

View source ↗ bpauli/gccli
Reuse

Borrowing it

Nothing to install: this file belongs to bpauli/gccli. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/bpauli/gccli/main/CLAUDE.md
Clone the repo
git clone --depth 1 https://github.com/bpauli/gccli

Made for: Claude Code.

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/github.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/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for gccli CLAUDE.md

Your own site · 80×15
<a href="https://agentmods.dev/instructions/bpauli/gccli/claude-md"><img src="https://agentmods.dev/badge/instructions/bpauli/gccli/claude-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 3,765 This file is loaded in full into every session.
When invoked 3,765 The same file — it is already loaded in full.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
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.03765 $0.03765
Opus 5.5 $0.01506 $0.01506
Sonnet 5.5 $0.00753 $0.00753
Haiku 4.5 $0.00377 $0.00377

Measured yesterday against content hash abc83a536d57, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, 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 yesterday.

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 · 126 lines

How it starts

The opening of the file, as written. The whole thing — 126 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.

Read AGENTS.md before you verify or merge a PR, and before you change command output.

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.go → internal/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). All API client requests and the exercise catalog fetch go through RetryTransport (429 retried for every method within Retry-After, 5xx retried only for GET and HEAD with backoff, because writes may already be saved) over a stall watch per attempt (stallTransport: a request fails with StallError when no data moves for 60 s; a transfer that keeps moving has no time limit) over a clone of http.DefaultTransport. 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 to commands in Globals.UI.
  • internal/errfmt/ — Maps typed errors to user-friendly messages.
  • internal/fit/ — FIT file binary encoding for weight data uploads.
  • internal/testutil/ - Test helpers. TempConfigDir points the config directory at a temp directory.
  • internal/e2e/ — End-to-end tests (build tag e2e) against real Garmin Connect API.

Read the full file on GitHub · 126 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. yesterday Changed · +38 tokens per session abc83a536d57
  2. 7d ago Changed · +94 tokens per session f9afc3047c11
  3. 8d ago Changed · +60 tokens per session 97f73321a530
  4. 9d ago Changed · +93 tokens per session 1a02cff628f3
  5. 10d ago Changed · +1 lines · +160 tokens per session cfb1e97a0b30
  6. 11d ago Changed · +6 lines · +1,016 tokens per session c6fac767fc41
  7. 14d ago Changed · +6 lines · +494 tokens per session 5fb32b293e70
  8. 16d ago Changed · +33 tokens per session 4e9f771365ea
  9. 17d ago Changed · +50 tokens per session d295e51f4c80
  10. 2mo 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 (31 stars, last pushed yesterday), licensed MIT. It adds 3,765 tokens to every session, about $0.0151 per session on Opus 5.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.

Related

Other instructions, from other repositories

vscode buildNext.instructions.md

Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).

microsoft/vscode · 9,715 tokens

next.js AGENTS.md

AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.

vercel/next.js · 7,461 tokens

vscode oss-third-party-notices.instructions.md

Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, cache eligibility and rollout and applying the notice (cutover).

microsoft/vscode · 5,262 tokens

langchain AGENTS.md

AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.

langchain-ai/langchain · 4,680 tokens

vscode copilot-instructions.md

Copilot instructions for microsoft/vscode, covering vs code copilot instructions, project overview, root folders, core architecture (src/ folder) and built-in extensions (extensions/ folder).

microsoft/vscode · 2,750 tokens

deno copilot-instructions.md

Copilot instructions for denoland/deno, covering deno development guide for github copilot, network access, high level overview, key directories and key files to understand first.

denoland/deno · 3,077 tokens