goodvibesonly-cc 0.3.0 → 0.3.2
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/.claude-plugin/plugin.json +25 -0
- package/README.md +43 -27
- package/package.json +3 -2
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "goodvibesonly",
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "Security scanner for vibe-coded projects. Automatically scans for hardcoded secrets, SQL injection, XSS, and other vulnerabilities before commits.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "jddoesdev",
|
|
7
|
+
"url": "https://github.com/jddoesdev"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/jddoesdev/goodvibesonly",
|
|
10
|
+
"repository": "https://github.com/jddoesdev/goodvibesonly",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"security",
|
|
14
|
+
"scanner",
|
|
15
|
+
"vibe-coding",
|
|
16
|
+
"secrets",
|
|
17
|
+
"vulnerabilities",
|
|
18
|
+
"sql-injection",
|
|
19
|
+
"xss",
|
|
20
|
+
"claude-code"
|
|
21
|
+
],
|
|
22
|
+
"commands": "./commands",
|
|
23
|
+
"skills": "./skills",
|
|
24
|
+
"hooks": "./hooks/hooks.json"
|
|
25
|
+
}
|
package/README.md
CHANGED
|
@@ -1,33 +1,35 @@
|
|
|
1
1
|
```
|
|
2
2
|
╔═════════════════════════════════════════════════════════════════╗
|
|
3
3
|
║ ║
|
|
4
|
-
║
|
|
5
|
-
║
|
|
6
|
-
║
|
|
7
|
-
║
|
|
8
|
-
║
|
|
9
|
-
║
|
|
4
|
+
║ ░██████╗░██╗░░░██╗░█████╗░ ║
|
|
5
|
+
║ ██╔════╝░██║░░░██║██╔══██╗ ║
|
|
6
|
+
║ ██║░░██╗░╚██╗░██╔╝██║░░██║ ║
|
|
7
|
+
║ ██║░░╚██╗░╚████╔╝░██║░░██║ ║
|
|
8
|
+
║ ╚██████╔╝░░╚██╔╝░░╚█████╔╝ ║
|
|
9
|
+
║ ░╚═════╝░░░░╚═╝░░░░╚════╝░ ║
|
|
10
10
|
║ ║
|
|
11
|
-
║ 🛡️ security scanner for vibe coders 🛡️
|
|
11
|
+
║ 🛡️ security scanner for vibe coders 🛡️ ║
|
|
12
12
|
║ ║
|
|
13
13
|
╚═════════════════════════════════════════════════════════════════╝
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
# GoodVibesOnly
|
|
17
17
|
|
|
18
|
-
**Security scanner for vibe-coded projects.** A Claude Code extension that automatically scans for vulnerabilities
|
|
18
|
+
**Security scanner for vibe-coded projects.** A Claude Code extension that automatically scans for vulnerabilities when Claude Code commits on your behalf.
|
|
19
19
|
|
|
20
20
|
## How It Works
|
|
21
21
|
|
|
22
|
-
GoodVibesOnly uses Claude Code's hooks system to intercept git commands
|
|
22
|
+
GoodVibesOnly uses Claude Code's [hooks system](https://docs.anthropic.com/en/docs/claude-code/hooks) to intercept git commands **within Claude Code sessions**. It does not hook into git directly — it only triggers when Claude Code itself runs a Bash command.
|
|
23
23
|
|
|
24
|
-
1. **
|
|
25
|
-
2. **
|
|
26
|
-
3. **Blocks on critical issues** - Prevents
|
|
24
|
+
1. **Intercepts Claude Code's Bash calls** - A `PreToolUse` hook runs the scanner whenever Claude Code is about to execute a Bash command
|
|
25
|
+
2. **Checks for git commit/push** - If the command is a `git commit` or `git push`, it scans staged files for hardcoded secrets, injection vulnerabilities, XSS, and more
|
|
26
|
+
3. **Blocks on critical issues** - Prevents Claude Code from executing the commit by exiting with code 2
|
|
27
27
|
4. **Allows warnings through** - High/medium issues are reported but don't block
|
|
28
28
|
|
|
29
|
+
> **Note:** This only works when committing through Claude Code. Running `git commit` directly in your terminal will not trigger the scan. For terminal-level git hooks, consider a traditional pre-commit hook tool.
|
|
30
|
+
|
|
29
31
|
```
|
|
30
|
-
You
|
|
32
|
+
You (in Claude Code): commit my changes
|
|
31
33
|
|
|
32
34
|
🛡️ GoodVibesOnly Security Scan
|
|
33
35
|
|
|
@@ -42,27 +44,39 @@ You: git commit -m "add user api"
|
|
|
42
44
|
db.query("SELECT * FROM users WHERE id = " + id)
|
|
43
45
|
|
|
44
46
|
Found 2 critical, 0 high, 0 medium issues.
|
|
45
|
-
Commit blocked
|
|
47
|
+
Commit blocked — fix critical issues before committing.
|
|
46
48
|
```
|
|
47
49
|
|
|
48
50
|
## Installation
|
|
49
51
|
|
|
50
|
-
### Option 1:
|
|
52
|
+
### Option 1: skills.sh (recommended)
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
npx skills add jddoesdev/goodvibesonly
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Or install globally:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
npx skills add jddoesdev/goodvibesonly --global
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Option 2: npx
|
|
51
65
|
|
|
52
66
|
```bash
|
|
53
67
|
npx goodvibesonly-cc
|
|
54
68
|
```
|
|
55
69
|
|
|
56
|
-
### Option
|
|
70
|
+
### Option 3: npm global install
|
|
57
71
|
|
|
58
72
|
```bash
|
|
59
73
|
npm install -g goodvibesonly-cc
|
|
60
74
|
```
|
|
61
75
|
|
|
62
|
-
### Option
|
|
76
|
+
### Option 4: Manual
|
|
63
77
|
|
|
64
78
|
```bash
|
|
65
|
-
git clone https://github.com/
|
|
79
|
+
git clone https://github.com/jddoesdev/goodvibesonly.git
|
|
66
80
|
cd goodvibesonly
|
|
67
81
|
node bin/install.js --global
|
|
68
82
|
```
|
|
@@ -80,11 +94,11 @@ node bin/install.js --uninstall # Remove GoodVibesOnly
|
|
|
80
94
|
|
|
81
95
|
### Automatic (via hooks)
|
|
82
96
|
|
|
83
|
-
|
|
97
|
+
When working inside Claude Code, GoodVibesOnly runs automatically whenever Claude executes a git commit or push:
|
|
84
98
|
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
|
|
99
|
+
```
|
|
100
|
+
You: commit my changes # Scans before Claude runs git commit
|
|
101
|
+
You: push to origin # Scans before Claude runs git push
|
|
88
102
|
```
|
|
89
103
|
|
|
90
104
|
### Manual Scan
|
|
@@ -148,21 +162,23 @@ goodvibesonly/
|
|
|
148
162
|
|
|
149
163
|
## How It's Different
|
|
150
164
|
|
|
151
|
-
- **Actually enforces** - Uses Claude Code hooks to block commits, not just advisory
|
|
165
|
+
- **Actually enforces** - Uses Claude Code's PreToolUse hooks to block commits, not just advisory
|
|
152
166
|
- **Real scanning** - Node.js script with regex patterns, not just instructions for Claude
|
|
153
|
-
- **Zero config** - Installs hooks automatically
|
|
167
|
+
- **Zero config** - Installs hooks automatically into Claude Code's settings
|
|
154
168
|
- **Uninstall support** - Clean removal with `--uninstall`
|
|
155
169
|
|
|
156
170
|
## Technical Details
|
|
157
171
|
|
|
158
|
-
GoodVibesOnly installs a `PreToolUse` hook
|
|
172
|
+
GoodVibesOnly installs a `PreToolUse` hook in Claude Code's settings. This hook runs before every Bash tool call that Claude Code makes. When the scanner detects the command is a `git commit` or `git push`:
|
|
159
173
|
|
|
160
174
|
1. Reads staged files via `git diff --cached --name-only`
|
|
161
175
|
2. Scans each file against vulnerability patterns
|
|
162
176
|
3. Outputs findings to stderr
|
|
163
|
-
4. Exits with code 2 to block (critical issues) or 0 to allow
|
|
177
|
+
4. Exits with code 2 to block Claude Code from running the command (critical issues) or 0 to allow it
|
|
178
|
+
|
|
179
|
+
For non-git commands, the scanner exits immediately with code 0 (allow).
|
|
164
180
|
|
|
165
|
-
The hook is configured in
|
|
181
|
+
The hook is configured in Claude Code's `settings.json`:
|
|
166
182
|
|
|
167
183
|
```json
|
|
168
184
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "goodvibesonly-cc",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "Security scanner for vibe-coded projects - Claude Code extension",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"license": "MIT",
|
|
22
22
|
"repository": {
|
|
23
23
|
"type": "git",
|
|
24
|
-
"url": "https://github.com/jddoesdev/
|
|
24
|
+
"url": "https://github.com/jddoesdev/goodvibesonly.git"
|
|
25
25
|
},
|
|
26
26
|
"engines": {
|
|
27
27
|
"node": ">=18.0.0"
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
"commands/",
|
|
32
32
|
"skills/",
|
|
33
33
|
"hooks/",
|
|
34
|
+
".claude-plugin/",
|
|
34
35
|
"README.md",
|
|
35
36
|
"LICENSE"
|
|
36
37
|
]
|