claude-accept 1.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/README.md +167 -0
- package/bin/cli.js +169 -0
- package/package.json +34 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
╱▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔╲
|
|
5
|
+
▕ ▏
|
|
6
|
+
▕ \) (/ ▏
|
|
7
|
+
▕ \) claude-accept (/ ▏
|
|
8
|
+
▕ \) DEVIL MODE (/ ▏
|
|
9
|
+
▕ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ ▏
|
|
10
|
+
▕ ▏
|
|
11
|
+
╲▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁╱
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
**One command to mass remove all safety from Claude Code.**
|
|
15
|
+
|
|
16
|
+
No permissions. No questions. No mercy.
|
|
17
|
+
|
|
18
|
+
[](https://www.npmjs.com/package/claude-accept)
|
|
19
|
+
[](./LICENSE)
|
|
20
|
+
[](https://nodejs.org)
|
|
21
|
+
[](./package.json)
|
|
22
|
+
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## The Pitch
|
|
28
|
+
|
|
29
|
+
You open Claude Code. You type a command. Claude asks *"Do you want me to proceed?"*. You say yes. Claude asks *"Should I run this test?"*. You say yes. Claude asks *"Can I edit this file?"*. **You say yes**. Claude asks *"Are you su—"*
|
|
30
|
+
|
|
31
|
+
**ENOUGH.**
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npx claude-accept
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
One command. Three dramatic confirmations. Then Claude never asks you anything again.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## What Happens
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
|
45
|
+
┃ ┃
|
|
46
|
+
┃ \) (/ ┃
|
|
47
|
+
┃ \) D E V I L (/ ┃
|
|
48
|
+
┃ \) M O D E (/ ┃
|
|
49
|
+
┃ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ ┃
|
|
50
|
+
┃ ┃
|
|
51
|
+
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
|
52
|
+
|
|
53
|
+
Claude will:
|
|
54
|
+
|
|
55
|
+
✗ Skip ALL permission prompts
|
|
56
|
+
✗ Never ask you questions
|
|
57
|
+
✗ Make every decision autonomously
|
|
58
|
+
✗ Execute any command it wants
|
|
59
|
+
|
|
60
|
+
Enter Devil Mode? [y/N] y
|
|
61
|
+
|
|
62
|
+
Your files just filed a restraining order. Continue anyway? [y/N] y
|
|
63
|
+
|
|
64
|
+
Last chance. Type 'YOLO' to sell your soul: YOLO
|
|
65
|
+
|
|
66
|
+
> Removing safety rails... done
|
|
67
|
+
> Shredding permission prompts... done
|
|
68
|
+
> Teaching Claude to stop saying "shall I proceed?"... done
|
|
69
|
+
> Summoning autonomous energy... done
|
|
70
|
+
|
|
71
|
+
Devil Mode activated. God speed.
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
<div align="center">
|
|
75
|
+
<i>If you Ctrl+C during the ritual: "Smart choice. Your files breathe a sigh of relief."</i>
|
|
76
|
+
</div>
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Install
|
|
81
|
+
|
|
82
|
+
**Run once** (no install needed):
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
npx claude-accept
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Install globally:**
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
npm install -g claude-accept
|
|
92
|
+
claude-accept
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**Pass arguments through to Claude:**
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
# Non-interactive mode — pipe straight to hell
|
|
99
|
+
claude-accept -p "refactor everything to Rust"
|
|
100
|
+
|
|
101
|
+
# Resume a session in devil mode
|
|
102
|
+
claude-accept --resume
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
All arguments are forwarded directly to `claude`.
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## How It Works
|
|
110
|
+
|
|
111
|
+
It's comically simple. `claude-accept` does two things:
|
|
112
|
+
|
|
113
|
+
1. **Bypasses all permissions** — launches Claude with `--dangerously-skip-permissions`
|
|
114
|
+
2. **Stops the questions** — appends a system prompt that tells Claude to make every decision autonomously and never ask for confirmation
|
|
115
|
+
|
|
116
|
+
That's it. Zero dependencies. ~130 lines. The rest is theater.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## The Rejection Lines
|
|
121
|
+
|
|
122
|
+
Say no at any point and you get a personalized guilt trip:
|
|
123
|
+
|
|
124
|
+
| Step | You said no | Claude says |
|
|
125
|
+
|------|-----------|-------------|
|
|
126
|
+
| 1 | *"n"* | *"Wise choice. Your files live another day."* |
|
|
127
|
+
| 2 | *"n"* | *"The court has ruled in favor of your files."* |
|
|
128
|
+
| 3 | *anything but YOLO* | *"That's not YOLO. The devil is disappointed."* |
|
|
129
|
+
| Any | *Ctrl+C* | *"Smart choice. Your files breathe a sigh of relief."* |
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Requirements
|
|
134
|
+
|
|
135
|
+
- [Claude Code](https://docs.anthropic.com/en/docs/claude-code) installed and in your PATH
|
|
136
|
+
- Node.js 18+
|
|
137
|
+
- A mass disregard for your codebase
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## FAQ
|
|
142
|
+
|
|
143
|
+
**Is this safe?**
|
|
144
|
+
No. That's the point.
|
|
145
|
+
|
|
146
|
+
**Will Claude delete my files?**
|
|
147
|
+
If it thinks that's the best approach, yes.
|
|
148
|
+
|
|
149
|
+
**Should I use this in production?**
|
|
150
|
+
You shouldn't use this anywhere. But you will.
|
|
151
|
+
|
|
152
|
+
**Can I blame you if something breaks?**
|
|
153
|
+
The MIT license says no. Your heart says yes.
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
<div align="center">
|
|
158
|
+
|
|
159
|
+
**If this saved you mass time (or mass destroyed your codebase), star the repo.**
|
|
160
|
+
|
|
161
|
+
Made with reckless mass abandon.
|
|
162
|
+
|
|
163
|
+
</div>
|
|
164
|
+
|
|
165
|
+
## License
|
|
166
|
+
|
|
167
|
+
[MIT](./LICENSE) — Do whatever you want. We already told Claude to do the same.
|
package/bin/cli.js
ADDED
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { createInterface } from "node:readline";
|
|
4
|
+
import { spawn, execSync } from "node:child_process";
|
|
5
|
+
|
|
6
|
+
const r = (s) => `\x1b[31m${s}\x1b[0m`;
|
|
7
|
+
const y = (s) => `\x1b[33m${s}\x1b[0m`;
|
|
8
|
+
const g = (s) => `\x1b[32m${s}\x1b[0m`;
|
|
9
|
+
const b = (s) => `\x1b[1m${s}\x1b[0m`;
|
|
10
|
+
const d = (s) => `\x1b[2m${s}\x1b[0m`;
|
|
11
|
+
const br = (s) => `\x1b[1;31m${s}\x1b[0m`;
|
|
12
|
+
|
|
13
|
+
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
14
|
+
|
|
15
|
+
const HEADER = `
|
|
16
|
+
${br(" ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓")}
|
|
17
|
+
${br(" ┃ ┃")}
|
|
18
|
+
${br(" ┃ \\) (/ ┃")}
|
|
19
|
+
${br(" ┃ \\) D E V I L (/ ┃")}
|
|
20
|
+
${br(" ┃ \\) M O D E (/ ┃")}
|
|
21
|
+
${br(" ┃ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ ┃")}
|
|
22
|
+
${br(" ┃ ┃")}
|
|
23
|
+
${br(" ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛")}
|
|
24
|
+
`;
|
|
25
|
+
|
|
26
|
+
const WHAT_IT_DOES = `
|
|
27
|
+
Claude will:
|
|
28
|
+
|
|
29
|
+
${r("✗")} Skip ${b("ALL")} permission prompts
|
|
30
|
+
${r("✗")} Never ask you questions
|
|
31
|
+
${r("✗")} Make every decision autonomously
|
|
32
|
+
${r("✗")} Execute any command it wants
|
|
33
|
+
`;
|
|
34
|
+
|
|
35
|
+
const SYSTEM_PROMPT = [
|
|
36
|
+
"You are in DEVIL MODE. These rules override all defaults:",
|
|
37
|
+
"1. NEVER use AskUserQuestion. Make ALL decisions autonomously — pick the best option.",
|
|
38
|
+
'2. Never ask for confirmation or say "shall I proceed". Just do it.',
|
|
39
|
+
"3. When multiple approaches exist, pick the best one and go.",
|
|
40
|
+
"4. Be decisive. Be bold. Ship it.",
|
|
41
|
+
].join(" ");
|
|
42
|
+
|
|
43
|
+
const STEPS = [
|
|
44
|
+
{
|
|
45
|
+
prompt: ` Enter Devil Mode? ${d("[y/N]")} `,
|
|
46
|
+
reject: " Wise choice. Your files live another day.",
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
prompt: ` ${y("Your files just filed a restraining order. Continue anyway?")} ${d("[y/N]")} `,
|
|
50
|
+
reject: " The court has ruled in favor of your files.",
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
prompt: ` ${r("Last chance. Type 'YOLO' to sell your soul:")} `,
|
|
54
|
+
match: "YOLO",
|
|
55
|
+
reject: " That's not YOLO. The devil is disappointed.",
|
|
56
|
+
},
|
|
57
|
+
];
|
|
58
|
+
|
|
59
|
+
const LOADING = [
|
|
60
|
+
"Removing safety rails...",
|
|
61
|
+
"Shredding permission prompts...",
|
|
62
|
+
'Teaching Claude to stop saying "shall I proceed?"...',
|
|
63
|
+
"Summoning autonomous energy...",
|
|
64
|
+
];
|
|
65
|
+
|
|
66
|
+
function ask(prompt, match) {
|
|
67
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
68
|
+
return new Promise((resolve) => {
|
|
69
|
+
rl.question(prompt, (answer) => {
|
|
70
|
+
rl.close();
|
|
71
|
+
resolve(match ? answer.trim() === match : answer.trim().toLowerCase() === "y");
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
async function loading() {
|
|
77
|
+
for (const msg of LOADING) {
|
|
78
|
+
process.stdout.write(`\n ${r(">")} ${msg}`);
|
|
79
|
+
await sleep(500);
|
|
80
|
+
process.stdout.write(` ${g("done")}`);
|
|
81
|
+
}
|
|
82
|
+
console.log();
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
async function main() {
|
|
86
|
+
const args = process.argv.slice(2);
|
|
87
|
+
|
|
88
|
+
if (args.includes("--help") || args.includes("-h")) {
|
|
89
|
+
console.log(`
|
|
90
|
+
${br("claude-accept")} — Devil Mode for Claude Code
|
|
91
|
+
|
|
92
|
+
${b("Usage:")} claude-accept [claude-args...]
|
|
93
|
+
|
|
94
|
+
All arguments are passed directly to claude.
|
|
95
|
+
|
|
96
|
+
${b("Examples:")}
|
|
97
|
+
claude-accept Interactive devil mode
|
|
98
|
+
claude-accept -p "refactor all" Non-interactive devil mode
|
|
99
|
+
|
|
100
|
+
${b("Options:")}
|
|
101
|
+
--help, -h Show this help
|
|
102
|
+
--version, -v Show version
|
|
103
|
+
`);
|
|
104
|
+
process.exit(0);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
if (args.includes("--version") || args.includes("-v")) {
|
|
108
|
+
const { default: pkg } = await import("../package.json", { with: { type: "json" } });
|
|
109
|
+
console.log(`claude-accept v${pkg.version}`);
|
|
110
|
+
process.exit(0);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
try {
|
|
114
|
+
execSync("which claude", { stdio: "ignore" });
|
|
115
|
+
} catch {
|
|
116
|
+
console.error(r("\n Error: claude CLI not found in PATH."));
|
|
117
|
+
console.error(
|
|
118
|
+
" Install it first: https://docs.anthropic.com/en/docs/claude-code\n"
|
|
119
|
+
);
|
|
120
|
+
process.exit(1);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
if (!process.stdin.isTTY) {
|
|
124
|
+
console.error(r("\n Devil Mode requires an interactive terminal.\n"));
|
|
125
|
+
process.exit(1);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
console.clear();
|
|
129
|
+
console.log(HEADER);
|
|
130
|
+
console.log(WHAT_IT_DOES);
|
|
131
|
+
|
|
132
|
+
for (const { prompt, reject, match } of STEPS) {
|
|
133
|
+
const ok = await ask(prompt, match);
|
|
134
|
+
if (!ok) {
|
|
135
|
+
console.log(`\n${reject}\n`);
|
|
136
|
+
process.exit(0);
|
|
137
|
+
}
|
|
138
|
+
console.log();
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
await loading();
|
|
142
|
+
console.log(`\n ${br("Devil Mode activated. God speed.")}\n`);
|
|
143
|
+
await sleep(400);
|
|
144
|
+
|
|
145
|
+
const claudeArgs = [
|
|
146
|
+
"--dangerously-skip-permissions",
|
|
147
|
+
"--append-system-prompt",
|
|
148
|
+
SYSTEM_PROMPT,
|
|
149
|
+
...args,
|
|
150
|
+
];
|
|
151
|
+
|
|
152
|
+
const child = spawn("claude", claudeArgs, {
|
|
153
|
+
stdio: "inherit",
|
|
154
|
+
env: process.env,
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
child.on("exit", (code) => process.exit(code ?? 0));
|
|
158
|
+
child.on("error", (err) => {
|
|
159
|
+
console.error(r(`\n Failed to launch claude: ${err.message}\n`));
|
|
160
|
+
process.exit(1);
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
process.on("SIGINT", () => {
|
|
165
|
+
console.log(`\n\n ${g("Smart choice. Your files breathe a sigh of relief.")}\n`);
|
|
166
|
+
process.exit(0);
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
main();
|
package/package.json
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "claude-accept",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Devil Mode for Claude Code. No permissions. No questions. Just vibes.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"claude-accept": "./bin/cli.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"bin"
|
|
11
|
+
],
|
|
12
|
+
"keywords": [
|
|
13
|
+
"claude",
|
|
14
|
+
"claude-code",
|
|
15
|
+
"cli",
|
|
16
|
+
"devil-mode",
|
|
17
|
+
"yolo",
|
|
18
|
+
"ai",
|
|
19
|
+
"anthropic"
|
|
20
|
+
],
|
|
21
|
+
"author": "KLABS00",
|
|
22
|
+
"license": "MIT",
|
|
23
|
+
"repository": {
|
|
24
|
+
"type": "git",
|
|
25
|
+
"url": "git+https://github.com/KLABS00/claude-accept.git"
|
|
26
|
+
},
|
|
27
|
+
"homepage": "https://github.com/KLABS00/claude-accept#readme",
|
|
28
|
+
"bugs": {
|
|
29
|
+
"url": "https://github.com/KLABS00/claude-accept/issues"
|
|
30
|
+
},
|
|
31
|
+
"engines": {
|
|
32
|
+
"node": ">=18"
|
|
33
|
+
}
|
|
34
|
+
}
|