An open API service indexing awesome lists of open source software.

https://github.com/sectore/fit-activities-tui

Activities of FIT files in your terminal. Works nice with @WahooFitness devices.
https://github.com/sectore/fit-activities-tui

bubbletea fit-file golang wahoo

Last synced: 9 months ago
JSON representation

Activities of FIT files in your terminal. Works nice with @WahooFitness devices.

Awesome Lists containing this project

README

          

# fit-activities-tui

**Activities** of **[FIT](https://developer.garmin.com/fit/overview/)** ([Flexible and Interoperable Data Transfer](https://developer.garmin.com/fit/overview/)) files in your **terminal**.

Handles as much FIT files as you want: Summary, details, filter and sort. It's fast. Free and open source.

Works nice with [Wahoo Fitness](http://wahoofitness.com) devices. Tested with [ELEMNT BOLT 3](https://support.wahoofitness.com/hc/en-us/articles/26243351942290-ELEMNT-BOLT-3-2025-Product-Information).

Built with [Go](https://go.dev), [Bubble Tea](https://github.com/charmbracelet/bubbletea/) and ♥.

# Table of Contents

- [Preview](./#preview)
- [CLI](./#cli)
- [Keybindings](./#keybindings)
- [Installation](./#installation)
- [Development](./#development)
- [License](./#license)

# Preview

## Summary


demo

## Review live data (real time)


demo

# CLI

```sh
fit-activities-tui --help
Usage:
fit-activities-tui [flags]

Flags:
-h, --help help for fit-activities-tui
-i, --import string path to single FIT file or directory of FIT files to import
--log enable logging to store logs into 'debug.log'
```

# Keybindings

## Menu

| Key | Description |
| --- | --- |
| m | Toggle menu |

## Actions

| Key | Description |
| --- | --- |
| l | toggle live data |
| ctrl+alt+r | re-import file(s) |
| q | quit |

In `live data` view

| Key | Description |
| --- | --- |
| SPACE | toggle play / pause |
| r | reset current record count |
| ctrl+r | reset all record counts |

## List

| Key | Description |
| --- | --- |
| | previous activity |
| | next activity |
| g | first activity |
| G | last activity |
| or | switch pages |

## Filter

| Key | Description |
| --- | --- |
| / | start filter |
| ENTER | apply filter |
| ESC | cancel filter |

## Sort

| Key | Description |
| --- | --- |
| ctrl+d | sort by distance |
| ctrl+t | sort by start time |

## Live data

| Key | Description |
| --- | --- |
| l | show / hide |
| SPACE | play / pause |
| r | reset current record count |
| ctrl+r | reset all record counts |

While `playing`

| Key | Description |
| --- | --- |
| 1-9 | 1-9x speed |
| 0 | 10x speed |
| right | increase speed |
| ctrl+right | fast forward (ffw) |
| left | decrease speed |

While `paused`

| Key | Description |
| --- | --- |
| right | next record |
| ctrl+right | fast forward (ffw) records |
| left | previous record |
| ctrl+left | rewind (rwd) records |

# Installation

TBD

# Development

## Requirements

### Nix users (recommend)

`cd` into root directory.

If you have [`direnv`](https://direnv.net) installed, run `direnv allow` once to install dependencies. In other case run `nix develop`.

### Non Nix users

- [`Go`](https://go.dev/doc/install)
- [`Staticcheck`](https://staticcheck.dev)
- [`just`](https://just.systems)

```sh
just
Available recipes:
default # list commands

[demo]
demo # Build an animated `demo.gif`. Run this command with $IMPORT_PATH={directory-of-FIT-files} defined to point to FIT files you want to use for the demo. [alias: d]

[dev]
run path # Runs the app by importing FIT files from given path. [alias: r]
```

### Build

TBD

# License

[MIT License](./LICENSE)