Your training cockpit.
Every fitness format.
Whether you train or you build — pick your path.
Train with Kaiord
Plan your week on a calendar, talk to an assistant that acts, sync Garmin & WHOOP. No code, no account, no cloud.
Build with the SDK
Convert between FIT, TCX, ZWO & Garmin in 4 lines of TypeScript. Strategy pattern, your adapters.
import { fromBinary, fitReader } from '@kaiord/fit'
import { toText, tcxWriter } from '@kaiord/tcx'
const krd = await fromBinary(file, fitReader)
const tcx = await toText(krd, tcxWriter)
For athletes
Your week is the cockpit.
Every session shows its whole story — planned by your coach, adjusted by AI, pushed to your watch, matched against what you actually did.
Visual workout editor
Drag-and-drop steps, intervals, and targets into structured sessions. Real-time validation and stats.
Session lifecycle at a glance
Badges trace each workout from plan to execution — coach origin, AI adjustments, on your watch, done and matched.
Library & templates
Save any session as a template, schedule it from the library, and reuse it all season.
Conversational-first
Don't fill forms. Just say it.
The assistant doesn't just answer — it acts on your data.
Natural-language workouts
Describe a session in plain language — Kaiord builds it around your power, HR, and pace zones with Claude, GPT, or Gemini.
Actions, not just answers
Push workouts to your watch, pull activities, reshuffle your week — straight from the conversation.
Your model, your key
Bring your own API key. Conversations stay per-profile in your browser — and they're searchable.
Health hub
From sleep score to blood work.
Recovery, sleep, HRV, weight and activity flow in automatically from WHOOP and Garmin — every data point wears its source. And your lab reports live here too.
Automatic ingestion
WHOOP recovery and sleep, Garmin activity, manual entry — merged with a source badge on every data point.
Trends
Time-series charts for every health metric — sleep, weight, HRV, recovery, activity.
Lab analytics
Log blood panels — 55+ parameters with reference ranges, out-of-range flags, and evolution charts.
Nutrition & energy balance
Track intake against expenditure and see your daily energy balance.
The data hub
You decide where your data flows.
A routing matrix connects every source to every destination — Garmin, WHOOP, Train2Go, manual entry. Pick priorities per data type and see exactly what synced, when, and from where.
One-tap Garmin sync
Push planned workouts straight to your watch, and pull completed activities back — no server in between.
Bridges, not middlemen
Garmin, WHOOP and Train2Go connect through browser extensions using your own session — no OAuth proxy in the middle.
Source priorities
Several sources for the same data type? Set the order once — routing is enforced, with visible sync status.
The hub model
One hub. Every format.
KRD is the canonical format. Every conversion flows through it — lossless and round-trip safe.
For developers
Convert fitness data in 4 lines.
Strategy pattern — bring your own adapters. Type-safe end to end.
npm i @kaiord/core
import { fromBinary, fitReader } from '@kaiord/fit'
import { toText, tcxWriter } from '@kaiord/tcx'
const krd = await fromBinary(file, fitReader)
const tcx = await toText(krd, tcxWriter)
TypeScript-first
Strict types, Zod schemas, full IntelliSense. No
any.
Hexagonal architecture
Clean boundaries. Domain never depends on infrastructure.
Plugin system
Strategy pattern: inject your own readers and writers.
CLI
Convert files from your terminal. Pipe-friendly.
MCP server
Convert, validate & inspect via Model Context Protocol — Claude, Cursor & more.
5 format adapters
FIT, TCX, ZWO, GCN, KRD. All round-trip safe.
No servers. No accounts. No cloud.
Everything runs locally or in-browser. Your data lives in IndexedDB on your device; integrations run through browser extensions using your own sessions; the CLI and MCP server run on your machine. Nothing leaves your device unless you turn on sync with your own Google Drive.
Open source
Built in the open.
MIT licensed. Contributions welcome.