auto-update-daily-20260202
 1#!/usr/bin/env bash
 2#
 3# Claude Code Statusline - Enhanced with NixOS/Homelab Context
 4#
 5# This statusline provides:
 6# - Line 1: Identity, model, project context, directory
 7# - Line 2: Active capabilities (skills, hooks)
 8#
 9
10# Read JSON input from stdin
11input=$(cat)
12
13# Extract data from JSON
14current_dir=$(echo "$input" | jq -r '.workspace.current_dir')
15model_name=$(echo "$input" | jq -r '.model.display_name')
16dir_name=$(basename "$current_dir")
17hostname=$(hostname -s)
18
19# Colors (simple ANSI for terminal compatibility)
20PURPLE='\033[35m'
21BLUE='\033[34m'
22CYAN='\033[36m'
23GREEN='\033[32m'
24YELLOW='\033[33m'
25RESET='\033[0m'
26
27# Detect project context (check more specific paths first)
28context="general"
29if [[ "$current_dir" == *"/keyboards"* ]]; then
30	context="${CYAN}keyboards${RESET}"
31elif [[ "$current_dir" == *"/src/home"* ]]; then
32	context="${YELLOW}homelab${RESET}"
33fi
34
35# Count active capabilities
36claude_dir="${HOME}/.config/claude"
37
38# Count skills (follow symlinks, exclude .archive)
39skills_count=0
40if [ -d "$claude_dir/skills" ]; then
41	skills_count=$(find -L "$claude_dir/skills" -name "SKILL.md" -not -path "*/.archive/*" 2>/dev/null | wc -l | tr -d ' ')
42fi
43
44# Count agents
45agents_count=0
46if [ -d "$claude_dir/agents" ]; then
47	agents_count=$(find -L "$claude_dir/agents" -maxdepth 1 -name "*.md" 2>/dev/null | wc -l | tr -d ' ')
48fi
49
50# LINE 1: Identity, hostname, model, context, directory
51# shellcheck disable=SC2059
52printf "👋 ${PURPLE}${USER}${RESET}@${GREEN}${hostname}${RESET} • ${BLUE}${model_name}${RESET} • ${context} • ${CYAN}${dir_name}${RESET}\n"
53
54# LINE 2: Capabilities
55# shellcheck disable=SC2059
56printf "${GREEN}Skills:${RESET} ${skills_count} ${GREEN}• Agents:${RESET} ${agents_count} ${GREEN}• Hooks:${RESET} active\n"