Skip to content

Why Kaiord?

The problem

Fitness data is fragmented. Garmin uses FIT (binary), TrainingPeaks uses TCX (XML), Zwift uses ZWO (XML), and Garmin Connect has its own JSON API. If you need to convert a FIT file to TCX in TypeScript, you are on your own -- there is no unified SDK.

Developers end up:

  • Installing separate parsing libraries for each format
  • Writing custom glue code to convert between them
  • Losing data during conversions because formats have different capabilities
  • Maintaining fragile pipelines that break when SDKs update

Kaiord's approach

Kaiord defines KRD (Kaiord Representation Definition), a canonical JSON format that captures the superset of all supported formats. Every conversion goes through KRD:

FIT ──> KRD ──> TCX
ZWO ──> KRD ──> FIT
GCN ──> KRD ──> ZWO

This means:

  • One SDK for reading and writing all formats
  • Round-trip safe conversions with defined tolerances
  • Type-safe -- every field is validated with Zod schemas
  • Extensible -- add new formats without changing existing code

How Kaiord compares

CapabilityIndividual parsersKaiord
Read FIT files@garmin/fitsdk@kaiord/fit
Read TCX filesfast-xml-parser + custom code@kaiord/tcx
Read ZWO filesManual XML parsing@kaiord/zwo
Garmin Connect API formatCustom JSON mapping@kaiord/garmin
Convert between formatsDIY glue codefromBinary / toText
Round-trip validationNot availableBuilt-in validate command
TypeScript typesPartial or noneFull Zod schemas
CLI toolBuild your own@kaiord/cli
AI/LLM integrationNot available@kaiord/mcp

Who is Kaiord for?

  • Developers building fitness apps that need to import/export workout files
  • Data engineers processing Garmin, Zwift, or TrainingPeaks data pipelines
  • Coaches who want to convert workout plans between platforms programmatically
  • AI builders integrating fitness data into LLM workflows via MCP

Search-friendly terms

If you searched for any of these, Kaiord is what you need:

  • Convert FIT file to TCX in TypeScript
  • Parse Garmin FIT files in Node.js
  • Zwift workout file converter
  • Garmin Connect workout API TypeScript
  • FIT to JSON converter
  • Fitness file format SDK

Get started

bash
pnpm add @kaiord/core @kaiord/fit @kaiord/tcx

Ready to convert? Follow the Quick Start.