@buckits/claude-statusline 2.0.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +19 -1
  2. package/package.json +2 -2
  3. package/statusline.sh +34 -3
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @buckits/claude-statusline
2
2
 
3
- A beautiful 2-line dashboard statusline for Claude Code with gradient progress bar, compact threshold marker, git status indicators, and cost tracking.
3
+ A beautiful 2-line dashboard statusline for Claude Code with gradient progress bar, compact threshold marker, git status indicators, cost tracking, and GSD (Get Shit Done) update notifications.
4
4
 
5
5
  ## Installation
6
6
 
@@ -21,6 +21,7 @@ npx @buckits/claude-statusline
21
21
  - `●✚` Both = partial commit state
22
22
  - **Ahead/Behind Tracking** - `↑5 ↓2` shows commits ahead/behind remote
23
23
  - **Visual Icons** - 🤖 for AI line, 📁 for project line
24
+ - **GSD Update Notifications** - Automatically detects [Get Shit Done](https://www.npmjs.com/package/get-shit-done-cc) installations and shows available updates
24
25
 
25
26
  ## Screenshot
26
27
 
@@ -29,6 +30,12 @@ npx @buckits/claude-statusline
29
30
  📁 trellis POC ✓ → origin/POC ↑15
30
31
  ```
31
32
 
33
+ With GSD update available:
34
+ ```
35
+ 🤖 Opus 4.5 ($14.61) │ [████████████████████░░░░░░░░░░░░░░░░░░░⚡░░░░░░░░░░░] 80k/200k
36
+ 📁 trellis POC ✓ → origin/POC ↑15 │ ⬆️ GSD 1.5.0 → 1.6.4 /gsd:update
37
+ ```
38
+
32
39
  ## What Each Element Means
33
40
 
34
41
  ### Line 1 - AI Session Info
@@ -53,6 +60,17 @@ npx @buckits/claude-statusline
53
60
  | `↑15` | Commits ahead (green) |
54
61
  | `↓3` | Commits behind (red) |
55
62
 
63
+ ## GSD Integration
64
+
65
+ If you have [Get Shit Done (GSD)](https://www.npmjs.com/package/get-shit-done-cc) installed, the statusline will automatically detect it and show update notifications when a newer version is available.
66
+
67
+ **How it works:**
68
+ 1. Checks for GSD installation in project (`.claude/get-shit-done/VERSION`) or global (`~/.claude/get-shit-done/VERSION`)
69
+ 2. Reads the latest version from GSD's update cache (`~/.claude/cache/gsd-update-check.json`)
70
+ 3. If versions differ, shows the update notification on line 2
71
+
72
+ **Note:** The cache is populated by GSD's SessionStart hook. If you see no notification, you're either on the latest version or GSD hasn't checked for updates yet.
73
+
56
74
  ## Progress Bar Colors
57
75
 
58
76
  The bar gradient is calculated relative to the ⚡ threshold (not total capacity):
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@buckits/claude-statusline",
3
- "version": "2.0.2",
4
- "description": "A beautiful 2-line dashboard statusline for Claude Code with gradient progress bar, compact threshold marker, git status indicators, and cost tracking",
3
+ "version": "2.1.0",
4
+ "description": "A beautiful 2-line dashboard statusline for Claude Code with gradient progress bar, compact threshold marker, git status indicators, cost tracking, and GSD update notifications",
5
5
  "bin": {
6
6
  "claude-statusline": "./bin/install.js"
7
7
  },
package/statusline.sh CHANGED
@@ -402,6 +402,37 @@ if [ -n "$git_branch" ]; then
402
402
  fi
403
403
  fi
404
404
 
405
- # Output the 2-line dashboard
406
- echo "$line1"
407
- echo "$line2"
405
+ # GSD Update check (appended to line 2 if update available)
406
+ gsd_update_suffix=""
407
+ gsd_cache_file="$HOME/.claude/cache/gsd-update-check.json"
408
+
409
+ # Check for GSD in project first, then global
410
+ gsd_version_file=""
411
+ if [ -n "$cwd" ] && [ -f "$cwd/.claude/get-shit-done/VERSION" ]; then
412
+ gsd_version_file="$cwd/.claude/get-shit-done/VERSION"
413
+ elif [ -f "$HOME/.claude/get-shit-done/VERSION" ]; then
414
+ gsd_version_file="$HOME/.claude/get-shit-done/VERSION"
415
+ fi
416
+
417
+ if [ -n "$gsd_version_file" ]; then
418
+ # Read installed version directly from the VERSION file we found
419
+ installed_ver=$(cat "$gsd_version_file" 2>/dev/null | tr -d '[:space:]')
420
+ [ -z "$installed_ver" ] && installed_ver="0.0.0"
421
+
422
+ # Get latest version from cache (populated by SessionStart hook)
423
+ if [ -f "$gsd_cache_file" ]; then
424
+ latest_ver=$(jq -r '.latest // "unknown"' "$gsd_cache_file" 2>/dev/null)
425
+
426
+ # Compare versions - append to line2 if they differ
427
+ if [ "$latest_ver" != "unknown" ] && [ "$installed_ver" != "$latest_ver" ]; then
428
+ gsd_update_suffix=$(printf " \033[2;37m│\033[0m \033[1;33m⬆️ GSD\033[0m \033[2m%s → %s\033[0m \033[1;36m/gsd:update\033[0m" "$installed_ver" "$latest_ver")
429
+ fi
430
+ fi
431
+ fi
432
+
433
+ # Append GSD update to line2 if available
434
+ line2+="$gsd_update_suffix"
435
+
436
+ # Output the dashboard (always 2 lines)
437
+ printf "%s\033[K\n" "$line1"
438
+ printf "%s\033[K\n" "$line2"