Lifegoals
A command-line devtools toolkit for tracking and managing life goals. Check, validate, generate, format, lint, explain, convert, template, diff, preview, fix, and report on your goals — all from your terminal with persistent logging and full activity history.
Why Lifegoals?
- Works entirely offline — your personal goals never leave your machine
- No external dependencies or accounts needed
- Every action is timestamped and logged for full auditability
- Export your history to JSON, CSV, or plain text anytime
- Simple CLI interface with consistent command patterns
Commands
| Command |
Description |
lifegoals check <input> |
Check goal entries for completeness; view recent checks without args |
lifegoals validate <input> |
Validate goal structure, format, and feasibility |
lifegoals generate <input> |
Generate new goal ideas or milestone breakdowns |
lifegoals format <input> |
Format goal data for readability or presentation |
lifegoals lint <input> |
Lint goals for vague language or missing deadlines |
lifegoals explain <input> |
Explain a goal's structure and progress path |
lifegoals convert <input> |
Convert goal data between different formats |
lifegoals template <input> |
Create or apply goal templates for common objectives |
lifegoals diff <input> |
Diff two goal snapshots to track changes over time |
lifegoals preview <input> |
Preview goal output or milestone timeline |
lifegoals fix <input> |
Auto-fix common issues in goal definitions |
lifegoals report <input> |
Generate a progress report on your goals |
lifegoals stats |
Show summary statistics across all actions |
lifegoals export <fmt> |
Export all logs (formats: json, csv, txt) |
lifegoals search <term> |
Search across all log entries |
lifegoals recent |
Show the 20 most recent activity entries |
lifegoals status |
Health check — version, disk usage, entry count |
lifegoals help |
Show help with all available commands |
lifegoals version |
Print current version (v2.0.0) |
Each data command (check, validate, generate, etc.) works in two modes:
- With arguments — logs the input with a timestamp and saves to its dedicated log file
- Without arguments — displays the 20 most recent entries from that command's log
Getting Started
# See all available commands
lifegoals help
# Check current system status
lifegoals status
# View statistics across all commands
lifegoals stats
Data Storage
All data is stored locally in ~/.local/share/lifegoals/. The directory structure:
check.log, validate.log, generate.log, format.log, etc. — per-command log files
history.log — unified activity log across all commands
export.json, export.csv, export.txt — generated export files
Modify the DATA_DIR variable in script.sh to change the storage path.
Requirements
- Bash 4.0+ (uses
set -euo pipefail)
- Standard Unix tools:
date, wc, du, tail, grep, sed, cat
- Works on Linux and macOS
- No external packages or network access required
When to Use
- Setting new life goals — use
lifegoals generate to brainstorm objectives and lifegoals template to apply proven goal-setting frameworks like SMART goals
- Breaking goals into milestones — run
lifegoals check and lifegoals validate to ensure each goal has clear, actionable steps and deadlines
- Tracking progress over time — use
lifegoals diff to compare goal snapshots at different dates and lifegoals report to generate progress summaries
- Reviewing and refining goals — run
lifegoals lint to catch vague language, then lifegoals fix to tighten up weak goal definitions
- Exporting goal data for sharing — use
lifegoals export and lifegoals convert to transform your goal history into JSON, CSV, or text for journals, coaches, or planning tools
Examples
# Check a goal for completeness
lifegoals check "Learn Spanish to B2 level by December 2026"
# Validate a goal's structure
lifegoals validate "Run a marathon — target: sub-4-hours"
# Generate milestone ideas for a goal
lifegoals generate "Save $50k emergency fund"
# Lint a goal for vague language
lifegoals lint "Get healthier somehow"
# Format goal data for presentation
lifegoals format "Career: Get promoted to senior engineer"
# Create a goal from a template
lifegoals template "fitness-90-day-challenge"
# Diff two goal snapshots
lifegoals diff "Q1-goals vs Q2-goals"
# Generate a progress report
lifegoals report "2026-goals"
# View summary statistics
lifegoals stats
# Export all history as JSON
lifegoals export json
# Search for goals mentioning fitness
lifegoals search "fitness"
# View recent activity
lifegoals recent
Output
All commands output structured text to stdout. You can redirect output to a file:
lifegoals report annual-review > review.txt
lifegoals export csv
Configuration
The data directory defaults to ~/.local/share/lifegoals/. Modify the DATA_DIR variable at the top of script.sh to customize the storage path.
Powered by BytesAgain | bytesagain.com | hello@bytesagain.com
1---2name: lifegoals3description: Define goals, break them into milestones, and track progress step by step. Use when setting life goals, planning milestones, tracking long-term progress.4---5
6# Lifegoals
7
8A command-line devtools toolkit for tracking and managing life goals. Check, validate, generate, format, lint, explain, convert, template, diff, preview, fix, and report on your goals — all from your terminal with persistent logging and full activity history.
9
10## Why Lifegoals?
11
12- Works entirely offline — your personal goals never leave your machine
13- No external dependencies or accounts needed
14- Every action is timestamped and logged for full auditability
15- Export your history to JSON, CSV, or plain text anytime
16- Simple CLI interface with consistent command patterns
17
18## Commands
19
20| Command | Description |
21|---------|-------------|
22| `lifegoals check <input>` | Check goal entries for completeness; view recent checks without args |
23| `lifegoals validate <input>` | Validate goal structure, format, and feasibility |
24| `lifegoals generate <input>` | Generate new goal ideas or milestone breakdowns |
25| `lifegoals format <input>` | Format goal data for readability or presentation |
26| `lifegoals lint <input>` | Lint goals for vague language or missing deadlines |
27| `lifegoals explain <input>` | Explain a goal's structure and progress path |
28| `lifegoals convert <input>` | Convert goal data between different formats |
29| `lifegoals template <input>` | Create or apply goal templates for common objectives |
30| `lifegoals diff <input>` | Diff two goal snapshots to track changes over time |
31| `lifegoals preview <input>` | Preview goal output or milestone timeline |
32| `lifegoals fix <input>` | Auto-fix common issues in goal definitions |
33| `lifegoals report <input>` | Generate a progress report on your goals |
34| `lifegoals stats` | Show summary statistics across all actions |
35| `lifegoals export <fmt>` | Export all logs (formats: `json`, `csv`, `txt`) |
36| `lifegoals search <term>` | Search across all log entries |
37| `lifegoals recent` | Show the 20 most recent activity entries |
38| `lifegoals status` | Health check — version, disk usage, entry count |
39| `lifegoals help` | Show help with all available commands |
40| `lifegoals version` | Print current version (v2.0.0) |
41
42Each data command (check, validate, generate, etc.) works in two modes:
43- **With arguments** — logs the input with a timestamp and saves to its dedicated log file
44- **Without arguments** — displays the 20 most recent entries from that command's log
45
46## Getting Started
47
48```bash
49# See all available commands
50lifegoals help
51
52# Check current system status
53lifegoals status
54
55# View statistics across all commands
56lifegoals stats
57```
58
59## Data Storage
60
61All data is stored locally in `~/.local/share/lifegoals/`. The directory structure:
62
63- `check.log`, `validate.log`, `generate.log`, `format.log`, etc. — per-command log files
64- `history.log` — unified activity log across all commands
65- `export.json`, `export.csv`, `export.txt` — generated export files
66
67Modify the `DATA_DIR` variable in `script.sh` to change the storage path.
68
69## Requirements
70
71- **Bash** 4.0+ (uses `set -euo pipefail`)
72- **Standard Unix tools**: `date`, `wc`, `du`, `tail`, `grep`, `sed`, `cat`
73- Works on Linux and macOS
74- No external packages or network access required
75
76## When to Use
77
781. **Setting new life goals** — use `lifegoals generate` to brainstorm objectives and `lifegoals template` to apply proven goal-setting frameworks like SMART goals
792. **Breaking goals into milestones** — run `lifegoals check` and `lifegoals validate` to ensure each goal has clear, actionable steps and deadlines
803. **Tracking progress over time** — use `lifegoals diff` to compare goal snapshots at different dates and `lifegoals report` to generate progress summaries
814. **Reviewing and refining goals** — run `lifegoals lint` to catch vague language, then `lifegoals fix` to tighten up weak goal definitions
825. **Exporting goal data for sharing** — use `lifegoals export` and `lifegoals convert` to transform your goal history into JSON, CSV, or text for journals, coaches, or planning tools
83
84## Examples
85
86```bash
87# Check a goal for completeness
88lifegoals check "Learn Spanish to B2 level by December 2026"
89
90# Validate a goal's structure
91lifegoals validate "Run a marathon — target: sub-4-hours"
92
93# Generate milestone ideas for a goal
94lifegoals generate "Save $50k emergency fund"
95
96# Lint a goal for vague language
97lifegoals lint "Get healthier somehow"
98
99# Format goal data for presentation
100lifegoals format "Career: Get promoted to senior engineer"
101
102# Create a goal from a template
103lifegoals template "fitness-90-day-challenge"
104
105# Diff two goal snapshots
106lifegoals diff "Q1-goals vs Q2-goals"
107
108# Generate a progress report
109lifegoals report "2026-goals"
110
111# View summary statistics
112lifegoals stats
113
114# Export all history as JSON
115lifegoals export json
116
117# Search for goals mentioning fitness
118lifegoals search "fitness"
119
120# View recent activity
121lifegoals recent
122```
123
124## Output
125
126All commands output structured text to stdout. You can redirect output to a file:
127
128```bash
129lifegoals report annual-review > review.txt
130lifegoals export csv
131```
132
133## Configuration
134
135The data directory defaults to `~/.local/share/lifegoals/`. Modify the `DATA_DIR` variable at the top of `script.sh` to customize the storage path.
136
137---
138Powered by BytesAgain | bytesagain.com | hello@bytesagain.com