claude-all-config 2.0.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 (167) hide show
  1. package/LICENSE +21 -0
  2. package/LICENSE.md +70 -0
  3. package/README.md +133 -0
  4. package/VERSION +1 -0
  5. package/agents/accessibility-reviewer.md +96 -0
  6. package/agents/ai-prompt-optimizer.md +94 -0
  7. package/agents/api-tester.md +102 -0
  8. package/agents/code-generator.md +94 -0
  9. package/agents/code-reviewer.md +47 -0
  10. package/agents/component-generator.md +102 -0
  11. package/agents/doc-generator.md +91 -0
  12. package/agents/migration-generator.md +94 -0
  13. package/agents/performance-analyzer.md +90 -0
  14. package/agents/proactive-mode.md +91 -0
  15. package/agents/readme-generator.md +101 -0
  16. package/agents/security-auditor.md +86 -0
  17. package/agents/terraform-generator.md +94 -0
  18. package/agents/test-generator.md +76 -0
  19. package/bin/agentrouter.json +36 -0
  20. package/bin/ai-chat +20 -0
  21. package/bin/antigravity.json +76 -0
  22. package/bin/api-manager +340 -0
  23. package/bin/claude-launcher +19 -0
  24. package/bin/claude-master +15 -0
  25. package/bin/claude_master.py +295 -0
  26. package/bin/cohere.json +7 -0
  27. package/bin/deepseek.json +44 -0
  28. package/bin/gemini.json +56 -0
  29. package/bin/glm.json +21 -0
  30. package/bin/groq.json +41 -0
  31. package/bin/minimax.json +26 -0
  32. package/bin/mistral.json +7 -0
  33. package/bin/moonshot.json +7 -0
  34. package/bin/ollama.json +36 -0
  35. package/bin/openai.json +46 -0
  36. package/bin/openrouter.json +38 -0
  37. package/bin/perplexity.json +12 -0
  38. package/bin/qwen.json +7 -0
  39. package/bin/switch-provider +73 -0
  40. package/bin/test.json +7 -0
  41. package/bin/xai.json +41 -0
  42. package/claude-all +2707 -0
  43. package/claude-config.json +340 -0
  44. package/claude-suite/REFACTORING_SUMMARY.md +88 -0
  45. package/claude-suite/auth/.antigravity_proxy.py +78 -0
  46. package/claude-suite/auth/__pycache__/openai_auth.cpython-312.pyc +0 -0
  47. package/claude-suite/auth/gemini_auth.py +80 -0
  48. package/claude-suite/auth/openai_auth.py +138 -0
  49. package/claude-suite/backups/claude-all-before-refactor +1075 -0
  50. package/claude-suite/backups/claude-all.backup +840 -0
  51. package/claude-suite/backups/claude-all.original +840 -0
  52. package/claude-suite/models/add-model-manual.sh +588 -0
  53. package/claude-suite/models/add-model.sh +114 -0
  54. package/claude-suite/models/model-switcher.sh +69 -0
  55. package/claude-suite/providers/claude-glm +89 -0
  56. package/claude-suite/providers/claude-glm-wrapper.sh +55 -0
  57. package/claude-suite/providers/claude-minimax +12 -0
  58. package/claude-suite/providers/claude-smart +132 -0
  59. package/claude-suite/providers/xai_chat.sh +56 -0
  60. package/claude-suite/utils/__pycache__/claude_master.cpython-312.pyc +0 -0
  61. package/claude-suite/utils/antigravity_proxy_server.py +168 -0
  62. package/claude-suite/utils/claude-all-help.txt +83 -0
  63. package/claude-suite/utils/claude_master.py +408 -0
  64. package/commands/brainstorm.md +5 -0
  65. package/commands/execute-plan.md +5 -0
  66. package/commands/write-plan.md +5 -0
  67. package/docs/ANTIGRAVITY-SETUP.md +176 -0
  68. package/docs/AUTH_CREDENTIALS.md +54 -0
  69. package/docs/NPM-INSTALLATION.md +166 -0
  70. package/hooks/hooks.json +15 -0
  71. package/hooks/run-hook.cmd +19 -0
  72. package/hooks/session-start.sh +52 -0
  73. package/install.sh +155 -0
  74. package/mcp.json +34 -0
  75. package/model/perplexity.json +12 -0
  76. package/package.json +69 -0
  77. package/plugins/README.md +47 -0
  78. package/plugins/installed_plugins.json +317 -0
  79. package/plugins/known_marketplaces.json +10 -0
  80. package/plugins/marketplace-info/marketplace.json +517 -0
  81. package/postinstall.js +100 -0
  82. package/scripts/antigravity_proxy_server.py +168 -0
  83. package/scripts/get_gemini_api_key.py +96 -0
  84. package/scripts/setup_antigravity_auth.py +171 -0
  85. package/skills/api-development/SKILL.md +11 -0
  86. package/skills/api-development/openapi/api-documentation.yaml +108 -0
  87. package/skills/brainstorming/SKILL.md +54 -0
  88. package/skills/code-quality/SKILL.md +196 -0
  89. package/skills/condition-based-waiting/SKILL.md +120 -0
  90. package/skills/condition-based-waiting/example.ts +158 -0
  91. package/skills/database-development/SKILL.md +11 -0
  92. package/skills/database-development/migrations/migration.template.sql +49 -0
  93. package/skills/defense-in-depth/SKILL.md +127 -0
  94. package/skills/deployment/SKILL.md +11 -0
  95. package/skills/deployment/ci-cd/github-actions.yml +95 -0
  96. package/skills/deployment/docker/Dockerfile.template +39 -0
  97. package/skills/dispatching-parallel-agents/SKILL.md +180 -0
  98. package/skills/documentation-generation/SKILL.md +8 -0
  99. package/skills/documentation-generation/templates/README.template.md +60 -0
  100. package/skills/error-handling/SKILL.md +267 -0
  101. package/skills/executing-plans/SKILL.md +76 -0
  102. package/skills/finishing-a-development-branch/SKILL.md +200 -0
  103. package/skills/frontend-design/frontend-design/SKILL.md +42 -0
  104. package/skills/integration-testing/SKILL.md +13 -0
  105. package/skills/integration-testing/examples/contract-test.py +317 -0
  106. package/skills/integration-testing/examples/e2e-test.js +147 -0
  107. package/skills/integration-testing/examples/test-isolation.md +94 -0
  108. package/skills/logging-monitoring/SKILL.md +66 -0
  109. package/skills/mobile-development/SKILL.md +11 -0
  110. package/skills/mobile-development/responsive/responsive.css +80 -0
  111. package/skills/performance-optimization/SKILL.md +9 -0
  112. package/skills/performance-optimization/profiling/profile.template.js +21 -0
  113. package/skills/receiving-code-review/SKILL.md +209 -0
  114. package/skills/refactoring/SKILL.md +11 -0
  115. package/skills/refactoring/code-smells/common-smells.md +115 -0
  116. package/skills/requesting-code-review/SKILL.md +105 -0
  117. package/skills/requesting-code-review/code-reviewer.md +146 -0
  118. package/skills/root-cause-tracing/SKILL.md +174 -0
  119. package/skills/root-cause-tracing/find-polluter.sh +63 -0
  120. package/skills/security-review/SKILL.md +11 -0
  121. package/skills/security-review/checklists/owasp-checklist.md +31 -0
  122. package/skills/sharing-skills/SKILL.md +194 -0
  123. package/skills/subagent-driven-development/SKILL.md +240 -0
  124. package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +20 -0
  125. package/skills/subagent-driven-development/implementer-prompt.md +78 -0
  126. package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  127. package/skills/systematic-debugging/CREATION-LOG.md +119 -0
  128. package/skills/systematic-debugging/SKILL.md +295 -0
  129. package/skills/systematic-debugging/test-academic.md +14 -0
  130. package/skills/systematic-debugging/test-pressure-1.md +58 -0
  131. package/skills/systematic-debugging/test-pressure-2.md +68 -0
  132. package/skills/systematic-debugging/test-pressure-3.md +69 -0
  133. package/skills/test-driven-development/SKILL.md +364 -0
  134. package/skills/testing-anti-patterns/SKILL.md +302 -0
  135. package/skills/testing-skills-with-subagents/SKILL.md +387 -0
  136. package/skills/testing-skills-with-subagents/examples/CLAUDE_MD_TESTING.md +189 -0
  137. package/skills/ui-ux-review/SKILL.md +13 -0
  138. package/skills/ui-ux-review/checklists/ux-heuristics.md +61 -0
  139. package/skills/using-git-worktrees/SKILL.md +213 -0
  140. package/skills/using-superpowers/SKILL.md +101 -0
  141. package/skills/verification-before-completion/SKILL.md +139 -0
  142. package/skills/writing-plans/SKILL.md +116 -0
  143. package/skills/writing-skills/SKILL.md +622 -0
  144. package/skills/writing-skills/anthropic-best-practices.md +1150 -0
  145. package/skills/writing-skills/graphviz-conventions.dot +172 -0
  146. package/skills/writing-skills/persuasion-principles.md +187 -0
  147. package/update.sh +36 -0
  148. package/utils/check-superpowers.sh +114 -0
  149. package/utils/claude-branding.md +166 -0
  150. package/utils/config.js +185 -0
  151. package/utils/custom-claude-config.sh +89 -0
  152. package/utils/custom-claude-hooks.md +129 -0
  153. package/utils/custom-claude-lib.js +222 -0
  154. package/utils/customize-claude-ui.sh +162 -0
  155. package/utils/fix-claude-integration.sh +133 -0
  156. package/utils/help.js +125 -0
  157. package/utils/install-curl.ps1 +135 -0
  158. package/utils/install-curl.sh +525 -0
  159. package/utils/install-superpowers.js +411 -0
  160. package/utils/install.js +298 -0
  161. package/utils/install.sh +182 -0
  162. package/utils/postinstall.js +63 -0
  163. package/utils/rename-claude.sh +96 -0
  164. package/utils/uninstall-superpowers.js +273 -0
  165. package/utils/uninstall.ps1 +136 -0
  166. package/utils/uninstall.sh +163 -0
  167. package/utils/update.sh +160 -0
