Skip to content

micrus/weigly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

 ██╗    ██╗███████╗██╗ ██████╗ ██╗  ██╗   ██╗
 ██║    ██║██╔════╝██║██╔════╝ ██║  ╚██╗ ██╔╝
 ██║ █╗ ██║█████╗  ██║██║  ███╗██║   ╚████╔╝ 
 ██║███╗██║██╔══╝  ██║██║   ██║██║    ╚██╔╝  
 ╚███╔███╔╝███████╗██║╚██████╔╝███████╗██║   
  ╚══╝╚══╝ ╚══════╝╚═╝ ╚═════╝ ╚══════╝╚═╝   

a terminal weight tracker for people who are too lazy to open a spreadsheet but disciplined enough to open a terminal

Rust License Platform

weigly screenshot


What is this?

weigly is a tiny, fast, opinionated weight tracker that lives entirely in your terminal.

You open it, it shows you your progress. You log your weight, it shows you your progress. That's it. No account, no cloud, no subscription, no app that somehow costs $9.99/month for a graph and a sad emoji.

It draws a proper braille-dot chart, a sparkline, and optionally a little ASCII figure of you — that gets visibly thinner as you get closer to your goal. Because you deserve visual feedback that isn't a boring number.


Features

  • Braille line chart — the highest resolution you can get in a terminal, courtesy of ratatui
  • Sparkline — compact at-a-glance trend for the last N days
  • Mood face — 5 expressions from (>.<) at the start to (*O*) at goal — honest feedback, no gym selfies required
  • Day tags — mark workout days (--wo) and cheat days (--cheat) directly on the chart
  • Multi-user profiles — track yourself and whoever else lives with you
  • True-color theming — any #rrggbb hex value, pairs beautifully with catppuccin, nord, gruvbox
  • XDG-compliant storage — plain CSV + TOML, no database, fully portable
  • Single static binary — ~2.5 MB, zero runtime dependencies, installs in seconds

Install

From source (requires Rust)

git clone https://github.com/micrus/weigly
cd weigly
cargo install --path .

That's it. The weigly binary lands in ~/.cargo/bin/, which should already be in your $PATH if you have Rust installed.

Don't have Rust?

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"

Uninstall

# Remove the binary
cargo uninstall weigly

# Remove your data and config (optional — your data, your choice)
rm -rf ~/.config/weigly
rm -rf ~/.local/share/weigly

That's a clean slate. No leftover daemons, no registry entries, no feelings.


Quick Start

First run auto-detects that you're new and walks you through a short setup:

weigly
  Welcome to weigly! Let's get you set up.

  Your name: Michele
  Unit (kg/lbs): kg
  Goal weight (kg): 75

  Nice! Profile saved. Now log your first weight:
  weigly log <weight>

Then log your first weight:

weigly log 82.5

And from now on, just run weigly to see your recap.


Commands

weigly                       # show your progress recap
weigly log 78.5              # log today's weight
weigly log --wo              # today was a workout day (no weight needed)
weigly log --cheat           # cheat day — logged, no judgment
weigly log 78.5 --wo --cheat # weight + both tags (you monster)
weigly init                  # reset and reconfigure your profile
weigly --user girlfriend     # use a different profile
weigly --no-art              # hide the mood face (minimalist mode)
weigly --help                # show all options

What shows up when you run weigly

Michele  ▸  79.2 kg  →  goal 75.0 kg  (−4.2 to go)
████▇▇▆▆▆▅▅▄▄▄▄▃▃▃▂▂▂▁▁▁▁▁▁▁▁▁▁   ← sparkline (lower = lighter = taller bar)

  82.5 ┤╮
       │╰─╮
  80.0 ┤  ╰──╮  W
       │      ╰──╮
  78.0 ┤          ╰─●   ← you are here
  ·····················── goal (75.0 kg)
       Apr 01          Apr 12
       W = workout

 (^_-)      ← getting there
  ---

Multi-User Profiles

Every profile is fully isolated — its own config, its own log, its own goal, its own figure, its own theme.

# Set up a second profile
weigly init --user girlfriend

# Log for that profile
weigly --user girlfriend log 63.0 --wo

# View that profile's recap
weigly --user girlfriend

Profiles are stored at ~/.config/weigly/profiles/<name>.toml and logs at ~/.local/share/weigly/logs/<name>.csv.


Theming

weigly uses true-color (#rrggbb) for everything. Edit your profile config to match your terminal aesthetic:

# ~/.config/weigly/profiles/default.toml

[theme]
accent     = "#cba6f7"   # your name and headers
chart_line = "#89b4fa"   # the weight line
goal_line  = "#a6e3a1"   # the goal line
text_dim   = "#6c7086"   # axis labels and secondary text
art_color  = "#f38ba8"   # the ASCII figure

Built-in palettes (just swap the colors):

Theme Preview
catppuccin-mocha #cba6f7 #89b4fa #a6e3a1 #6c7086 #f38ba8
nord #88c0d0 #81a1c1 #a3be8c #4c566a #b48ead
gruvbox #d3869b #83a598 #b8bb26 #928374 #fb4934

Data Format

Your data is plain CSV — no binary blobs, no databases, no proprietary format.

date,weight,tags
2026-04-10,82.5,
2026-04-11,82.1,wo
2026-04-12,81.8,wo:cheat
2026-04-13,,wo

You can edit it, back it up, import it, export it, graph it in Python, or just read it. It's yours.


License

MIT. Do whatever you want with it.


built with Rust and a mild distaste for fitness apps

About

A simple CLI-based weight tracker with plot visualization possibility.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages