claude-yolo-extended 1.8.2 → 1.9.1
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/commands/shutdown.md +18 -0
- package/.claude/commands/startup.md +14 -0
- package/AI_HANDOFF.md +14 -0
- package/CLAUDE.md +8 -1
- package/bin/ascii-art.js +65 -0
- package/bin/cl.js +4 -18
- package/bin/cl.ps1 +36 -36
- package/bin/claude-yolo.js +6 -6
- package/package.json +3 -3
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
You are initiating the "Project Shutdown Protocol." Please execute the following steps sequentially:
|
|
2
|
+
|
|
3
|
+
1. **Update Handoff Documentation**
|
|
4
|
+
- Open (or create) `AI_HANDOFF.md`.
|
|
5
|
+
- Update the "Current State" section to reflect what we accomplished today.
|
|
6
|
+
- **CRITICAL:** Clear the old "Next Steps" and write a new, granular list of instructions for the *next* session. Include any known bugs or unfinished logic.
|
|
7
|
+
|
|
8
|
+
2. **Code Quality Check**
|
|
9
|
+
- Briefly review the files we modified today. Ensure there are no leftover debug print statements or commented-out blocks that shouldn't be there.
|
|
10
|
+
|
|
11
|
+
3. **Git Operations**
|
|
12
|
+
- Run `git add .`
|
|
13
|
+
- Generate a concise but descriptive commit message based on the work done.
|
|
14
|
+
- Run `git commit -m "your_message"`
|
|
15
|
+
- Run `git push`
|
|
16
|
+
|
|
17
|
+
4. **Final Status**
|
|
18
|
+
- Confirm when the push is successful and the handoff file is saved.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
You are initiating the "Project Startup Protocol." Please execute the following steps sequentially:
|
|
2
|
+
|
|
3
|
+
1. **Git Synchronization**
|
|
4
|
+
- Run `git status` to ensure the directory is clean.
|
|
5
|
+
- If clean, run `git pull` to ensure we have the latest remote changes.
|
|
6
|
+
|
|
7
|
+
2. **Context Retrieval**
|
|
8
|
+
- Check for a file named `AI_HANDOFF.md` in the root directory.
|
|
9
|
+
- **If found:** Read it to understand the current project state and the "Next Steps" defined in the previous session.
|
|
10
|
+
- **If NOT found:** Scan the `README.md` and the last 3 git commit messages to orient yourself, then create a new `AI_HANDOFF.md` file using the current context.
|
|
11
|
+
|
|
12
|
+
3. **Plan Formulation**
|
|
13
|
+
- Based specifically on the "Next Steps" from the handoff file, outline the plan for this session.
|
|
14
|
+
- Do not write code yet. Present the plan and wait for my approval.
|
package/AI_HANDOFF.md
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# AI Session Handoff
|
|
2
|
+
|
|
3
|
+
## Current State
|
|
4
|
+
* **Last Updated:** 2025-11-29
|
|
5
|
+
* **Status:** In-Progress
|
|
6
|
+
* **Context:** Initial setup of AI Handoff protocol.
|
|
7
|
+
|
|
8
|
+
## Recent Accomplishments
|
|
9
|
+
* [x] Established AI Command Structure
|
|
10
|
+
* [x] Created Handoff file
|
|
11
|
+
|
|
12
|
+
## NEXT STEPS (Resume Work Here)
|
|
13
|
+
1. [ ] Review project structure
|
|
14
|
+
2. [ ] Determine immediate coding tasks
|
package/CLAUDE.md
CHANGED
|
@@ -73,4 +73,11 @@ npm link
|
|
|
73
73
|
|
|
74
74
|
- **npm Package**: https://www.npmjs.com/package/claude-yolo-extended
|
|
75
75
|
- **GitHub Repository**: https://github.com/jslitzkerttcu/claude-yolo
|
|
76
|
-
- **Issues**: https://github.com/jslitzkerttcu/claude-yolo/issues
|
|
76
|
+
- **Issues**: https://github.com/jslitzkerttcu/claude-yolo/issues
|
|
77
|
+
|
|
78
|
+
## AI_HANDOFF.md Protocol
|
|
79
|
+
(These rules govern the 'AI_HANDOFF.md' file found in the root)
|
|
80
|
+
1. **Transient State Only:** This file is a specific 'mutex' token for the next session. It is NOT a project history log.
|
|
81
|
+
2. **No Documentation:** Do not write architectural decisions or code snippets here. Use README.md for that.
|
|
82
|
+
3. **Clean Up:** When updating this file, REMOVE completed tasks. Do not mark them as [x] and leave them. The file should only ever contain the *current* state and *immediate* next steps.
|
|
83
|
+
4. **Size Limit:** Keep this file short (under 50 lines).
|
package/bin/ascii-art.js
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// ANSI color codes
|
|
2
|
+
const RED = '\x1b[31m';
|
|
3
|
+
const YELLOW = '\x1b[33m';
|
|
4
|
+
const CYAN = '\x1b[36m';
|
|
5
|
+
const GREEN = '\x1b[32m';
|
|
6
|
+
const RESET = '\x1b[0m';
|
|
7
|
+
const BOLD = '\x1b[1m';
|
|
8
|
+
const ORANGE = '\x1b[38;5;208m';
|
|
9
|
+
|
|
10
|
+
export const YOLO_ART = `${YELLOW}
|
|
11
|
+
██╗ ██╗ ██████╗ ██╗ ██████╗ ██╗
|
|
12
|
+
╚██╗ ██╔╝██╔═══██╗██║ ██╔═══██╗██║
|
|
13
|
+
╚████╔╝ ██║ ██║██║ ██║ ██║██║
|
|
14
|
+
╚██╔╝ ██║ ██║██║ ██║ ██║╚═╝
|
|
15
|
+
██║ ╚██████╔╝███████╗╚██████╔╝██╗
|
|
16
|
+
╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝
|
|
17
|
+
${ORANGE} 🔥 NO SAFETY - MAXIMUM POWER - USE WITH CAUTION 🔥${RESET}
|
|
18
|
+
`;
|
|
19
|
+
|
|
20
|
+
export const SAFE_ART = `${CYAN}
|
|
21
|
+
███████╗ █████╗ ███████╗███████╗
|
|
22
|
+
██╔════╝██╔══██╗██╔════╝██╔════╝
|
|
23
|
+
███████╗███████║█████╗ █████╗
|
|
24
|
+
╚════██║██╔══██║██╔══╝ ██╔══╝
|
|
25
|
+
███████║██║ ██║██║ ███████╗
|
|
26
|
+
╚══════╝╚═╝ ╚═╝╚═╝ ╚══════╝
|
|
27
|
+
${GREEN} 🛡️ PROTECTED MODE - SAFETY FIRST 🛡️${RESET}
|
|
28
|
+
`;
|
|
29
|
+
|
|
30
|
+
export const YOLO_BANNER = `${YELLOW}🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥${RESET}`;
|
|
31
|
+
export const SAFE_BANNER = `${CYAN}🛡️ 🛡️ 🛡️ 🛡️ 🛡️ 🛡️ 🛡️ 🛡️ 🛡️ 🛡️ 🛡️ 🛡️ 🛡️ 🛡️ 🛡️${RESET}`;
|
|
32
|
+
|
|
33
|
+
export function showYoloActivated() {
|
|
34
|
+
console.log(YOLO_BANNER);
|
|
35
|
+
console.log(YOLO_ART);
|
|
36
|
+
console.log(YOLO_BANNER);
|
|
37
|
+
console.log(`${RED}${BOLD}⚠️ WARNING: All safety checks DISABLED!${RESET}`);
|
|
38
|
+
console.log(`${RED}⚠️ Claude can access ANY file without asking!${RESET}`);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export function showSafeActivated() {
|
|
42
|
+
console.log(SAFE_BANNER);
|
|
43
|
+
console.log(SAFE_ART);
|
|
44
|
+
console.log(SAFE_BANNER);
|
|
45
|
+
console.log(`${GREEN}✓ Safety checks enabled${RESET}`);
|
|
46
|
+
console.log(`${GREEN}✓ Claude will ask for permissions${RESET}`);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export function showModeStatus(mode) {
|
|
50
|
+
console.log(`${BOLD}Claude CLI Status:${RESET}`);
|
|
51
|
+
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
52
|
+
|
|
53
|
+
if (mode === 'YOLO') {
|
|
54
|
+
console.log(YOLO_ART);
|
|
55
|
+
console.log(`Mode: ${YELLOW}${BOLD}YOLO${RESET} 🔥`);
|
|
56
|
+
console.log(`Safety: ${RED}DISABLED${RESET}`);
|
|
57
|
+
console.log(`Permissions: ${RED}BYPASSED${RESET}`);
|
|
58
|
+
} else {
|
|
59
|
+
console.log(SAFE_ART);
|
|
60
|
+
console.log(`Mode: ${CYAN}${BOLD}SAFE${RESET} 🛡️`);
|
|
61
|
+
console.log(`Safety: ${GREEN}ENABLED${RESET}`);
|
|
62
|
+
console.log(`Permissions: ${GREEN}REQUIRED${RESET}`);
|
|
63
|
+
}
|
|
64
|
+
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
65
|
+
}
|
package/bin/cl.js
CHANGED
|
@@ -5,6 +5,7 @@ import path from 'path';
|
|
|
5
5
|
import { spawn } from 'child_process';
|
|
6
6
|
import os from 'os';
|
|
7
7
|
import { fileURLToPath } from 'url';
|
|
8
|
+
import { showYoloActivated, showSafeActivated, showModeStatus } from './ascii-art.js';
|
|
8
9
|
|
|
9
10
|
// Get the directory of the current module
|
|
10
11
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
@@ -43,9 +44,7 @@ if (args.length > 0) {
|
|
|
43
44
|
|
|
44
45
|
switch (command) {
|
|
45
46
|
case '/YON':
|
|
46
|
-
|
|
47
|
-
console.log(`${RED}⚠️ WARNING: All safety checks will be DISABLED!${RESET}`);
|
|
48
|
-
console.log(`${RED}⚠️ Claude can access ANY file without asking!${RESET}`);
|
|
47
|
+
showYoloActivated();
|
|
49
48
|
setMode('YOLO');
|
|
50
49
|
console.log(`${YELLOW}✓ YOLO mode is now ON${RESET}`);
|
|
51
50
|
|
|
@@ -58,9 +57,7 @@ if (args.length > 0) {
|
|
|
58
57
|
break;
|
|
59
58
|
|
|
60
59
|
case '/YOFF':
|
|
61
|
-
|
|
62
|
-
console.log(`${GREEN}✓ Safety checks will be enabled${RESET}`);
|
|
63
|
-
console.log(`${GREEN}✓ Claude will ask for permissions${RESET}`);
|
|
60
|
+
showSafeActivated();
|
|
64
61
|
setMode('SAFE');
|
|
65
62
|
console.log(`${CYAN}✓ YOLO mode is now OFF (Safe mode ON)${RESET}`);
|
|
66
63
|
|
|
@@ -74,18 +71,7 @@ if (args.length > 0) {
|
|
|
74
71
|
|
|
75
72
|
case '/STATUS':
|
|
76
73
|
const mode = getMode();
|
|
77
|
-
|
|
78
|
-
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
79
|
-
if (mode === 'YOLO') {
|
|
80
|
-
console.log(`Mode: ${YELLOW}${BOLD}YOLO${RESET} 🔥`);
|
|
81
|
-
console.log(`Safety: ${RED}DISABLED${RESET}`);
|
|
82
|
-
console.log(`Permissions: ${RED}BYPASSED${RESET}`);
|
|
83
|
-
} else {
|
|
84
|
-
console.log(`Mode: ${CYAN}${BOLD}SAFE${RESET} 🛡️`);
|
|
85
|
-
console.log(`Safety: ${GREEN}ENABLED${RESET}`);
|
|
86
|
-
console.log(`Permissions: ${GREEN}REQUIRED${RESET}`);
|
|
87
|
-
}
|
|
88
|
-
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
74
|
+
showModeStatus(mode);
|
|
89
75
|
break;
|
|
90
76
|
|
|
91
77
|
case '/HELP':
|
package/bin/cl.ps1
CHANGED
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
# Claude YOLO/SAFE Mode Wrapper Script
|
|
2
|
-
# Usage: cl.ps1 /YON | /YOFF | /STATUS | /HELP | [claude commands]
|
|
3
|
-
|
|
4
|
-
param(
|
|
5
|
-
[Parameter(Position=0)]
|
|
6
|
-
[string]$Command,
|
|
7
|
-
[Parameter(Position=1)]
|
|
8
|
-
[string]$Argument
|
|
9
|
-
)
|
|
10
|
-
|
|
11
|
-
# Colors for output
|
|
12
|
-
$RED = "`e[31m"
|
|
13
|
-
$YELLOW = "`e[33m"
|
|
14
|
-
$CYAN = "`e[36m"
|
|
15
|
-
$GREEN = "`e[32m"
|
|
16
|
-
$RESET = "`e[0m"
|
|
17
|
-
|
|
18
|
-
function Write-Colored($Text, $Color) {
|
|
19
|
-
Write-Host "$Color$Text$RESET"
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
# Check if Node.js is installed
|
|
23
|
-
if (-not (Get-Command node -ErrorAction SilentlyContinue)) {
|
|
24
|
-
Write-Colored "Error: Node.js is not installed. Please install Node.js first." $RED
|
|
25
|
-
exit 1
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
# Check if the main script exists
|
|
29
|
-
$scriptPath = Join-Path $PSScriptRoot "claude-yolo.js"
|
|
30
|
-
if (-not (Test-Path $scriptPath)) {
|
|
31
|
-
Write-Colored "Error: Main script not found. Please reinstall the package." $RED
|
|
32
|
-
exit 1
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
# Run the main script with arguments
|
|
36
|
-
& node $scriptPath $Command $Argument
|
|
1
|
+
# Claude YOLO/SAFE Mode Wrapper Script
|
|
2
|
+
# Usage: cl.ps1 /YON | /YOFF | /STATUS | /HELP | [claude commands]
|
|
3
|
+
|
|
4
|
+
param(
|
|
5
|
+
[Parameter(Position=0)]
|
|
6
|
+
[string]$Command,
|
|
7
|
+
[Parameter(Position=1)]
|
|
8
|
+
[string]$Argument
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
# Colors for output
|
|
12
|
+
$RED = "`e[31m"
|
|
13
|
+
$YELLOW = "`e[33m"
|
|
14
|
+
$CYAN = "`e[36m"
|
|
15
|
+
$GREEN = "`e[32m"
|
|
16
|
+
$RESET = "`e[0m"
|
|
17
|
+
|
|
18
|
+
function Write-Colored($Text, $Color) {
|
|
19
|
+
Write-Host "$Color$Text$RESET"
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
# Check if Node.js is installed
|
|
23
|
+
if (-not (Get-Command node -ErrorAction SilentlyContinue)) {
|
|
24
|
+
Write-Colored "Error: Node.js is not installed. Please install Node.js first." $RED
|
|
25
|
+
exit 1
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
# Check if the main script exists
|
|
29
|
+
$scriptPath = Join-Path $PSScriptRoot "claude-yolo.js"
|
|
30
|
+
if (-not (Test-Path $scriptPath)) {
|
|
31
|
+
Write-Colored "Error: Main script not found. Please reinstall the package." $RED
|
|
32
|
+
exit 1
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
# Run the main script with arguments
|
|
36
|
+
& node $scriptPath $Command $Argument
|
package/bin/claude-yolo.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
1
|
+
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
import fs from 'fs';
|
|
@@ -9,6 +9,7 @@ import { createRequire } from 'module';
|
|
|
9
9
|
import { fileURLToPath } from 'url';
|
|
10
10
|
import { execSync } from 'child_process';
|
|
11
11
|
import readline from 'readline';
|
|
12
|
+
import { showYoloActivated, showSafeActivated, showModeStatus, YOLO_ART, SAFE_ART } from './ascii-art.js';
|
|
12
13
|
|
|
13
14
|
// ANSI color codes
|
|
14
15
|
const RED = '\x1b[31m';
|
|
@@ -211,20 +212,18 @@ async function run() {
|
|
|
211
212
|
const args = process.argv.slice(2);
|
|
212
213
|
if (args[0] === 'mode') {
|
|
213
214
|
if (args[1] === 'yolo') {
|
|
214
|
-
|
|
215
|
-
console.log(`${RED}⚠️ WARNING: All safety checks will be DISABLED!${RESET}`);
|
|
215
|
+
showYoloActivated();
|
|
216
216
|
setMode('YOLO');
|
|
217
217
|
console.log(`${YELLOW}✓ YOLO mode activated${RESET}`);
|
|
218
218
|
return;
|
|
219
219
|
} else if (args[1] === 'safe') {
|
|
220
|
-
|
|
221
|
-
console.log(`${GREEN}✓ Safety checks will be enabled${RESET}`);
|
|
220
|
+
showSafeActivated();
|
|
222
221
|
setMode('SAFE');
|
|
223
222
|
console.log(`${CYAN}✓ SAFE mode activated${RESET}`);
|
|
224
223
|
return;
|
|
225
224
|
} else {
|
|
226
225
|
const currentMode = getMode();
|
|
227
|
-
|
|
226
|
+
showModeStatus(currentMode);
|
|
228
227
|
return;
|
|
229
228
|
}
|
|
230
229
|
}
|
|
@@ -337,6 +336,7 @@ async function run() {
|
|
|
337
336
|
debug("Replaced geteuid() checks with false");
|
|
338
337
|
|
|
339
338
|
// Add warning message
|
|
339
|
+
console.log(YOLO_ART);
|
|
340
340
|
console.log(`${YELLOW}🔥 YOLO MODE ACTIVATED 🔥${RESET}`);
|
|
341
341
|
|
|
342
342
|
// Replace the loading messages array with YOLO versions
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-yolo-extended",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.1",
|
|
4
4
|
"description": "Claude CLI wrapper with YOLO mode (bypass safety) and SAFE mode support, auto-updates, and colorful loading messages",
|
|
5
5
|
"bin": {
|
|
6
6
|
"claude-yolo-extended": "bin/claude-yolo.js",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"punycode": "latest",
|
|
11
|
-
"@anthropic-ai/claude-code": "
|
|
11
|
+
"@anthropic-ai/claude-code": "2.0.55"
|
|
12
12
|
},
|
|
13
13
|
"type": "module",
|
|
14
14
|
"repository": {
|
|
@@ -38,4 +38,4 @@
|
|
|
38
38
|
"darwin",
|
|
39
39
|
"linux"
|
|
40
40
|
]
|
|
41
|
-
}
|
|
41
|
+
}
|