FreeReps CLAUDE.md

A project guide for FreeReps, a self-hosted health-data server and dashboard that imports data from health and fitness apps. The project also includes an iPhone companion app and an MCP server, and is organized as a monorepo, meaning multiple related parts share one repository.

In plain words
What is it for?
Use it when working on health-data imports, the Go server, the embedded web dashboard, the iPhone app, database formats, or API payloads.
Why use it?
It highlights important build requirements and warns that third-party data formats must follow the project’s specifications or records may be silently lost.

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/meltforce/freereps/claude-md
Clone the repo
git clone --depth 1 https://github.com/meltforce/FreeReps
Per session 2,285 This file is loaded in full into every session.
When invoked 2,285 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 $0.02285 $0.02285
Opus 5 $0.01143 $0.01143
Sonnet 5 $0.00457 $0.00457
Haiku 4.5 $0.00229 $0.00229

Measured 3d ago against content hash c473713b601a, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

FreeReps 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 3d 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 · 197 lines

How it starts

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

FreeReps

Self-hosted server for health data: ingest from Apple Health, Oura and Alpha Progression, storage in PostgreSQL/TimescaleDB, a web dashboard with freely configurable correlations, and an MCP server. It computes no scores and does no coaching — that is a decision, not a gap (DECISIONS.md).

Monorepo. server/ holds the Go binary freereps with the web UI embedded; app/ holds the iOS companion (FreeReps.xcodeproj). Build and run instructions live in server/CLAUDE.md and app/CLAUDE.md, which load only when working under those paths.

Gotchas

  • server/specs/ is the source of truth for wire formatshae-export-format.md, hae-rest-api.md, alpha-progression.md, hevy-api.md, withings-api.md, database-schema.md. Read the spec before changing an ingest path. Why: the payloads come from third-party apps whose shape is not derivable from this repo, and a mismatch surfaces as silently dropped rows rather than an error (see INCIDENTS.md, 2026-04-08).

  • The backend does not compile without server/web/dist. server/web.go embeds it via go:embed. Build the frontend first, or create the stub: mkdir -p server/web/dist && touch server/web/dist/.gitkeep. Why: a missing directory fails the Go build with an embed error that names the directive, not the cause.

  • A metric arriving from two sources needs a unit decision and a source filter. Apple Health and Oura disagree on both units and granularity. Why: both classes of failure have already occurred and neither raised an error — see the 2026-03-25 and 2026-03-26 entries in INCIDENTS.md.

  • What you learn about building or running goes into the CLAUDE.md next to the code, not into this file. Why: server/ and app/ instructions load only for sessions working there; in this file they would load in every session.

Repository & CI/CD

Forgejo is the source of truth: git.coydog-fence.ts.net/meltforce.net/freereps (origin). github.com/meltforce/FreeReps is a push mirror — never push there directly. The mirror is git push --mirror: it force-pushes and prunes refs that don't exist on Forgejo, so anything that must survive on GitHub has to exist on Forgejo first (a GitHub-only branch is deleted at the next sync).

Read the full file on GitHub · 197 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. 3d ago First seen · 197 lines · 2,285 tokens per session scan A c473713b601a

Subscribe to this mod's changes

FreeReps CLAUDE.md is an instructions file published in the GitHub repository meltforce/FreeReps (16 stars, last pushed 23d ago), licensed MIT. It adds 2,285 tokens to every session, about $0.0114 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.