@@ -0,0 +1,182 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # Claude-All-New v7.0 Installation Script
4
+ # Installs all scripts to your system
5
+ # Includes Superpowers Library (30 skills + 14 agents)
6
+
7
+ set -e
8
+
9
+ GREEN='\033[0;32m'
10
+ BLUE='\033[0;34m'
11
+ YELLOW='\033[1;33m'
12
+ NC='\033[0m'
13
+
14
+ echo -e "${GREEN}🚀 Claude-All-New Installer${NC}"
15
+ echo "================================"
16
+ echo ""
17
+
18
+ # Check if running as root for system-wide install
19
+ if [[ "$1" == "--system" ]]; then
20
+ INSTALL_DIR="/usr/local/bin"
21
+ echo -e "${BLUE}Installing system-wide to $INSTALL_DIR${NC}"
22
+ sudo mkdir -p "$INSTALL_DIR"
23
+ sudo cp -r bin/* "$INSTALL_DIR/"
24
+ sudo chmod +x "$INSTALL_DIR/claude-all" "$INSTALL_DIR/api-manager"
25
+ echo -e "${GREEN}✓ Installed to $INSTALL_DIR${NC}"
26
+ else
27
+ INSTALL_DIR="$HOME/.local/bin"
28
+ echo -e "${BLUE}Installing to $INSTALL_DIR${NC}"
29
+ mkdir -p "$INSTALL_DIR"
30
+ cp -r bin/* "$INSTALL_DIR/"
31
+ chmod +x "$INSTALL_DIR/claude-all" "$INSTALL_DIR/api-manager"
32
+
33
+ # Add to PATH if not already there
34
+ if ! echo "$PATH" | grep -q "$INSTALL_DIR"; then
35
+ echo ""
36
+ echo -e "${YELLOW}âš ī¸ Add this line to your ~/.bashrc or ~/.zshrc:${NC}"
37
+ echo "export PATH=\"\$HOME/.local/bin:\$PATH\""
38
+ echo ""
39
+ fi
40
+ echo -e "${GREEN}✓ Installed to $INSTALL_DIR${NC}"
41
+ fi
42
+
43
+ # Install Superpowers Skills for Claude
44
+ echo ""
45
+ echo -e "${BLUE}đŸ“Ļ Installing Superpowers for Claude...${NC}"
46
+ echo ""
47
+
48
+ # Create Claude directories
49
+ CLAUDE_DIR="$HOME/.claude"
50
+ CLAUDE_PLUGINS_DIR="$CLAUDE_DIR/plugins"
51
+ mkdir -p "$CLAUDE_PLUGINS_DIR"
52
+ mkdir -p "$CLAUDE_DIR/agents"
53
+ mkdir -p "$CLAUDE_DIR/commands"
54
+ mkdir -p "$CLAUDE_DIR/hooks"
55
+ mkdir -p "$CLAUDE_DIR/lib"
56
+
57
+ # Copy superpowers from local claude-all installation
58
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
59
+ LOCAL_SUPERPOWERS_DIR="$SCRIPT_DIR/../superpowers"
60
+
61
+ if [[ -d "$LOCAL_SUPERPOWERS_DIR" ]]; then
62
+ echo "Installing Superpowers from local copy..."
63
+
64
+ # Create destination directory
65
+ mkdir -p "$HOME/.claude/plugins/superpowers"
66
+
67
+ # Copy all files except .git if exists
68
+ cp -r "$LOCAL_SUPERPOWERS_DIR"/* "$HOME/.claude/plugins/superpowers/" 2>/dev/null || true
69
+
70
+ SUPERPOWERS_DIR="$HOME/.claude/plugins/superpowers"
71
+
72
+ echo -e "${GREEN}✓ Copied from local installation${NC}"
73
+ elif command -v git &> /dev/null; then
74
+ echo "Local copy not found. Downloading from GitHub..."
75
+ if [[ -d "$HOME/.claude/plugins/superpowers" ]]; then
76
+ echo "Updating Superpowers..."
77
+ (cd "$HOME/.claude/plugins/superpowers" && git pull)
78
+ else
79
+ echo "Downloading Superpowers..."
80
+ git clone https://github.com/obra/superpowers.git "$HOME/.claude/plugins/superpowers"
81
+ fi
82
+
83
+ SUPERPOWERS_DIR="$HOME/.claude/plugins/superpowers"
84
+
85
+ # Install as Claude plugin
86
+ echo "Installing as Claude plugin..."
87
+
88
+ # Copy plugin configuration
89
+ if [[ -f "$SUPERPOWERS_DIR/.claude-plugin/plugin.json" ]]; then
90
+ cp "$SUPERPOWERS_DIR/.claude-plugin/plugin.json" "$CLAUDE_PLUGINS_DIR/"
91
+ fi
92
+
93
+ # Copy marketplace configuration
94
+ if [[ -f "$SUPERPOWERS_DIR/.claude-plugin/marketplace.json" ]]; then
95
+ cp "$SUPERPOWERS_DIR/.claude-plugin/marketplace.json" "$CLAUDE_PLUGINS_DIR/"
96
+ fi
97
+
98
+ # Copy agents
99
+ if [[ -d "$SUPERPOWERS_DIR/agents" ]]; then
100
+ cp -r "$SUPERPOWERS_DIR/agents/"* "$CLAUDE_DIR/agents/"
101
+ echo -e "${GREEN}✓ Agents installed${NC}"
102
+ fi
103
+
104
+ # Copy commands
105
+ if [[ -d "$SUPERPOWERS_DIR/commands" ]]; then
106
+ cp -r "$SUPERPOWERS_DIR/commands/"* "$CLAUDE_DIR/commands/"
107
+ echo -e "${GREEN}✓ Commands installed${NC}"
108
+ fi
109
+
110
+ # Copy hooks
111
+ if [[ -d "$SUPERPOWERS_DIR/hooks" ]]; then
112
+ cp -r "$SUPERPOWERS_DIR/hooks/"* "$CLAUDE_DIR/hooks/"
113
+ echo -e "${GREEN}✓ Hooks installed${NC}"
114
+ fi
115
+
116
+ # Copy library
117
+ if [[ -d "$SUPERPOWERS_DIR/lib" ]]; then
118
+ cp -r "$SUPERPOWERS_DIR/lib/"* "$CLAUDE_DIR/lib/"
119
+ echo -e "${GREEN}✓ Library files installed${NC}"
120
+ fi
121
+
122
+ # Create skills directory and link skills
123
+ mkdir -p "$CLAUDE_DIR/skills"
124
+ if [[ -d "$SUPERPOWERS_DIR/skills" ]]; then
125
+ echo "Setting up skills..."
126
+ for skill_dir in "$SUPERPOWERS_DIR/skills"/*; do
127
+ if [[ -d "$skill_dir" ]]; then
128
+ skill_name=$(basename "$skill_dir")
129
+ ln -sf "../plugins/superpowers/skills/$skill_name" "$CLAUDE_DIR/skills/$skill_name" 2>/dev/null || true
130
+ fi
131
+ done
132
+ echo -e "${GREEN}✓ Skills linked${NC}"
133
+ fi
134
+
135
+ # Create marketplace entry for easy installation
136
+ mkdir -p "$CLAUDE_PLUGINS_DIR/marketplaces"
137
+ cat > "$CLAUDE_PLUGINS_DIR/marketplaces/superpowers.json" << 'EOF'
138
+ {
139
+ "name": "superpowers-marketplace",
140
+ "url": "file:///data/data/com.termux/files/home/.claude/plugins/superpowers/.claude-plugin"
141
+ }
142
+ EOF
143
+
144
+ echo ""
145
+ echo -e "${GREEN}✅ Superpowers installed successfully!${NC}"
146
+ echo ""
147
+ echo -e "${BLUE}Available commands in Claude:${NC}"
148
+ echo " /superpowers:brainstorm - Design refinement"
149
+ echo " /superpowers:write-plan - Create implementation plan"
150
+ echo " /superpowers:execute-plan - Execute plan in batches"
151
+ echo ""
152
+ echo -e "${BLUE}Or install as plugin:${NC}"
153
+ echo " /plugin marketplace add file://$HOME/.claude/plugins/superpowers/.claude-plugin"
154
+ echo " /plugin install superpowers@superpowers-marketplace"
155
+ echo ""
156
+ echo -e "${YELLOW}Skills: $CLAUDE_DIR/skills/${NC}"
157
+ echo -e "${YELLOW}Agents: $CLAUDE_DIR/agents/${NC}"
158
+ echo -e "${YELLOW}Commands: $CLAUDE_DIR/commands/${NC}"
159
+ else
160
+ echo -e "${YELLOW}âš ī¸ Git not found. Skipping Superpowers installation.${NC}"
161
+ echo -e "${YELLOW} To install manually:${NC}"
162
+ echo -e "${YELLOW} git clone https://github.com/obra/superpowers.git ~/.claude/plugins/superpowers${NC}"
163
+ fi
164
+
165
+ echo ""
166
+ echo -e "${GREEN}🎉 Installation complete!${NC}"
167
+ echo ""
168
+ echo "Next steps:"
169
+ echo "1. Get API keys:"
170
+ echo " â€ĸ GLM: https://open.bigmodel.cn/usercenter/apikeys"
171
+ echo " â€ĸ MiniMax: https://platform.minimax.io/"
172
+ echo ""
173
+ echo "2. Run claude-all to get started:"
174
+ echo " claude-all"
175
+ echo ""
176
+ echo "3. Manage API keys via menu:"
177
+ echo " claude-all 10"
178
+ echo ""
179
+ echo "4. Use skills in Claude:"
180
+ echo " claude --help # See available commands"
181
+ echo " Skills are automatically available in Claude CLI"
182
+ echo ""
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * 🤖 Claude-All Post-Installation Script
5
+ */
6
+
7
+ const fs = require('fs');
8
+ const path = require('path');
9
+ const { execSync } = require('child_process');
10
+
11
+ class PostInstall {
12
+ constructor() {
13
+ this.homeDir = require('os').homedir();
14
+ this.installDir = path.join(this.homeDir, '.claude-all');
15
+ }
16
+
17
+ installSuperpowers() {
18
+ try {
19
+ console.log('');
20
+ console.log('đŸĻ¸ Installing Claude-All Superpowers...');
21
+ console.log('=====================================');
22
+
23
+ const installScript = path.join(__dirname, 'install-superpowers.js');
24
+ execSync(`node "${installScript}"`, { stdio: 'inherit' });
25
+
26
+ } catch (error) {
27
+ console.error('❌ Failed to install superpowers:', error.message);
28
+ // Don't exit, continue with welcome message
29
+ }
30
+ }
31
+
32
+ showWelcome() {
33
+ console.log('');
34
+ console.log('🎉 Welcome to Claude-All AI Launcher!');
35
+ console.log('===================================');
36
+ console.log('');
37
+ console.log('🚀 Quick Start Commands:');
38
+ console.log(' claude-all # Start AI launcher');
39
+ console.log(' ai-chat # Start chat interface');
40
+ console.log(' npm run claude # Start via NPM');
41
+ console.log(' npm run switch # Switch AI provider');
42
+ console.log('');
43
+ console.log('🔧 First-Time Setup:');
44
+ console.log(' npm run config # Configure API keys');
45
+ console.log(' claude-all --help # Show all options');
46
+ console.log('');
47
+ console.log('📱 Available AI Providers:');
48
+ console.log(' â€ĸ MiniMax â€ĸ Gemini â€ĸ OpenAI â€ĸ Groq â€ĸ Ollama');
49
+ console.log('');
50
+ console.log('Enjoy your universal AI assistant! 🤖');
51
+ }
52
+
53
+ run() {
54
+ this.installSuperpowers();
55
+ this.showWelcome();
56
+ }
57
+ }
58
+
59
+ if (require.main === module) {
60
+ new PostInstall().run();
61
+ }
62
+
63
+ module.exports = PostInstall;
@@ -0,0 +1,96 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # Script to rename claude command to custom name
4
+ # Usage: ./rename-claude.sh [new-name]
5
+
6
+ set -e
7
+
8
+ NEW_NAME="${1:-ai}"
9
+
10
+ # Colors
11
+ GREEN='\033[0;32m'
12
+ BLUE='\033[0;34m'
13
+ YELLOW='\033[1;33m'
14
+ NC='\033[0m'
15
+
16
+ echo -e "${BLUE}🎨 Claude-All Rename Tool${NC}"
17
+ echo "========================="
18
+ echo ""
19
+
20
+ # Validate new name
21
+ if [[ ! "$NEW_NAME" =~ ^[a-zA-Z][a-zA-Z0-9-]*$ ]]; then
22
+ echo -e "${YELLOW}âš ī¸ Invalid name: $NEW_NAME${NC}"
23
+ echo "Name must start with letter and contain only letters, numbers, and hyphens"
24
+ exit 1
25
+ fi
26
+
27
+ echo -e "${BLUE}Renaming 'claude' to '$NEW_NAME'...${NC}"
28
+ echo ""
29
+
30
+ # 1. Rename the main executable
31
+ MAIN_BIN="$HOME/.local/bin/claude-all"
32
+ NEW_MAIN_BIN="$HOME/.local/bin/$NEW_NAME"
33
+
34
+ if [[ -f "$MAIN_BIN" ]]; then
35
+ cp "$MAIN_BIN" "$NEW_MAIN_BIN"
36
+ chmod +x "$NEW_MAIN_BIN"
37
+ echo -e "${GREEN}✅ Created $NEW_NAME command${NC}"
38
+ else
39
+ echo -e "${YELLOW}âš ī¸ claude-all not found in ~/.local/bin${NC}"
40
+ fi
41
+
42
+ # 2. Update the executable to use new name internally
43
+ echo -e "${BLUE}Updating internal references...${NC}"
44
+ sed -i "s/claude --model/$NEW_NAME --model/g" "$NEW_MAIN_BIN"
45
+ sed -i "s/exec claude/exec $NEW_NAME/g" "$NEW_MAIN_BIN"
46
+
47
+ # 3. Create alias for backward compatibility
48
+ ALIAS_FILE="$HOME/.bashrc"
49
+ if [[ -f "$HOME/.zshrc" ]]; then
50
+ ALIAS_FILE="$HOME/.zshrc"
51
+ fi
52
+
53
+ echo ""
54
+ echo -e "${BLUE}Adding alias to $ALIAS_FILE...${NC}"
55
+ cat << EOF >> "$ALIAS_FILE"
56
+
57
+ # Claude-All Alias (added by rename-claude.sh)
58
+ alias claude='$NEW_NAME'
59
+ EOF
60
+
61
+ echo -e "${GREEN}✅ Alias added: claude → $NEW_NAME${NC}"
62
+
63
+ # 4. Update completion (if exists)
64
+ if [[ -f "$HOME/.local/share/bash-completion/completions/claude" ]]; then
65
+ cp "$HOME/.local/share/bash-completion/completions/claude" \
66
+ "$HOME/.local/share/bash-completion/completions/$NEW_NAME" 2>/dev/null || true
67
+ echo -e "${GREEN}✅ Completion updated${NC}"
68
+ fi
69
+
70
+ # 5. Create desktop entry (Linux)
71
+ if [[ "$OSTYPE" == "linux-gnu"* ]]; then
72
+ DESKTOP_FILE="$HOME/.local/share/applications/claude-all.desktop"
73
+ if [[ -f "$DESKTOP_FILE" ]]; then
74
+ sed -i "s/Name=Claude-All/Name=$NEW_NAME/g" "$DESKTOP_FILE"
75
+ sed -i "s/Exec=claude-all/Exec=$NEW_NAME/g" "$DESKTOP_FILE"
76
+ sed -i "s/Icon=claude/Icon=$NEW_NAME/g" "$DESKTOP_FILE"
77
+ echo -e "${GREEN}✅ Desktop entry updated${NC}"
78
+ fi
79
+ fi
80
+
81
+ echo ""
82
+ echo -e "${GREEN}🎉 Rename Complete!${NC}"
83
+ echo "==================="
84
+ echo ""
85
+ echo "New command: ${BLUE}$NEW_NAME${NC}"
86
+ echo "Alias: ${YELLOW}claude → $NEW_NAME${NC}"
87
+ echo ""
88
+ echo "To apply changes:"
89
+ echo "1. Restart terminal or run: source $ALIAS_FILE"
90
+ echo "2. Use '$NEW_NAME' command instead of 'claude-all'"
91
+ echo ""
92
+ echo -e "${BLUE}Examples:${NC}"
93
+ echo " $NEW_NAME # Run with menu"
94
+ echo " $NEW_NAME --model glm-4 # Direct model"
95
+ echo " $NEW_NAME --help # Show help"
96
+ echo ""
@@ -0,0 +1,273 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * đŸ—‘ī¸ Claude-All Superpowers Uninstaller
5
+ * Menghapus superpowers dari Claude Code
6
+ */
7
+
8
+ const fs = require('fs');
9
+ const path = require('path');
10
+ const os = require('os');
11
+
12
+ class SuperpowersUninstaller {
13
+ constructor() {
14
+ this.homeDir = os.homedir();
15
+ this.claudeDir = path.join(this.homeDir, '.claude');
16
+ this.claudePluginsDir = path.join(this.claudeDir, 'plugins', 'claude-all-superpowers');
17
+ this.claudeGlobalSkillsDir = path.join(this.claudeDir, 'skills');
18
+ this.claudeGlobalAgentsDir = path.join(this.claudeDir, 'agents');
19
+ this.claudeHooksDir = path.join(this.claudeDir, 'hooks');
20
+ }
21
+
22
+ printHeader() {
23
+ console.log('');
24
+ console.log('đŸ—‘ī¸ CLAUDE-ALL SUPERPOWERS UNINSTALLER');
25
+ console.log('====================================');
26
+ console.log('');
27
+ }
28
+
29
+ checkInstalled() {
30
+ console.log('🔍 Checking installation...');
31
+
32
+ if (!fs.existsSync(this.claudePluginsDir)) {
33
+ console.log('âš ī¸ No superpowers installation found');
34
+ return false;
35
+ }
36
+
37
+ console.log(`✅ Found installation: ${this.claudePluginsDir}`);
38
+ return true;
39
+ }
40
+
41
+ removeDirectory(dir) {
42
+ if (!fs.existsSync(dir)) {
43
+ return;
44
+ }
45
+
46
+ const remove = (directory) => {
47
+ const items = fs.readdirSync(directory);
48
+
49
+ items.forEach(item => {
50
+ const fullPath = path.join(directory, item);
51
+ const stat = fs.statSync(fullPath);
52
+
53
+ if (stat.isDirectory()) {
54
+ remove(fullPath);
55
+ fs.rmdirSync(fullPath);
56
+ } else {
57
+ fs.unlinkSync(fullPath);
58
+ }
59
+ });
60
+ };
61
+
62
+ remove(dir);
63
+ fs.rmdirSync(dir);
64
+ }
65
+
66
+ removeCommands() {
67
+ console.log('');
68
+ console.log('đŸ—‘ī¸ Removing commands...');
69
+
70
+ const commandsDir = path.join(this.claudeDir, 'commands');
71
+
72
+ if (!fs.existsSync(commandsDir)) {
73
+ console.log(' âš ī¸ No commands directory found');
74
+ return;
75
+ }
76
+
77
+ // Remove all claude-all related commands
78
+ const commands = fs.readdirSync(commandsDir).filter(f => {
79
+ return f.startsWith('claude-') || f.startsWith('git-') || f.startsWith('gen-') ||
80
+ f === 'brainstorm.md' || f === 'execute-plan.md' || f === 'write-plan.md';
81
+ });
82
+
83
+ let count = 0;
84
+ commands.forEach(cmd => {
85
+ const cmdPath = path.join(commandsDir, cmd);
86
+ fs.unlinkSync(cmdPath);
87
+ console.log(` ✅ Removed: ${cmd}`);
88
+ count++;
89
+ });
90
+
91
+ if (count === 0) {
92
+ console.log(' â„šī¸ No claude-all commands to remove');
93
+ } else {
94
+ console.log(`📊 Removed ${count} commands`);
95
+ }
96
+ }
97
+
98
+ removeAgents() {
99
+ console.log('');
100
+ console.log('đŸ—‘ī¸ Removing global agents...');
101
+
102
+ if (!fs.existsSync(this.claudeGlobalAgentsDir)) {
103
+ console.log(' âš ī¸ No global agents directory found');
104
+ return;
105
+ }
106
+
107
+ // Remove all agents from global folder
108
+ const agents = fs.readdirSync(this.claudeGlobalAgentsDir).filter(f => f.endsWith('.md'));
109
+
110
+ let count = 0;
111
+ agents.forEach(agent => {
112
+ const agentPath = path.join(this.claudeGlobalAgentsDir, agent);
113
+ fs.unlinkSync(agentPath);
114
+ console.log(` ✅ Removed: ${agent}`);
115
+ count++;
116
+ });
117
+
118
+ if (count === 0) {
119
+ console.log(' â„šī¸ No claude-all agents to remove');
120
+ } else {
121
+ console.log(`📊 Removed ${count} global agents`);
122
+
123
+ // Remove directory if empty
124
+ if (fs.readdirSync(this.claudeGlobalAgentsDir).length === 0) {
125
+ fs.rmdirSync(this.claudeGlobalAgentsDir);
126
+ console.log(` ✅ Removed empty directory: ${this.claudeGlobalAgentsDir}`);
127
+ }
128
+ }
129
+ }
130
+
131
+ removeGlobalHooks() {
132
+ console.log('');
133
+ console.log('đŸ—‘ī¸ Removing global hooks...');
134
+
135
+ if (!fs.existsSync(this.claudeHooksDir)) {
136
+ console.log(' âš ī¸ No hooks directory found');
137
+ return;
138
+ }
139
+
140
+ // Remove claude-all specific hooks
141
+ const hooks = ['hooks.json', 'run-hook.cmd', 'session-start.sh'];
142
+ let count = 0;
143
+
144
+ hooks.forEach(hook => {
145
+ const hookPath = path.join(this.claudeHooksDir, hook);
146
+ if (fs.existsSync(hookPath)) {
147
+ fs.unlinkSync(hookPath);
148
+ console.log(` ✅ Removed: ${hook}`);
149
+ count++;
150
+ }
151
+ });
152
+
153
+ if (count === 0) {
154
+ console.log(' â„šī¸ No claude-all hooks to remove');
155
+ } else {
156
+ console.log(`📊 Removed ${count} global hooks`);
157
+ }
158
+ }
159
+
160
+ removeSkills() {
161
+ console.log('');
162
+ console.log('đŸ—‘ī¸ Removing global skills...');
163
+
164
+ if (!fs.existsSync(this.claudeGlobalSkillsDir)) {
165
+ console.log(' âš ī¸ No global skills directory found');
166
+ return;
167
+ }
168
+
169
+ // Remove all skills from global folder
170
+ const skills = fs.readdirSync(this.claudeGlobalSkillsDir);
171
+ let count = 0;
172
+
173
+ skills.forEach(skill => {
174
+ const skillPath = path.join(this.claudeGlobalSkillsDir, skill);
175
+ const stat = fs.statSync(skillPath);
176
+
177
+ if (stat.isDirectory()) {
178
+ // Remove directory recursively
179
+ const remove = (dir) => {
180
+ const items = fs.readdirSync(dir);
181
+ items.forEach(item => {
182
+ const fullPath = path.join(dir, item);
183
+ const itemStat = fs.statSync(fullPath);
184
+
185
+ if (itemStat.isDirectory()) {
186
+ remove(fullPath);
187
+ fs.rmdirSync(fullPath);
188
+ } else {
189
+ fs.unlinkSync(fullPath);
190
+ }
191
+ });
192
+ };
193
+
194
+ remove(skillPath);
195
+ fs.rmdirSync(skillPath);
196
+ console.log(` ✅ Removed: ${skill}/`);
197
+ count++;
198
+ } else {
199
+ fs.unlinkSync(skillPath);
200
+ console.log(` ✅ Removed: ${skill}`);
201
+ count++;
202
+ }
203
+ });
204
+
205
+ if (count === 0) {
206
+ console.log(' â„šī¸ No claude-all skills to remove');
207
+ } else {
208
+ console.log(`📊 Removed ${count} skills`);
209
+
210
+ // Remove directory if empty
211
+ try {
212
+ if (fs.readdirSync(this.claudeGlobalSkillsDir).length === 0) {
213
+ fs.rmdirSync(this.claudeGlobalSkillsDir);
214
+ console.log(` ✅ Removed empty directory: ${this.claudeGlobalSkillsDir}`);
215
+ }
216
+ } catch (e) {
217
+ // Directory not empty or other error, ignore
218
+ }
219
+ }
220
+ }
221
+
222
+ uninstall() {
223
+ try {
224
+ this.printHeader();
225
+
226
+ if (!this.checkInstalled()) {
227
+ console.log('');
228
+ console.log('â„šī¸ Nothing to uninstall');
229
+ return;
230
+ }
231
+
232
+ // Remove commands
233
+ this.removeCommands();
234
+
235
+ // Remove global skills
236
+ this.removeSkills();
237
+
238
+ // Remove global agents
239
+ this.removeAgents();
240
+
241
+ // Remove global hooks
242
+ this.removeGlobalHooks();
243
+
244
+ // Remove main plugin directory
245
+ console.log('');
246
+ console.log('đŸ—‘ī¸ Removing superpowers directory...');
247
+ this.removeDirectory(this.claudePluginsDir);
248
+ console.log(` ✅ Removed: ${this.claudePluginsDir}`);
249
+
250
+ console.log('');
251
+ console.log('🎉 UNINSTALLATION COMPLETED!');
252
+ console.log('=========================');
253
+ console.log('');
254
+ console.log('✅ Superpowers removed from Claude Code');
255
+ console.log('');
256
+ console.log('💡 Note: You may need to restart Claude Code');
257
+
258
+ } catch (error) {
259
+ console.error('');
260
+ console.error('❌ Uninstallation failed:', error.message);
261
+ console.error(error.stack);
262
+ process.exit(1);
263
+ }
264
+ }
265
+ }
266
+
267
+ // Run uninstaller if called directly
268
+ if (require.main === module) {
269
+ const uninstaller = new SuperpowersUninstaller();
270
+ uninstaller.uninstall();
271
+ }
272
+
273
+ module.exports = SuperpowersUninstaller;