Vibeleaderboard
Index / tool

Garmin Claude Code Tracker

github.com/thejens/garmin-claude
Visit github.com
Category
Developer Tools
Rank
No. 1678Tools index

Previous survey · No. 1653 ·

Pricing
Open Source
Type
TOOL
Builder
thejens
GitHub
15 stars
Date

About

Records your Claude Code AI coding sessions as Garmin fitness activities, displaying real-time metrics like tokens/second, tools/minute, and estimated server watts alongside your heart rate. Syncs to Garmin Connect like any other workout.

What it does

A local Node service watches Claude Code session logs, derives activity signals, and serves them to a sideloaded Garmin app through a Cloudflare tunnel. The watch polls every two seconds, while bearer-key checks protect the activity feed. No Anthropic credentials or API proxying are involved.

Why it's ranked here

The concept has real technical substance, not just novelty. It combines local log processing, authenticated polling, reconnecting tunnels, FIT-compatible activity capture, and Garmin graphs. The catch is substantial setup: users must trust an internet-facing tunnel, build for their device, and sideload an unpublished watch app.

What's good

The service reads existing local logs, so it avoids handling Anthropic credentials. It binds locally, rejects failed authentication as an unknown route, stores configuration with restricted permissions, and supports quick or stable tunnels. Rolling windows produce understandable throughput and tool-use signals, while cursor-based buffering lets lagging watches resynchronize.

Tradeoffs

Estimated server watts are illustrative calculations from assumed joules per token, not measurements. Installation has no manual path and depends on a Claude Code skill. The watch app requires device-specific compilation and sideloading. Windows needs WSL2, stable tunnel addresses need a Cloudflare account, and every session depends on the local daemon and tunnel remaining available.

How to use it well

This suits Garmin-owning Claude Code users who enjoy instrumenting focused coding sessions and accept a hands-on installation. Start with mock data to check the watch interface, then pair a device and switch to local log tailing. Treat the resulting activity as a personal telemetry artifact, not an energy audit, productivity benchmark, or health assessment.

Technical notes+

daemon/src/index.ts defines the Commander CLI with start, stop, status, pair, print-build-config, upgrade-tunnel, and doctor commands. daemon/src/commands/start.ts selects JsonlTailSource or mock generation, feeds daemon/src/ringbuffer.ts, starts the Express service, and manages TunnelManager lifecycle. daemon/src/server.ts exposes unauthenticated /health plus bearer-protected /poll and /ack routes, returning 404 for invalid authentication. daemon/src/metrics/derive.ts parses assistant and user JSONL events, uses 10-second token and 60-second tool windows, hashes file paths with SHA-256, and counts Write and Edit lines. daemon/src/models.ts explicitly labels watt conversion factors as order-of-magnitude estimates. Makefile supplies npm, TypeScript, Vitest, Connect IQ build, simulator, signing-key, and cleanup targets.

Observed

License
MIT
Languages
TypeScript for the Node daemon; Monkey C for the Garmin Connect IQ watch app
Interface
Command-line daemon plus an HTTP polling service for the watch
Installation surface
Clone the repository, run its Claude Code installation skill, compile for a specific Garmin device, and sideload the watch app
Platform support
macOS and Linux; Windows requires WSL2
Network boundary
The daemon binds to localhost and reaches the watch through a Cloudflare Tunnel
Authentication
Generated bearer keys protect polling and acknowledgement endpoints
Watch distribution
Sideloaded only; not submitted to the Connect IQ Store

Read from README.md, Makefile, daemon/src/auth.ts, daemon/src/index.ts, daemon/src/types.ts, daemon/src/server.ts, daemon/src/config.ts, daemon/src/models.ts, daemon/src/tunnel.ts, daemon/src/ringbuffer.ts, daemon/src/mock-source.ts, daemon/src/commands/pair.ts, daemon/src/commands/stop.ts, daemon/src/commands/start.ts, daemon/src/metrics/derive.ts.

What it can do

  • Record Claude AI coding sessions as Garmin fitness activities

    Claude Code AI coding session dataGarmin fitness activity record

  • Display real-time coding metrics during sessions

    Live Claude coding sessionReal-time tokens/second, tools/minute, and estimated server watts on Garmin watch

  • Monitor heart rate during coding sessions

    Garmin watch heart rate sensor dataHeart rate metrics integrated with coding activity

  • Sync coding workout data to Garmin Connect

    Completed Claude coding session activityWorkout data uploaded to Garmin Connect platform

  • Read Claude session files from local system

    Claude's local session filesParsed coding session data

  • Connect to Garmin watch via Cloudflare Tunnel

    Local daemon and Garmin watchSecure connection between app and watch

Tags

garminclaudefitnesscodingaiactivity-trackingdeveloper-wellness

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.