this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Unify installation with single setup.sh command

- setup.sh now symlinks plugins and runs their installers
- Remove redundant handoff/install.sh (setup.sh handles it)
- Update README to reflect simplified installation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

alice 96f7ec26 5263afdb

+32 -54
+8 -27
README.md
··· 19 19 20 20 ### Quick Setup 21 21 22 - Run the setup script to symlink all components to your Claude Code configuration: 22 + Run the setup script to install everything: 23 23 24 24 ```bash 25 25 ./setup.sh 26 26 ``` 27 27 28 - This creates symlinks in `~/.claude/` for: 29 - - Skills → `~/.claude/skills/` 30 - - Commands → `~/.claude/commands/` 31 - - Scripts → `~/.claude/scripts/` 32 - 33 - ### Plan Saver Plugin 34 - 35 - The plan-saver plugin requires additional installation: 36 - 37 - ```bash 38 - cd plugins/plan-saver 39 - ./install.sh 40 - ``` 41 - 42 28 This will: 43 - - Install dependencies (`fswatch`, `jq`) via Homebrew 44 - - Set up the daemon as a launchd service 45 - - Create the session registry at `~/.claude/.plan-saver/` 29 + - Symlink skills → `~/.claude/skills/` 30 + - Symlink commands → `~/.claude/commands/` 31 + - Symlink scripts → `~/.claude/scripts/` 32 + - Symlink plugins → `~/.claude/plugins/` 33 + - Run plugin installers (e.g., plan-saver daemon setup) 46 34 47 35 --- 48 36 ··· 78 66 1. On session start, checks if `.claude/handoff.md` exists in the project 79 67 2. If found, injects a prompt telling Claude to read it and continue 80 68 3. Near-zero overhead when no handoff file exists (~5ms shell check) 81 - 82 - **Install:** 83 - ```bash 84 - cd plugins/handoff 85 - ./install.sh 86 - ``` 87 69 88 70 **Usage:** 89 71 1. Run `/handoff` when context is running low ··· 185 167 │ │ │ └── plugin.json 186 168 │ │ ├── hooks/ 187 169 │ │ │ └── hooks.json 188 - │ │ ├── scripts/ 189 - │ │ │ └── check-handoff.sh 190 - │ │ └── install.sh 170 + │ │ └── scripts/ 171 + │ │ └── check-handoff.sh 191 172 │ └── plan-saver/ 192 173 │ ├── daemon/ 193 174 │ │ └── plan-saver-daemon.sh
-25
plugins/handoff/install.sh
··· 1 - #!/usr/bin/env bash 2 - # Install the handoff plugin 3 - 4 - set -euo pipefail 5 - 6 - SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" 7 - PLUGIN_NAME="handoff" 8 - CLAUDE_PLUGINS_DIR="$HOME/.claude/plugins" 9 - 10 - echo "Installing $PLUGIN_NAME plugin..." 11 - 12 - # Create plugins directory if needed 13 - mkdir -p "$CLAUDE_PLUGINS_DIR" 14 - 15 - # Symlink the plugin 16 - if [[ -L "$CLAUDE_PLUGINS_DIR/$PLUGIN_NAME" ]]; then 17 - rm "$CLAUDE_PLUGINS_DIR/$PLUGIN_NAME" 18 - fi 19 - 20 - ln -s "$SCRIPT_DIR" "$CLAUDE_PLUGINS_DIR/$PLUGIN_NAME" 21 - 22 - echo "Done! Plugin installed to $CLAUDE_PLUGINS_DIR/$PLUGIN_NAME" 23 - echo "" 24 - echo "The plugin will automatically detect .claude/handoff.md on session start" 25 - echo "and prompt Claude to continue from where you left off."
+24 -2
setup.sh
··· 1 1 #!/usr/bin/env bash 2 - # Symlinks skills and commands from this monorepo to ~/.claude/ 2 + # Symlinks skills, commands, scripts, and plugins from this monorepo to ~/.claude/ 3 3 4 4 set -euo pipefail 5 5 6 6 MONOREPO="$(cd "$(dirname "$0")" && pwd)" 7 7 CLAUDE_DIR="$HOME/.claude" 8 8 9 - mkdir -p "$CLAUDE_DIR/skills" "$CLAUDE_DIR/commands" "$CLAUDE_DIR/scripts" 9 + mkdir -p "$CLAUDE_DIR/skills" "$CLAUDE_DIR/commands" "$CLAUDE_DIR/scripts" "$CLAUDE_DIR/plugins" 10 10 11 11 # Link skills (each skill is a directory) 12 12 for skill in "$MONOREPO/skills"/*/; do ··· 53 53 fi 54 54 ln -s "$script" "$target" 55 55 echo "Linked: scripts/$name" 56 + done 57 + 58 + # Link plugins (each plugin is a directory) 59 + for plugin in "$MONOREPO/plugins"/*/; do 60 + [ -d "$plugin" ] || continue 61 + name=$(basename "$plugin") 62 + target="$CLAUDE_DIR/plugins/$name" 63 + if [[ -L "$target" ]]; then 64 + echo "Updating: $name" 65 + rm "$target" 66 + elif [[ -e "$target" ]]; then 67 + echo "Skipping $name (exists and is not a symlink)" 68 + continue 69 + fi 70 + ln -s "$plugin" "$target" 71 + echo "Linked: plugins/$name" 72 + 73 + # Run plugin's install.sh if it exists (for extra setup like daemons) 74 + if [[ -x "$plugin/install.sh" ]]; then 75 + echo "Running $name installer..." 76 + "$plugin/install.sh" 77 + fi 56 78 done 57 79 58 80 echo "Done."