Skip to content

πŸƒ Open-source toolkit for structured workout data. Unified JSON format (.krd) with conversion tools for FIT, TCX, PWX.

License

Notifications You must be signed in to change notification settings

pablo-albaladejo/kaiord

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

441 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

⏱️ Kaiord β€” Structured Workout Data Toolkit

License: MIT TypeScript

CI codecov npm version npm version Sponsor

Kaiord is an open-source toolkit for structured workout data.

It provides:

  • @kaiord/core: a TypeScript library to read/write .fit, .tcx, .zwo and .krd (Kaiord) files.
  • @kaiord/cli: a command-line tool to convert between formats.
  • Workout SPA Editor: a web application to create and edit workout files visually.

✨ Features

  • Visual Workout Editor - Create and edit workouts in your browser
  • Unified JSON-based format .krd (Kaiord Representation Definition)
  • Schema validation (AJV)
  • Round-trip safe conversions between FIT / TCX / ZWO / KRD
  • Clean architecture & fully typed API

Supported FIT Fields

Workout Metadata

  • Sub-sport categorization: Detailed sport types (trail running, indoor cycling, lap swimming, etc.)
  • Pool dimensions: Pool length and unit for swimming workouts

Workout Steps

  • Coaching notes: Instructional text for each step (max 256 characters)
  • Swimming equipment: Fins, kickboard, paddles, pull buoy, snorkel

Duration Types

  • Time & distance: Standard interval durations
  • Calorie-based: Steps ending after burning specified calories
  • Power-based: Steps ending based on power thresholds (watts)
  • Heart rate conditionals: Steps ending based on HR thresholds (bpm)
  • Repeat conditionals: Repeat blocks until time/distance/calories/HR/power targets reached

Known Limitations

  • Training Stress Score (TSS): The training_peaks_tss duration type is not yet implemented in the FIT converter. This is a TrainingPeaks-specific metric that requires additional mapping logic. Contributions welcome!

πŸ“š Documentation

Comprehensive documentation is available in the /docs directory:

  • Getting Started - Installation, basic usage, and quick examples for both library and CLI
  • Architecture - Hexagonal architecture, ports & adapters pattern, and design principles
  • Testing - Testing strategy, TDD workflow, and coverage requirements
  • Deployment - CI/CD pipeline, GitHub Pages deployment, and npm publishing
  • Contributing - Contribution guidelines, development workflow, and code standards
  • KRD Format - Complete specification of the Kaiord Representation Definition format
  • AI Agents - Guidance for AI-assisted development

🧩 Tech Stack

Layer Tooling
Core TypeScript, tsup, AJV
CLI yargs
Testing Vitest
Package manager pnpm

πŸ— Monorepo Layout

kaiord/
β”œβ”€ packages/
β”‚  β”œβ”€ core/                β†’ library (schema + converters)
β”‚  β”œβ”€ cli/                 β†’ command-line interface
β”‚  └─ workout-spa-editor/  β†’ web application (https://pablo-albaladejo.github.io/kaiord)
β”œβ”€ docs/   β†’ documentation
β”œβ”€ LICENSE
β”œβ”€ README.md
└─ pnpm-workspace.yaml

πŸš€ Quick Start

Try the Web App

Launch Workout Editor β†’

Create and edit workouts visually in your browser. No installation required.

Use the Library

pnpm install
pnpm -r build
pnpm -r test

# Example usage
pnpm kaiord --help

For detailed installation instructions and usage examples, see the Getting Started Guide.


πŸš€ CI/CD Pipeline

Kaiord uses GitHub Actions for continuous integration and deployment:

  • Automated Testing: Multi-version testing on Node.js 20.x and 22.x
  • Code Quality: ESLint, Prettier, and TypeScript strict mode validation
  • Release Automation: Changesets for version management and npm publishing
  • Security: Weekly dependency vulnerability audits

For complete CI/CD documentation, deployment guides, and npm publishing instructions, see Deployment.

Contributing

To contribute to Kaiord:

  1. Fork and clone the repository
  2. Create a feature branch: git checkout -b feature/my-feature
  3. Make your changes following the code style guidelines
  4. Add a changeset: pnpm exec changeset (for version-worthy changes)
  5. Test locally: pnpm -r test and pnpm -r build
  6. Submit a PR: All checks must pass before merging

For detailed contribution guidelines, development workflow, and code standards, see Contributing.


πŸ“š References & Resources

Format Specifications


❀️ Support

If you find Kaiord useful, consider supporting its development:

Your support helps maintain and improve Kaiord for the fitness community!


πŸ“œ License

MIT Β© 2025 Pablo Albaladejo See LICENSE for details.

About

πŸƒ Open-source toolkit for structured workout data. Unified JSON format (.krd) with conversion tools for FIT, TCX, PWX.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages