Skip to content

Career Growth Tracking

Never lose track of your learning journey. mine grow is a low-friction activity log that compounds into streaks, goal progress, and a self-assessed skill picture — all local, all yours.

  • Learning goals — set goals with optional deadline and target (e.g. 50 hrs of Rust)
  • Activity log — log time spent learning, tagged to a goal and/or skill
  • Streak tracking — consecutive calendar days with at least one activity logged
  • Grace period — logging yesterday but not yet today keeps your streak alive
  • Skill radar — self-assess skill levels 1–5 rendered as ●●●○○
  • Weekly review — summary of activities, goal progress, and streak for the week/month
  • Dashboard — at-a-glance view of streak, active goals, and top skills
Terminal window
# Add a learning goal (target in minutes, since log --minutes is always minutes)
mine grow goal add "Learn Rust" --deadline 2026-06-01 --target 3000 --unit mins
# Log a learning session
mine grow log "Read The Rust Book ch. 3" --minutes 45 --goal 1 --skill Rust
# Check your streak
mine grow streak
# Self-assess a skill
mine grow skills set Rust 3
# Weekly summary
mine grow review

Goals have an optional target value and unit (e.g. mins, sessions). The --unit flag is a display label — --target must be expressed in the same unit you log. Since mine grow log --minutes always tracks minutes, use --unit mins and set your target in minutes (e.g. --target 3000 for ~50 hours). For session-based goals, use --unit sessions and set --target to the number of sessions. Progress is tracked automatically: every mine grow log that references a goal accumulates its minutes toward current_value. You can mark goals complete with mine grow goal done <id>.

Each log entry captures a note, duration in minutes, an optional goal link, and a skill tag. The --minutes flag defaults to the grow.default_minutes config value (if set) or 0.

A streak counts consecutive calendar days with at least one logged activity. If you logged yesterday but haven’t logged today yet, your streak remains active — this prevents the streak from breaking at midnight before you’ve had a chance to log.

Skills are stored as a name, category, and integer level (1–5). The level is displayed as filled/empty dots:

LevelDisplay
1●○○○○
3●●●○○
5●●●●●

All data is stored in the mine SQLite database. Three tables are created automatically: grow_goals, grow_activities, grow_skills. No cloud sync — local first.

Add to ~/.config/mine/config.toml:

[grow]
default_minutes = 30 # Default session length when --minutes is not set