Major modernization to leverage latest Claude Code features: Plugin Foundation: - Add .claude-plugin/plugin.json manifest for distribution - Add .claude/settings.json with permissions and hooks config Hooks (automatic behaviors): - SessionStart: Initialize vault environment variables - PostToolUse: Auto-commit changes after Write/Edit operations Custom Agents (4): - note-organizer: Vault organization and link maintenance - weekly-reviewer: Facilitate weekly review aligned with goals - goal-aligner: Check daily/weekly alignment with long-term goals - inbox-processor: GTD-style inbox processing Skills (3): - obsidian-vault-ops: Read/write vault files, manage wiki-links - goal-tracking: Track progress across goal cascade - daily-workflow: Morning/midday/evening routines Modular Rules (3): - markdown-standards: File naming, tags, frontmatter conventions - productivity-workflow: Goal cascade, daily/weekly planning - project-management: Project structure and status tracking Other: - Add statusline.sh for terminal vault stats display - Add CLAUDE.local.md.template for personal overrides - Update CLAUDE.md with new features documentation - Update all docs with v2.0 features and upgrade guide 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
39 lines
1.2 KiB
Bash
Executable File
39 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# Status line script for Claude Code
|
|
# Shows vault statistics in the terminal status line
|
|
|
|
VAULT_PATH="${VAULT_PATH:-$(pwd)}"
|
|
|
|
# Count total notes (excluding hidden directories)
|
|
TOTAL_NOTES=$(find "$VAULT_PATH" -name "*.md" -type f -not -path "*/\.*" 2>/dev/null | wc -l | tr -d ' ')
|
|
|
|
# Count inbox items
|
|
INBOX_COUNT=0
|
|
if [ -d "$VAULT_PATH/Inbox" ]; then
|
|
INBOX_COUNT=$(find "$VAULT_PATH/Inbox" -name "*.md" -type f 2>/dev/null | wc -l | tr -d ' ')
|
|
fi
|
|
|
|
# Add notes tagged with #inbox (if grep available)
|
|
if command -v grep &> /dev/null; then
|
|
TAGGED_INBOX=$(grep -rl "#inbox" "$VAULT_PATH" --include="*.md" 2>/dev/null | wc -l | tr -d ' ')
|
|
INBOX_COUNT=$((INBOX_COUNT + TAGGED_INBOX))
|
|
fi
|
|
|
|
# Count uncommitted changes (if in git repo)
|
|
UNCOMMITTED="N/A"
|
|
if [ -d "$VAULT_PATH/.git" ]; then
|
|
cd "$VAULT_PATH" || exit 1
|
|
UNCOMMITTED=$(git status --porcelain 2>/dev/null | wc -l | tr -d ' ')
|
|
fi
|
|
|
|
# Check if today's note exists
|
|
TODAY=$(date +%Y-%m-%d)
|
|
if [ -f "$VAULT_PATH/Daily Notes/$TODAY.md" ]; then
|
|
TODAY_STATUS="Yes"
|
|
else
|
|
TODAY_STATUS="No"
|
|
fi
|
|
|
|
# Output status line (simple format)
|
|
echo "Notes: $TOTAL_NOTES | Inbox: $INBOX_COUNT | Uncommitted: $UNCOMMITTED | Today: $TODAY_STATUS"
|