mirror of
https://github.com/obra/superpowers.git
synced 2026-04-23 18:09:05 +08:00
Compare commits
4 Commits
fix/window
...
opencode-n
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d525598b32 | ||
|
|
6491a1d9cf | ||
|
|
06dcd150ad | ||
|
|
6354d817eb |
@@ -1,14 +0,0 @@
|
|||||||
@echo off
|
|
||||||
setlocal
|
|
||||||
|
|
||||||
REM Windows shim for the extensionless Node.js launcher (superpowers-codex).
|
|
||||||
REM
|
|
||||||
REM Windows cannot execute extensionless scripts with shebangs, so this wrapper
|
|
||||||
REM invokes Node.js directly.
|
|
||||||
REM
|
|
||||||
REM Usage:
|
|
||||||
REM superpowers-codex.cmd bootstrap
|
|
||||||
REM superpowers-codex.cmd use-skill superpowers:brainstorming
|
|
||||||
REM superpowers-codex.cmd find-skills
|
|
||||||
|
|
||||||
node "%~dp0superpowers-codex" %*
|
|
||||||
17
.gitattributes
vendored
17
.gitattributes
vendored
@@ -1,17 +0,0 @@
|
|||||||
# Ensure shell scripts always have LF line endings
|
|
||||||
*.sh text eol=lf
|
|
||||||
|
|
||||||
# Ensure the polyglot wrapper keeps LF (it's parsed by both cmd and bash)
|
|
||||||
*.cmd text eol=lf
|
|
||||||
|
|
||||||
# Common text files
|
|
||||||
*.md text eol=lf
|
|
||||||
*.json text eol=lf
|
|
||||||
*.js text eol=lf
|
|
||||||
*.mjs text eol=lf
|
|
||||||
*.ts text eol=lf
|
|
||||||
|
|
||||||
# Explicitly mark binary files
|
|
||||||
*.png binary
|
|
||||||
*.jpg binary
|
|
||||||
*.gif binary
|
|
||||||
@@ -36,20 +36,6 @@ Components:
|
|||||||
|
|
||||||
The visual companion is opt-in and falls back gracefully to terminal-only operation.
|
The visual companion is opt-in and falls back gracefully to terminal-only operation.
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
**Fixed Windows hook execution for Claude Code 2.1.x**
|
|
||||||
|
|
||||||
Claude Code 2.1.x changed how hooks execute on Windows: it now auto-detects `.sh` files in commands and prepends `bash `. This broke the polyglot wrapper pattern because `bash "run-hook.cmd" session-start.sh` tries to execute the .cmd file as a bash script.
|
|
||||||
|
|
||||||
Fix: hooks.json now calls session-start.sh directly. Claude Code 2.1.x handles the bash invocation automatically. Also added .gitattributes to enforce LF line endings for shell scripts (fixes CRLF issues on Windows checkout).
|
|
||||||
|
|
||||||
**Fixed Windows Codex launcher (#243, #285)**
|
|
||||||
|
|
||||||
Windows cannot execute extensionless scripts with shebangs, so the `superpowers-codex` script would either open an "Open with" dialog or produce no output in PowerShell.
|
|
||||||
|
|
||||||
Fix: Added `.codex/superpowers-codex.cmd` wrapper that invokes Node.js directly. Updated docs with Windows-specific installation and usage instructions.
|
|
||||||
|
|
||||||
### Improvements
|
### Improvements
|
||||||
|
|
||||||
**Instruction priority clarified in using-superpowers**
|
**Instruction priority clarified in using-superpowers**
|
||||||
|
|||||||
@@ -19,27 +19,13 @@ Fetch and follow instructions from https://raw.githubusercontent.com/obra/superp
|
|||||||
|
|
||||||
### Installation Steps
|
### Installation Steps
|
||||||
|
|
||||||
#### macOS / Linux
|
#### 1. Clone Superpowers
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
mkdir -p ~/.codex/superpowers
|
mkdir -p ~/.codex/superpowers
|
||||||
git clone https://github.com/obra/superpowers.git ~/.codex/superpowers
|
git clone https://github.com/obra/superpowers.git ~/.codex/superpowers
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Windows
|
|
||||||
|
|
||||||
**Command Prompt:**
|
|
||||||
```cmd
|
|
||||||
mkdir "%USERPROFILE%\.codex\superpowers"
|
|
||||||
git clone https://github.com/obra/superpowers.git "%USERPROFILE%\.codex\superpowers"
|
|
||||||
```
|
|
||||||
|
|
||||||
**PowerShell:**
|
|
||||||
```powershell
|
|
||||||
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.codex\superpowers"
|
|
||||||
git clone https://github.com/obra/superpowers.git "$env:USERPROFILE\.codex\superpowers"
|
|
||||||
```
|
|
||||||
|
|
||||||
#### 2. Install Bootstrap
|
#### 2. Install Bootstrap
|
||||||
|
|
||||||
The bootstrap file is included in the repository at `.codex/superpowers-bootstrap.md`. Codex will automatically use it from the cloned location.
|
The bootstrap file is included in the repository at `.codex/superpowers-bootstrap.md`. Codex will automatically use it from the cloned location.
|
||||||
@@ -48,20 +34,12 @@ The bootstrap file is included in the repository at `.codex/superpowers-bootstra
|
|||||||
|
|
||||||
Tell Codex:
|
Tell Codex:
|
||||||
|
|
||||||
**macOS / Linux:**
|
|
||||||
```
|
```
|
||||||
Run ~/.codex/superpowers/.codex/superpowers-codex find-skills to show available skills
|
Run ~/.codex/superpowers/.codex/superpowers-codex find-skills to show available skills
|
||||||
```
|
```
|
||||||
|
|
||||||
**Windows:**
|
|
||||||
```
|
|
||||||
Run ~/.codex/superpowers/.codex/superpowers-codex.cmd find-skills to show available skills
|
|
||||||
```
|
|
||||||
|
|
||||||
You should see a list of available skills with descriptions.
|
You should see a list of available skills with descriptions.
|
||||||
|
|
||||||
> **Note:** On Windows, always use the `.cmd` extension when running superpowers-codex commands.
|
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
### Finding Skills
|
### Finding Skills
|
||||||
@@ -148,26 +126,12 @@ git pull
|
|||||||
2. Check CLI works: `~/.codex/superpowers/.codex/superpowers-codex find-skills`
|
2. Check CLI works: `~/.codex/superpowers/.codex/superpowers-codex find-skills`
|
||||||
3. Verify skills have SKILL.md files
|
3. Verify skills have SKILL.md files
|
||||||
|
|
||||||
### CLI script not executable (macOS/Linux)
|
### CLI script not executable
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
chmod +x ~/.codex/superpowers/.codex/superpowers-codex
|
chmod +x ~/.codex/superpowers/.codex/superpowers-codex
|
||||||
```
|
```
|
||||||
|
|
||||||
### Windows: "Open with" dialog or no output
|
|
||||||
|
|
||||||
On Windows, you must use the `.cmd` wrapper:
|
|
||||||
|
|
||||||
```cmd
|
|
||||||
~/.codex/superpowers/.codex/superpowers-codex.cmd find-skills
|
|
||||||
```
|
|
||||||
|
|
||||||
Or invoke with Node directly:
|
|
||||||
|
|
||||||
```cmd
|
|
||||||
node "%USERPROFILE%\.codex\superpowers\.codex\superpowers-codex" find-skills
|
|
||||||
```
|
|
||||||
|
|
||||||
### Node.js errors
|
### Node.js errors
|
||||||
|
|
||||||
The CLI script requires Node.js. Verify:
|
The CLI script requires Node.js. Verify:
|
||||||
@@ -176,7 +140,7 @@ The CLI script requires Node.js. Verify:
|
|||||||
node --version
|
node --version
|
||||||
```
|
```
|
||||||
|
|
||||||
Should show v14 or higher (v18+ recommended).
|
Should show v14 or higher (v18+ recommended for ES module support).
|
||||||
|
|
||||||
## Getting Help
|
## Getting Help
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
"hooks": [
|
"hooks": [
|
||||||
{
|
{
|
||||||
"type": "command",
|
"type": "command",
|
||||||
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/session-start.sh"
|
"command": "\"${CLAUDE_PLUGIN_ROOT}/hooks/run-hook.cmd\" session-start.sh"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,30 +1,6 @@
|
|||||||
: << 'CMDBLOCK'
|
: << 'CMDBLOCK'
|
||||||
@echo off
|
@echo off
|
||||||
REM ============================================================================
|
REM Polyglot wrapper: runs .sh scripts cross-platform
|
||||||
REM DEPRECATED: This polyglot wrapper is no longer used as of Claude Code 2.1.x
|
|
||||||
REM ============================================================================
|
|
||||||
REM
|
|
||||||
REM Claude Code 2.1.x changed the Windows execution model for hooks:
|
|
||||||
REM
|
|
||||||
REM Before (2.0.x): Hooks ran with shell:true, using the system default shell.
|
|
||||||
REM This wrapper provided cross-platform compatibility by
|
|
||||||
REM being both a valid .cmd file (Windows) and bash script.
|
|
||||||
REM
|
|
||||||
REM After (2.1.x): Claude Code now auto-detects .sh files in hook commands
|
|
||||||
REM and prepends "bash " on Windows. This broke the wrapper
|
|
||||||
REM because the command:
|
|
||||||
REM "run-hook.cmd" session-start.sh
|
|
||||||
REM became:
|
|
||||||
REM bash "run-hook.cmd" session-start.sh
|
|
||||||
REM ...and bash cannot execute a .cmd file.
|
|
||||||
REM
|
|
||||||
REM The fix: hooks.json now calls session-start.sh directly. Claude Code 2.1.x
|
|
||||||
REM handles the bash invocation automatically on Windows.
|
|
||||||
REM
|
|
||||||
REM This file is kept for reference and potential backward compatibility.
|
|
||||||
REM ============================================================================
|
|
||||||
REM
|
|
||||||
REM Original purpose: Polyglot wrapper to run .sh scripts cross-platform
|
|
||||||
REM Usage: run-hook.cmd <script-name> [args...]
|
REM Usage: run-hook.cmd <script-name> [args...]
|
||||||
REM The script should be in the same directory as this wrapper
|
REM The script should be in the same directory as this wrapper
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user