mirror of
https://github.com/SuperClaude-Org/SuperClaude_Framework.git
synced 2025-12-21 19:56:45 +00:00
Merge branch 'SuperClaude_V4_Beta' of https://github.com/SuperClaude-Org/SuperClaude_Framework into SuperClaude_V4_Beta
This commit is contained in:
commit
75fa5ea84f
@ -29,6 +29,44 @@ SuperClaude install
|
|||||||
|
|
||||||
# That's it! 🎉
|
# That's it! 🎉
|
||||||
```
|
```
|
||||||
|
### Option C: From npm (Global, after publishing this won't works for now)
|
||||||
|
```bash
|
||||||
|
npm install -g superclaude
|
||||||
|
superclaude --help
|
||||||
|
```
|
||||||
|
- Requires package to be published on npmjs.org.
|
||||||
|
- Installs the npm wrapper and sets up SuperClaude via pip.
|
||||||
|
|
||||||
|
### Option D: From npm (Local Project this won't works for now)
|
||||||
|
```bash
|
||||||
|
npm install superclaude
|
||||||
|
npx superclaude --help
|
||||||
|
```
|
||||||
|
- Installs SuperClaude wrapper inside your project.
|
||||||
|
- Use `npx` to run it locally.
|
||||||
|
- Also requires publishing to npmjs.org.
|
||||||
|
|
||||||
|
### Option E: From GitHub (Works without npm publish)
|
||||||
|
```bash
|
||||||
|
# Global install directly from GitHub
|
||||||
|
yarn global add github:SuperClaude-Org/SuperClaude_Framework
|
||||||
|
# or
|
||||||
|
npm install -g github:SuperClaude-Org/SuperClaude_Framework
|
||||||
|
|
||||||
|
superclaude --help
|
||||||
|
```
|
||||||
|
```bash
|
||||||
|
# Local project install from GitHub
|
||||||
|
npm install github:SuperClaude-Org/SuperClaude_Framework
|
||||||
|
npx superclaude --help
|
||||||
|
```
|
||||||
|
- Works immediately without publishing to npm registry.
|
||||||
|
|
||||||
|
- Runs SuperClaude instantly.
|
||||||
|
- First run may install Python package via pip.
|
||||||
|
- Subsequent runs skip reinstallation unless explicitly updated.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
**What you just got:**
|
**What you just got:**
|
||||||
- ✅ 21 intelligent commands that auto-activate specialized capabilities
|
- ✅ 21 intelligent commands that auto-activate specialized capabilities
|
||||||
|
|||||||
22
README.md
22
README.md
@ -178,6 +178,28 @@ git clone https://github.com/SuperClaude-Org/SuperClaude_Framework.git
|
|||||||
cd SuperClaude_Framework
|
cd SuperClaude_Framework
|
||||||
pip install -e .
|
pip install -e .
|
||||||
```
|
```
|
||||||
|
**Option C: From npm (Global, requires publish this method won't works for now)**
|
||||||
|
```bash
|
||||||
|
npm install -g superclaude
|
||||||
|
superclaude --help
|
||||||
|
```
|
||||||
|
|
||||||
|
**Option D: From npm (Local Project, requires publish this method won't works for now)**
|
||||||
|
```bash
|
||||||
|
npm install superclaude
|
||||||
|
npx superclaude --help
|
||||||
|
```
|
||||||
|
|
||||||
|
**Option E: From GitHub (Works now, no publish needed)**
|
||||||
|
```bash
|
||||||
|
# Global
|
||||||
|
npm install -g github:SuperClaude-Org/SuperClaude_Framework#SuperClaude_V4_Beta
|
||||||
|
superclaude --help
|
||||||
|
|
||||||
|
# Local
|
||||||
|
npm install github:SuperClaude-Org/SuperClaude_Framework#SuperClaude_V4_Beta
|
||||||
|
npx superclaude --help
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
**Missing Python?** Install Python 3.8+ first:
|
**Missing Python?** Install Python 3.8+ first:
|
||||||
|
|||||||
36
bin/checkEnv.js
Normal file
36
bin/checkEnv.js
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
const { spawnSync } = require("child_process");
|
||||||
|
|
||||||
|
function run(cmd, args = [], opts = {}) {
|
||||||
|
return spawnSync(cmd, args, {
|
||||||
|
stdio: opts.stdio || "pipe",
|
||||||
|
shell: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkCommand(cmd, args = ["--version"]) {
|
||||||
|
const result = run(cmd, args);
|
||||||
|
return result.status === 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
function detectPython() {
|
||||||
|
const candidates = ["python3", "python", "py"];
|
||||||
|
for (let c of candidates) {
|
||||||
|
if (checkCommand(c)) return c;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function detectPip() {
|
||||||
|
const candidates = ["pip3", "pip", "py -m pip"];
|
||||||
|
for (let c of candidates) {
|
||||||
|
if (checkCommand(c.split(" ")[0])) return c;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function isSuperClaudeInstalled(pipCmd) {
|
||||||
|
const result = run(pipCmd, ["show", "SuperClaude"]);
|
||||||
|
return result.status === 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = { run, detectPython, detectPip, isSuperClaudeInstalled };
|
||||||
22
bin/cli.js
Normal file
22
bin/cli.js
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
const { spawnSync } = require("child_process");
|
||||||
|
const { detectPython, detectPip } = require("./checkEnv");
|
||||||
|
|
||||||
|
let pythonCmd = detectPython();
|
||||||
|
if (!pythonCmd) {
|
||||||
|
console.error("❌ Python 3 is required but not found.");
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
const args = process.argv.slice(2);
|
||||||
|
|
||||||
|
// Special case: update command
|
||||||
|
if (args[0] === "update") {
|
||||||
|
require("./update");
|
||||||
|
process.exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Forward everything to Python SuperClaude
|
||||||
|
const result = spawnSync(pythonCmd, ["-m", "SuperClaude", ...args], { stdio: "inherit", shell: true });
|
||||||
|
process.exit(result.status);
|
||||||
|
|
||||||
31
bin/install.js
Normal file
31
bin/install.js
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
const { run, detectPython, detectPip, isSuperClaudeInstalled } = require("./checkEnv");
|
||||||
|
|
||||||
|
console.log("🔍 Checking environment...");
|
||||||
|
|
||||||
|
let pythonCmd = detectPython();
|
||||||
|
if (!pythonCmd) {
|
||||||
|
console.error("❌ Python 3 is required but not found.");
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
console.log(`✅ Found Python: ${pythonCmd}`);
|
||||||
|
|
||||||
|
let pipCmd = detectPip();
|
||||||
|
if (!pipCmd) {
|
||||||
|
console.error("❌ pip is required but not found.");
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
console.log(`✅ Found Pip: ${pipCmd}`);
|
||||||
|
|
||||||
|
// Check installation
|
||||||
|
if (!isSuperClaudeInstalled(pipCmd)) {
|
||||||
|
console.log("📦 Installing SuperClaude from PyPI...");
|
||||||
|
const result = run(pipCmd, ["install", "SuperClaude"], { stdio: "inherit" });
|
||||||
|
if (result.status !== 0) {
|
||||||
|
console.error("❌ Installation failed.");
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
console.log("✅ SuperClaude installed successfully!");
|
||||||
|
} else {
|
||||||
|
console.log("✅ SuperClaude already installed.");
|
||||||
|
}
|
||||||
17
bin/update.js
Normal file
17
bin/update.js
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
const { run, detectPip } = require("./checkEnv");
|
||||||
|
|
||||||
|
let pipCmd = detectPip();
|
||||||
|
if (!pipCmd) {
|
||||||
|
console.error("❌ pip not found, cannot update.");
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log("🔄 Updating SuperClaude from PyPI...");
|
||||||
|
const result = run(pipCmd, ["install", "--upgrade", "SuperClaude"], { stdio: "inherit" });
|
||||||
|
if (result.status !== 0) {
|
||||||
|
console.error("❌ Update failed.");
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
console.log("✅ SuperClaude updated successfully!");
|
||||||
|
|
||||||
65
package.json
Normal file
65
package.json
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
{
|
||||||
|
"name": "superclaude",
|
||||||
|
"version": "4.0.0",
|
||||||
|
"description": "SuperClaude official npm wrapper for the Python package (PyPI: SuperClaude). Run with npx superclaude anywhere!",
|
||||||
|
"bin": {
|
||||||
|
"superclaude": "./bin/cli.js"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"postinstall": "node ./bin/install.js",
|
||||||
|
"update": "node ./bin/update.js",
|
||||||
|
"lint": "eslint . --ext .js,.mjs,.cjs",
|
||||||
|
"test": "echo \"No tests defined yet\" && exit 0"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"bin/",
|
||||||
|
"README.md",
|
||||||
|
"LICENSE"
|
||||||
|
],
|
||||||
|
"author": {
|
||||||
|
"name": "SuperClaude Org",
|
||||||
|
"url": "https://github.com/SuperClaude-Org"
|
||||||
|
},
|
||||||
|
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/SuperClaude-Org/SuperClaude_Framework.git"
|
||||||
|
},
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/SuperClaude-Org/SuperClaude_Framework/issues"
|
||||||
|
},
|
||||||
|
"homepage": "https://github.com/SuperClaude-Org/SuperClaude_Framework#readme",
|
||||||
|
"license": "MIT",
|
||||||
|
"keywords": [
|
||||||
|
"superclaude",
|
||||||
|
"ai",
|
||||||
|
"cli",
|
||||||
|
"pypi",
|
||||||
|
"python",
|
||||||
|
"wrapper",
|
||||||
|
"cross-platform",
|
||||||
|
"automation"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": ">=16"
|
||||||
|
},
|
||||||
|
"os": [
|
||||||
|
"darwin",
|
||||||
|
"linux",
|
||||||
|
"win32"
|
||||||
|
],
|
||||||
|
"cpu": [
|
||||||
|
"x64",
|
||||||
|
"arm64"
|
||||||
|
],
|
||||||
|
"funding": {
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/SuperClaude-Org"
|
||||||
|
},
|
||||||
|
"publishConfig": {
|
||||||
|
"access": "public",
|
||||||
|
"registry": "https://registry.npmjs.org/"
|
||||||
|
},
|
||||||
|
"preferGlobal": true,
|
||||||
|
"type": "commonjs"
|
||||||
|
}
|
||||||
@ -4,10 +4,10 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "SuperClaude"
|
name = "SuperClaude"
|
||||||
version = "4.0.0b1"
|
version = "4.0.0"
|
||||||
authors = [
|
authors = [
|
||||||
{name = "NomenAK", email = "anton.knoery@gmail.com"},
|
{name = "NomenAK", email = "anton.knoery@gmail.com"},
|
||||||
{name = "Mithun Gowda B"}
|
{name = "Mithun Gowda B", email = "mithungowda.b7411@gmail.com"}
|
||||||
]
|
]
|
||||||
description = "SuperClaude Framework Management Hub - AI-enhanced development framework for Claude Code"
|
description = "SuperClaude Framework Management Hub - AI-enhanced development framework for Claude Code"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user