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.
- package/LICENSE +21 -0
- package/LICENSE.md +70 -0
- package/README.md +133 -0
- package/VERSION +1 -0
- package/agents/accessibility-reviewer.md +96 -0
- package/agents/ai-prompt-optimizer.md +94 -0
- package/agents/api-tester.md +102 -0
- package/agents/code-generator.md +94 -0
- package/agents/code-reviewer.md +47 -0
- package/agents/component-generator.md +102 -0
- package/agents/doc-generator.md +91 -0
- package/agents/migration-generator.md +94 -0
- package/agents/performance-analyzer.md +90 -0
- package/agents/proactive-mode.md +91 -0
- package/agents/readme-generator.md +101 -0
- package/agents/security-auditor.md +86 -0
- package/agents/terraform-generator.md +94 -0
- package/agents/test-generator.md +76 -0
- package/bin/agentrouter.json +36 -0
- package/bin/ai-chat +20 -0
- package/bin/antigravity.json +76 -0
- package/bin/api-manager +340 -0
- package/bin/claude-launcher +19 -0
- package/bin/claude-master +15 -0
- package/bin/claude_master.py +295 -0
- package/bin/cohere.json +7 -0
- package/bin/deepseek.json +44 -0
- package/bin/gemini.json +56 -0
- package/bin/glm.json +21 -0
- package/bin/groq.json +41 -0
- package/bin/minimax.json +26 -0
- package/bin/mistral.json +7 -0
- package/bin/moonshot.json +7 -0
- package/bin/ollama.json +36 -0
- package/bin/openai.json +46 -0
- package/bin/openrouter.json +38 -0
- package/bin/perplexity.json +12 -0
- package/bin/qwen.json +7 -0
- package/bin/switch-provider +73 -0
- package/bin/test.json +7 -0
- package/bin/xai.json +41 -0
- package/claude-all +2707 -0
- package/claude-config.json +340 -0
- package/claude-suite/REFACTORING_SUMMARY.md +88 -0
- package/claude-suite/auth/.antigravity_proxy.py +78 -0
- package/claude-suite/auth/__pycache__/openai_auth.cpython-312.pyc +0 -0
- package/claude-suite/auth/gemini_auth.py +80 -0
- package/claude-suite/auth/openai_auth.py +138 -0
- package/claude-suite/backups/claude-all-before-refactor +1075 -0
- package/claude-suite/backups/claude-all.backup +840 -0
- package/claude-suite/backups/claude-all.original +840 -0
- package/claude-suite/models/add-model-manual.sh +588 -0
- package/claude-suite/models/add-model.sh +114 -0
- package/claude-suite/models/model-switcher.sh +69 -0
- package/claude-suite/providers/claude-glm +89 -0
- package/claude-suite/providers/claude-glm-wrapper.sh +55 -0
- package/claude-suite/providers/claude-minimax +12 -0
- package/claude-suite/providers/claude-smart +132 -0
- package/claude-suite/providers/xai_chat.sh +56 -0
- package/claude-suite/utils/__pycache__/claude_master.cpython-312.pyc +0 -0
- package/claude-suite/utils/antigravity_proxy_server.py +168 -0
- package/claude-suite/utils/claude-all-help.txt +83 -0
- package/claude-suite/utils/claude_master.py +408 -0
- package/commands/brainstorm.md +5 -0
- package/commands/execute-plan.md +5 -0
- package/commands/write-plan.md +5 -0
- package/docs/ANTIGRAVITY-SETUP.md +176 -0
- package/docs/AUTH_CREDENTIALS.md +54 -0
- package/docs/NPM-INSTALLATION.md +166 -0
- package/hooks/hooks.json +15 -0
- package/hooks/run-hook.cmd +19 -0
- package/hooks/session-start.sh +52 -0
- package/install.sh +155 -0
- package/mcp.json +34 -0
- package/model/perplexity.json +12 -0
- package/package.json +69 -0
- package/plugins/README.md +47 -0
- package/plugins/installed_plugins.json +317 -0
- package/plugins/known_marketplaces.json +10 -0
- package/plugins/marketplace-info/marketplace.json +517 -0
- package/postinstall.js +100 -0
- package/scripts/antigravity_proxy_server.py +168 -0
- package/scripts/get_gemini_api_key.py +96 -0
- package/scripts/setup_antigravity_auth.py +171 -0
- package/skills/api-development/SKILL.md +11 -0
- package/skills/api-development/openapi/api-documentation.yaml +108 -0
- package/skills/brainstorming/SKILL.md +54 -0
- package/skills/code-quality/SKILL.md +196 -0
- package/skills/condition-based-waiting/SKILL.md +120 -0
- package/skills/condition-based-waiting/example.ts +158 -0
- package/skills/database-development/SKILL.md +11 -0
- package/skills/database-development/migrations/migration.template.sql +49 -0
- package/skills/defense-in-depth/SKILL.md +127 -0
- package/skills/deployment/SKILL.md +11 -0
- package/skills/deployment/ci-cd/github-actions.yml +95 -0
- package/skills/deployment/docker/Dockerfile.template +39 -0
- package/skills/dispatching-parallel-agents/SKILL.md +180 -0
- package/skills/documentation-generation/SKILL.md +8 -0
- package/skills/documentation-generation/templates/README.template.md +60 -0
- package/skills/error-handling/SKILL.md +267 -0
- package/skills/executing-plans/SKILL.md +76 -0
- package/skills/finishing-a-development-branch/SKILL.md +200 -0
- package/skills/frontend-design/frontend-design/SKILL.md +42 -0
- package/skills/integration-testing/SKILL.md +13 -0
- package/skills/integration-testing/examples/contract-test.py +317 -0
- package/skills/integration-testing/examples/e2e-test.js +147 -0
- package/skills/integration-testing/examples/test-isolation.md +94 -0
- package/skills/logging-monitoring/SKILL.md +66 -0
- package/skills/mobile-development/SKILL.md +11 -0
- package/skills/mobile-development/responsive/responsive.css +80 -0
- package/skills/performance-optimization/SKILL.md +9 -0
- package/skills/performance-optimization/profiling/profile.template.js +21 -0
- package/skills/receiving-code-review/SKILL.md +209 -0
- package/skills/refactoring/SKILL.md +11 -0
- package/skills/refactoring/code-smells/common-smells.md +115 -0
- package/skills/requesting-code-review/SKILL.md +105 -0
- package/skills/requesting-code-review/code-reviewer.md +146 -0
- package/skills/root-cause-tracing/SKILL.md +174 -0
- package/skills/root-cause-tracing/find-polluter.sh +63 -0
- package/skills/security-review/SKILL.md +11 -0
- package/skills/security-review/checklists/owasp-checklist.md +31 -0
- package/skills/sharing-skills/SKILL.md +194 -0
- package/skills/subagent-driven-development/SKILL.md +240 -0
- package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +20 -0
- package/skills/subagent-driven-development/implementer-prompt.md +78 -0
- package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
- package/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/skills/systematic-debugging/SKILL.md +295 -0
- package/skills/systematic-debugging/test-academic.md +14 -0
- package/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/skills/test-driven-development/SKILL.md +364 -0
- package/skills/testing-anti-patterns/SKILL.md +302 -0
- package/skills/testing-skills-with-subagents/SKILL.md +387 -0
- package/skills/testing-skills-with-subagents/examples/CLAUDE_MD_TESTING.md +189 -0
- package/skills/ui-ux-review/SKILL.md +13 -0
- package/skills/ui-ux-review/checklists/ux-heuristics.md +61 -0
- package/skills/using-git-worktrees/SKILL.md +213 -0
- package/skills/using-superpowers/SKILL.md +101 -0
- package/skills/verification-before-completion/SKILL.md +139 -0
- package/skills/writing-plans/SKILL.md +116 -0
- package/skills/writing-skills/SKILL.md +622 -0
- package/skills/writing-skills/anthropic-best-practices.md +1150 -0
- package/skills/writing-skills/graphviz-conventions.dot +172 -0
- package/skills/writing-skills/persuasion-principles.md +187 -0
- package/update.sh +36 -0
- package/utils/check-superpowers.sh +114 -0
- package/utils/claude-branding.md +166 -0
- package/utils/config.js +185 -0
- package/utils/custom-claude-config.sh +89 -0
- package/utils/custom-claude-hooks.md +129 -0
- package/utils/custom-claude-lib.js +222 -0
- package/utils/customize-claude-ui.sh +162 -0
- package/utils/fix-claude-integration.sh +133 -0
- package/utils/help.js +125 -0
- package/utils/install-curl.ps1 +135 -0
- package/utils/install-curl.sh +525 -0
- package/utils/install-superpowers.js +411 -0
- package/utils/install.js +298 -0
- package/utils/install.sh +182 -0
- package/utils/postinstall.js +63 -0
- package/utils/rename-claude.sh +96 -0
- package/utils/uninstall-superpowers.js +273 -0
- package/utils/uninstall.ps1 +136 -0
- package/utils/uninstall.sh +163 -0
- package/utils/update.sh +160 -0
package/utils/install.sh
ADDED
|
@@ -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;
|