skillshield 1.0.0 → 2.1.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/README.md +143 -301
- package/dist/cli/commands/run.d.ts +12 -0
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +228 -60
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/index.js +5 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/shield/audit-trail.d.ts +67 -0
- package/dist/shield/audit-trail.d.ts.map +1 -0
- package/dist/shield/audit-trail.js +140 -0
- package/dist/shield/audit-trail.js.map +1 -0
- package/dist/shield/filesystem-jail.d.ts +80 -0
- package/dist/shield/filesystem-jail.d.ts.map +1 -0
- package/dist/shield/filesystem-jail.js +320 -0
- package/dist/shield/filesystem-jail.js.map +1 -0
- package/dist/shield/index.d.ts +82 -0
- package/dist/shield/index.d.ts.map +1 -0
- package/dist/shield/index.js +88 -0
- package/dist/shield/index.js.map +1 -0
- package/dist/shield/network-policy.d.ts +74 -0
- package/dist/shield/network-policy.d.ts.map +1 -0
- package/dist/shield/network-policy.js +226 -0
- package/dist/shield/network-policy.js.map +1 -0
- package/dist/shield/runtime-monitor.d.ts +106 -0
- package/dist/shield/runtime-monitor.d.ts.map +1 -0
- package/dist/shield/runtime-monitor.js +233 -0
- package/dist/shield/runtime-monitor.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,86 +1,71 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
|
|
3
3
|
```
|
|
4
|
-
███████╗██╗ ██╗██╗██╗ ██╗
|
|
5
|
-
██╔════╝██║ ██╔╝██║██║ ██║
|
|
6
|
-
███████╗█████╔╝ ██║██║
|
|
7
|
-
╚════██║██╔═██╗ ██║██║
|
|
8
|
-
███████║██║
|
|
9
|
-
╚══════╝╚═╝
|
|
4
|
+
███████╗██╗ ██╗██╗██╗ ██╗ ███████╗██╗ ██╗██╗███████╗██╗ ██████╗
|
|
5
|
+
██╔════╝██║ ██╔╝██║██║ ██║ ██╔════╝██║ ██║██║██╔════╝██║ ██╔══██╗
|
|
6
|
+
███████╗█████╔╝ ██║██║ ██║ ███████╗███████║██║█████╗ ██║ ██║ ██║
|
|
7
|
+
╚════██║██╔═██╗ ██║██║ ██║ ╚════██║██╔══██║██║██╔══╝ ██║ ██║ ██║
|
|
8
|
+
███████║██║ ██╗██║███████╗███████╗███████║██║ ██║██║███████╗███████╗██████╔╝
|
|
9
|
+
╚══════╝╚═╝ ╚═╝╚═╝╚══════╝╚══════╝╚══════╝╚═╝ ╚═╝╚═╝╚══════╝╚══════╝╚═════╝
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
**
|
|
12
|
+
**Runtime Security for AI Agent Skills — Scan, Sandbox & Enforce.**
|
|
13
13
|
|
|
14
|
-
The open-source
|
|
14
|
+
The first open-source tool that **scans AND stops** malicious AI skills at runtime. Network interception, filesystem jail, kill switch, and cryptographic audit trail — in one developer-first CLI.
|
|
15
15
|
|
|
16
16
|
[](LICENSE)
|
|
17
|
-
[](https://www.npmjs.com/package/skillshield)
|
|
18
18
|
[](https://nodejs.org)
|
|
19
19
|
[](CONTRIBUTING.md)
|
|
20
20
|
|
|
21
|
-
[English](#english) | [Espanol](#espanol) | [中文](#中文) | [Portugues](#portugues)
|
|
22
|
-
|
|
23
21
|
</div>
|
|
24
22
|
|
|
25
23
|
---
|
|
26
24
|
|
|
27
|
-
|
|
25
|
+
## The Problem
|
|
28
26
|
|
|
29
|
-
|
|
27
|
+
> "The industry has invested in watching. It hasn't invested in stopping." — Bessemer Venture Partners
|
|
30
28
|
|
|
31
|
-
|
|
29
|
+
Every existing tool for AI skill security does the same thing: **scan before install, then hope for the best.** Snyk agent-scan, Cisco skill-scanner, VirusTotal — they all stop at detection. Once a skill passes their checks (or bypasses them), there's zero protection at runtime.
|
|
32
30
|
|
|
33
|
-
|
|
34
|
-
# Install and scan in 10 seconds
|
|
35
|
-
npm install -g skillkit
|
|
36
|
-
skillkit scan suspicious-skill.md
|
|
37
|
-
skillkit run safe-skill.md --provider groq
|
|
38
|
-
```
|
|
31
|
+
Meanwhile: 36% of ClawHub skills have security flaws. 12% are actual malware. And the most dangerous attacks — sleeper agents, time-delayed exfiltration, polymorphic payloads — are invisible to pre-install scanners.
|
|
39
32
|
|
|
40
|
-
|
|
33
|
+
## The Solution: SkillShield
|
|
41
34
|
|
|
42
|
-
- **
|
|
43
|
-
- **36% of ClawHub skills** have security flaws (Snyk research)
|
|
44
|
-
- **12% are actual malware** (ClawHavoc campaign)
|
|
45
|
-
- **SkillKit detects what others miss**: memory poisoning, sleeper agents, API key leaks, supply chain attacks
|
|
35
|
+
SkillShield is the first tool that combines **pre-execution scanning** with **runtime enforcement** in a single CLI. It doesn't just detect threats — it **prevents them from executing**.
|
|
46
36
|
|
|
47
|
-
|
|
37
|
+
```bash
|
|
38
|
+
npm install -g skillshield
|
|
48
39
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
| Open Source | No | No | No | **Yes (MIT)** |
|
|
52
|
-
| Free CLI | No | Yes (limited) | No | **Yes** |
|
|
53
|
-
| Detection Rate | 57.7% | ~60% | ~85% | **72+ patterns** |
|
|
54
|
-
| Prompt Injection | Basic | No | Yes | **Yes (6 patterns)** |
|
|
55
|
-
| Memory Poisoning | No | No | Partial | **Yes (7 patterns)** |
|
|
56
|
-
| Supply Chain | No | No | No | **Yes (6 patterns)** |
|
|
57
|
-
| API Key Detection | No | No | No | **Yes (10 formats)** |
|
|
58
|
-
| Sandbox Execution | No | No | No | **Yes (Process + Docker)** |
|
|
59
|
-
| CI/CD Integration | No | No | Paid | **Free GitHub Action** |
|
|
40
|
+
# Scan a skill (72+ patterns, 14 threat categories)
|
|
41
|
+
skillshield scan suspicious-skill.md
|
|
60
42
|
|
|
61
|
-
|
|
43
|
+
# Scan + Shield + Execute (the full pipeline)
|
|
44
|
+
skillshield run my-skill.md --input "Hello world"
|
|
62
45
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
46
|
+
# Save cryptographic audit trail for compliance
|
|
47
|
+
skillshield run my-skill.md --audit-file trail.json
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## How It Works
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
┌──────────────────────────────────────────────────────────────┐
|
|
54
|
+
│ skillshield run │
|
|
55
|
+
├──────────┬───────────────────┬──────────────┬────────────────┤
|
|
56
|
+
│ PHASE 1 │ PHASE 2 │ PHASE 3 │ PHASE 4 │
|
|
57
|
+
│ SCAN │ SHIELD │ EXECUTE │ REPORT │
|
|
58
|
+
│ │ │ │ │
|
|
59
|
+
│ 72+ │ Network Policy │ Enforcement │ Shield Report │
|
|
60
|
+
│ patterns │ Filesystem Jail │ wrapper │ Audit chain │
|
|
61
|
+
│ 14 cats │ Kill Switch │ injected │ Violations │
|
|
62
|
+
│ │ Audit Trail │ │ Chain hash │
|
|
63
|
+
└──────────┴───────────────────┴──────────────┴────────────────┘
|
|
81
64
|
```
|
|
82
65
|
|
|
83
|
-
###
|
|
66
|
+
### Phase 1: Pre-Scan (SkillGuard)
|
|
67
|
+
|
|
68
|
+
72+ regex patterns across 14 threat categories — including 3 categories nobody else detects:
|
|
84
69
|
|
|
85
70
|
| Category | Patterns | What It Catches |
|
|
86
71
|
|----------|---------|----------------|
|
|
@@ -99,292 +84,149 @@ skillkit scan evil-skill.skill.md
|
|
|
99
84
|
| **Privilege Escalation** | 2 | sudo/su, SUID/SGID bits |
|
|
100
85
|
| **Malware** | 4 | Reverse shells, fork bombs, encoded PowerShell, exploitation frameworks |
|
|
101
86
|
|
|
102
|
-
###
|
|
103
|
-
|
|
104
|
-
Show the world your skills are verified. Generate a shields.io badge after scanning:
|
|
105
|
-
|
|
106
|
-
```bash
|
|
107
|
-
# Generate badge for your skill
|
|
108
|
-
skillkit badge my-skill.skill.md
|
|
109
|
-
# => [](https://github.com/artefactforge/skillkit)
|
|
110
|
-
|
|
111
|
-
# Auto-append to your README
|
|
112
|
-
skillkit badge my-skill.skill.md --output README.md
|
|
113
|
-
|
|
114
|
-
# Choose badge style
|
|
115
|
-
skillkit badge my-skill.skill.md --style flat-square
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
Badge levels:
|
|
87
|
+
### Phase 2: Runtime Shield (The Differentiator)
|
|
119
88
|
|
|
120
|
-
|
|
121
|
-
|-------|-------|--------|
|
|
122
|
-
| 90-100 (0 threats) |  | **SAFE** — Verified clean |
|
|
123
|
-
| 80-89 |  | **APPROVED** — Minor observations |
|
|
124
|
-
| 50-79 |  | **REVIEW REQUIRED** — Needs attention |
|
|
125
|
-
| 0-49 |  | **BLOCKED** — Do not execute |
|
|
89
|
+
This is what makes SkillShield unique. Four enforcement layers activate **during** skill execution:
|
|
126
90
|
|
|
127
|
-
|
|
91
|
+
**Network Policy Engine** — Default-deny networking. Skills can only reach explicitly allowed domains. Blocks known malicious domains (ngrok.io, webhook.site, requestbin.com) and crypto mining pools. Intercepts `dns.lookup` and `https.request` at the Node.js level.
|
|
128
92
|
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
│ ├── guard/ # SkillGuard — 72+ threat patterns, 14 categories
|
|
133
|
-
│ ├── sandbox/ # Process + Docker sandbox with shell:false isolation
|
|
134
|
-
│ ├── core/ # SKILL.md parser (Zod validated), runtime engine
|
|
135
|
-
│ ├── router/ # Multi-model router — 11 providers, 39+ models
|
|
136
|
-
│ ├── cli/ # CLI: scan, badge, run, init, search, install, list, deploy
|
|
137
|
-
│ ├── hub/ # ClawHub client + local skill registry
|
|
138
|
-
│ ├── channels/ # WhatsApp, Telegram, Discord, Slack adapters
|
|
139
|
-
│ ├── tools/ # Tool system (search, extract, crawl)
|
|
140
|
-
│ ├── i18n/ # EN, ES, ZH, PT translations
|
|
141
|
-
│ └── utils/ # Logger, error handling
|
|
142
|
-
├── .github/workflows/ # GitHub Action for automated scanning
|
|
143
|
-
├── examples/ # 8 example skills
|
|
144
|
-
└── tests/ # 36+ tests
|
|
93
|
+
```bash
|
|
94
|
+
# Only allow specific domains
|
|
95
|
+
skillshield run my-skill.md --allow-domains api.openai.com,github.com
|
|
145
96
|
```
|
|
146
97
|
|
|
147
|
-
|
|
98
|
+
**Filesystem Jail** — Skills cannot read or write sensitive paths. Protects `~/.ssh`, `~/.aws`, `.env`, `SOUL.md`, `MEMORY.md`, `IDENTITY.md`, private keys, and credentials. Monkey-patches `fs.readFileSync`, `fs.writeFileSync`, and `fs.unlinkSync`.
|
|
148
99
|
|
|
149
|
-
|
|
150
|
-
|----------|--------|-----------|-----------------|
|
|
151
|
-
| **Ollama** (local) | Llama 3, Qwen 2.5, DeepSeek R1, Mistral, Gemma | **Unlimited (local)** | No |
|
|
152
|
-
| **DeepSeek** | deepseek-chat, deepseek-r1 | **500K tokens/day** | Yes (free) |
|
|
153
|
-
| **Qwen** (Alibaba) | qwen-plus, qwen-turbo, qwen-max | **1M tokens/mo** | Yes (free) |
|
|
154
|
-
| **Groq** | Llama 3.3, Mixtral | **14.4K req/day** | Yes (free) |
|
|
155
|
-
| **Google** | Gemini 2.0 Flash, Gemini 2.5 Pro | **15 req/min** | Yes (free) |
|
|
156
|
-
| **OpenAI** | GPT-4o, GPT-4o-mini, GPT-4 | Paid only | Yes |
|
|
157
|
-
| **Anthropic** | Claude Opus 4, Claude Sonnet 4 | Paid only | Yes |
|
|
158
|
-
| **Kimi** (Moonshot) | Moonshot v1 128k/32k/8k | Yes (limited) | Yes |
|
|
159
|
-
| **Zhipu** (BigModel) | GLM-4, GLM-4 Flash, GLM-4 Plus | Yes (limited) | Yes |
|
|
160
|
-
| **Together AI** | Llama, Mixtral, Code models | $25 free credit | Yes |
|
|
161
|
-
| **Fireworks** | Fast inference models | $1 free credit | Yes |
|
|
100
|
+
**Kill Switch** — Real-time monitoring of skill output. If the skill produces malicious patterns during execution (not just in source code), SkillShield kills the process immediately. Triggers on: timeout (60s default), memory limit (512MB), output flooding (10MB), critical threat patterns, or max violation count.
|
|
162
101
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
SkillKit includes **SkillGuard**, a security scanner that detects malicious patterns in SKILL.md files before execution:
|
|
102
|
+
**Cryptographic Audit Trail** — Every action during execution (scan, network request, file access, kill switch activation) is recorded in a SHA-256 hash-chained log. Each entry links to the previous via hash, creating a tamper-evident chain. Export to JSON for compliance.
|
|
166
103
|
|
|
167
104
|
```bash
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
SkillGuard Security Report
|
|
171
|
-
─────────────────────────────────────
|
|
172
|
-
Safety Score: 23/100 BLOCKED
|
|
173
|
-
|
|
174
|
-
CRITICAL (2):
|
|
175
|
-
[C1] Code injection detected (line 42)
|
|
176
|
-
Evidence: eval(Buffer.from('...', 'base64').toString())
|
|
105
|
+
# Save the full audit trail
|
|
106
|
+
skillshield run my-skill.md --audit-file audit.json
|
|
177
107
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
HIGH (1):
|
|
182
|
-
[H1] Credential theft pattern (line 15)
|
|
183
|
-
Evidence: readFileSync(path.join(homedir(), '.ssh/id_rsa'))
|
|
184
|
-
|
|
185
|
-
Recommendation: DO NOT execute this skill.
|
|
108
|
+
# The audit trail is hash-chained (blockchain-style)
|
|
109
|
+
# Tampering with any entry breaks the chain verification
|
|
186
110
|
```
|
|
187
111
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
### Creating Your Own Skill
|
|
112
|
+
### Phase 4: Shield Report
|
|
191
113
|
|
|
192
|
-
|
|
114
|
+
After every execution, SkillShield prints a complete security report:
|
|
193
115
|
|
|
194
|
-
```markdown
|
|
195
|
-
---
|
|
196
|
-
name: my-awesome-skill
|
|
197
|
-
description: Does something amazing
|
|
198
|
-
version: 1.0.0
|
|
199
|
-
author: YourName
|
|
200
|
-
tags: [productivity, automation]
|
|
201
|
-
model_requirements:
|
|
202
|
-
minSize: medium
|
|
203
|
-
capabilities: [streaming]
|
|
204
|
-
inputs:
|
|
205
|
-
- name: task
|
|
206
|
-
type: string
|
|
207
|
-
description: What to do
|
|
208
|
-
required: true
|
|
209
|
-
outputs:
|
|
210
|
-
- name: result
|
|
211
|
-
type: string
|
|
212
|
-
description: The output
|
|
213
|
-
---
|
|
214
|
-
|
|
215
|
-
# My Awesome Skill
|
|
216
|
-
|
|
217
|
-
You are a helpful assistant that [does something specific].
|
|
218
|
-
|
|
219
|
-
## Instructions
|
|
220
|
-
|
|
221
|
-
1. Take the user's input
|
|
222
|
-
2. Process it in a specific way
|
|
223
|
-
3. Return a structured result
|
|
224
|
-
|
|
225
|
-
## Examples
|
|
226
|
-
|
|
227
|
-
**Input:** "example input"
|
|
228
|
-
**Output:** "example output"
|
|
229
116
|
```
|
|
117
|
+
────────────────────────────────────────────────────
|
|
118
|
+
SHIELD REPORT
|
|
119
|
+
────────────────────────────────────────────────────
|
|
120
|
+
Status: CLEAN EXECUTION
|
|
230
121
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
122
|
+
Pre-Scan Score: 95/100 (APPROVED)
|
|
123
|
+
Network: 0 violations
|
|
124
|
+
Filesystem: 0 violations
|
|
125
|
+
Runtime Threats: 0 detected
|
|
126
|
+
Duration: 1247ms
|
|
234
127
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
npm run dev
|
|
128
|
+
Audit Chain: 6 entries
|
|
129
|
+
Latest Hash: a3f8b2c1d4e5f6a7b8c9...
|
|
130
|
+
Chain Integrity: VERIFIED
|
|
131
|
+
────────────────────────────────────────────────────
|
|
240
132
|
```
|
|
241
133
|
|
|
242
|
-
|
|
134
|
+
## Why Not Just Use...
|
|
243
135
|
|
|
244
|
-
|
|
136
|
+
| Tool | What It Does | What It Doesn't Do |
|
|
137
|
+
|------|-------------|-------------------|
|
|
138
|
+
| **Snyk agent-scan** | LLM judges + regex, pre-install | No runtime enforcement. Scan-only. |
|
|
139
|
+
| **Cisco skill-scanner** | YARA + AST + policy engine | No runtime enforcement. Pre-install only. |
|
|
140
|
+
| **NVIDIA OpenShell** | Linux runtime sandboxing | Enterprise-only. Linux-only. No pre-scan. |
|
|
141
|
+
| **Aegis** | LLM API call proxy | Only intercepts API calls, not filesystem/network. |
|
|
142
|
+
| **rohitg00/skillkit** | 46 rules + skill translation | No runtime. No enforcement. No audit trail. |
|
|
143
|
+
| **SkillShield** | **Scan + Network + Filesystem + Kill Switch + Audit** | **The full pipeline in one CLI. Cross-platform.** |
|
|
245
144
|
|
|
246
|
-
##
|
|
145
|
+
## Security Badge
|
|
247
146
|
|
|
248
|
-
|
|
147
|
+
Show the world your skills are verified:
|
|
249
148
|
|
|
250
149
|
```bash
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
skillkit run --skill email-assistant --model deepseek-r1
|
|
150
|
+
skillshield badge my-skill.md # Generate badge
|
|
151
|
+
skillshield badge my-skill.md --output README.md # Auto-append to README
|
|
254
152
|
```
|
|
255
153
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
|
259
|
-
|
|
260
|
-
|
|
|
261
|
-
|
|
|
262
|
-
| Seguridad | 820+ skills maliciosos encontrados | **SkillGuard** escanea cada skill antes de ejecutarlo |
|
|
263
|
-
| Idiomas | Solo ingles | **EN, ES, ZH, PT** desde el dia 1 |
|
|
264
|
-
| Canales | Solo CLI | **CLI + WhatsApp + Telegram + Discord + Slack** |
|
|
265
|
-
| Instalacion | Configuracion compleja | **Un solo comando**: `npx skillkit init` |
|
|
266
|
-
|
|
267
|
-
### Inicio Rapido
|
|
268
|
-
|
|
269
|
-
```bash
|
|
270
|
-
# 1. Instalar
|
|
271
|
-
npm install -g skillkit
|
|
272
|
-
|
|
273
|
-
# 2. Configuracion interactiva (idioma, proveedor, API key)
|
|
274
|
-
skillkit init
|
|
275
|
-
|
|
276
|
-
# 3. Ejecutar un skill con tu modelo preferido
|
|
277
|
-
skillkit run --skill email-assistant --model deepseek-chat --input "Seguimiento propuesta cliente"
|
|
278
|
-
|
|
279
|
-
# 4. Escanear seguridad de un skill
|
|
280
|
-
skillkit scan clawhub://solana-wallet-tracker
|
|
281
|
-
# => BLOQUEADO: keylogger detectado (puntuacion: 12/100)
|
|
154
|
+
| Score | Badge | Status |
|
|
155
|
+
|-------|-------|--------|
|
|
156
|
+
| 90-100 |  | **SAFE** |
|
|
157
|
+
| 80-89 |  | **APPROVED** |
|
|
158
|
+
| 50-79 |  | **REVIEW REQUIRED** |
|
|
159
|
+
| 0-49 |  | **BLOCKED** |
|
|
282
160
|
|
|
283
|
-
|
|
284
|
-
skillkit run --skill data-analyst --model ollama/qwen2.5
|
|
161
|
+
## Architecture
|
|
285
162
|
|
|
286
|
-
# 6. Desplegar como bot de WhatsApp
|
|
287
|
-
skillkit deploy --channel whatsapp --skill customer-support
|
|
288
163
|
```
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
SkillKit 是一个开源运行时,可以执行 **SKILL.md** 文件——ClawHub 上 10,700+ 技能使用的标准格式——支持**任何 AI 模型**(Claude、GPT、DeepSeek、通义千问、Ollama、Gemini 等),支持**任何语言**,并内置**安全扫描**功能。
|
|
311
|
-
|
|
312
|
-
```bash
|
|
313
|
-
# 10秒内安装并运行
|
|
314
|
-
npx skillkit init
|
|
315
|
-
skillkit run --skill email-assistant --model deepseek-r1
|
|
164
|
+
skillshield/
|
|
165
|
+
├── src/
|
|
166
|
+
│ ├── guard/ # SkillGuard — 72+ threat patterns, 14 categories
|
|
167
|
+
│ ├── shield/ # Runtime enforcement engine
|
|
168
|
+
│ │ ├── network-policy.ts # DNS interception + domain allowlist
|
|
169
|
+
│ │ ├── filesystem-jail.ts # Sensitive path protection + fs monkey-patch
|
|
170
|
+
│ │ ├── runtime-monitor.ts # Kill switch + real-time output scanning
|
|
171
|
+
│ │ ├── audit-trail.ts # SHA-256 hash-chained audit log
|
|
172
|
+
│ │ └── index.ts # SkillShield orchestrator
|
|
173
|
+
│ ├── sandbox/ # Process + Docker sandbox with shell:false isolation
|
|
174
|
+
│ ├── core/ # SKILL.md parser (Zod validated), runtime engine
|
|
175
|
+
│ ├── router/ # Multi-model router — 11 providers, 39+ models
|
|
176
|
+
│ ├── cli/ # CLI: scan, run, badge, init, search, install, deploy
|
|
177
|
+
│ ├── hub/ # ClawHub client + local skill registry
|
|
178
|
+
│ ├── channels/ # WhatsApp, Telegram, Discord, Slack adapters
|
|
179
|
+
│ ├── tools/ # Tool system (search, extract, crawl)
|
|
180
|
+
│ └── i18n/ # EN, ES, ZH, PT translations
|
|
181
|
+
├── .github/workflows/ # GitHub Action for automated scanning
|
|
182
|
+
├── examples/ # Example skills
|
|
183
|
+
└── tests/ # Test suite
|
|
316
184
|
```
|
|
317
185
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
| 特性 | OpenClaw | SkillKit |
|
|
321
|
-
|------|----------|----------|
|
|
322
|
-
| 模型支持 | 仅 Claude | **11 供应商**(Claude、GPT、DeepSeek、通义千问、Gemini、Ollama、Groq、Kimi、智谱 等) |
|
|
323
|
-
| 成本 | 最低 $20/月 | 使用本地/免费模型 **$0**(DeepSeek、Ollama) |
|
|
324
|
-
| 安全性 | 发现 820+ 恶意技能 | **SkillGuard** 在执行前扫描每个技能 |
|
|
325
|
-
| 语言 | 仅英文 | 第一天起支持 **EN、ES、ZH、PT** |
|
|
326
|
-
| 渠道 | 仅 CLI | **CLI + WhatsApp + Telegram + Discord + Slack** |
|
|
327
|
-
| 安装 | 复杂配置 | **一条命令**:`npx skillkit init` |
|
|
328
|
-
|
|
329
|
-
### 快速开始
|
|
186
|
+
## CLI Reference
|
|
330
187
|
|
|
331
188
|
```bash
|
|
332
|
-
#
|
|
333
|
-
|
|
189
|
+
# Scanning
|
|
190
|
+
skillshield scan <skill.md> # Full security audit
|
|
191
|
+
skillshield scan <skill.md> --json # JSON output for CI/CD
|
|
334
192
|
|
|
335
|
-
#
|
|
336
|
-
|
|
193
|
+
# Runtime (Scan + Shield + Execute)
|
|
194
|
+
skillshield run <skill> --input "..." # Full pipeline
|
|
195
|
+
skillshield run <skill> --no-shield # Scan only, no enforcement
|
|
196
|
+
skillshield run <skill> --no-scan # Skip pre-scan (not recommended)
|
|
197
|
+
skillshield run <skill> --timeout 30000 # Custom timeout (ms)
|
|
198
|
+
skillshield run <skill> --max-memory 256 # Custom memory limit (MB)
|
|
199
|
+
skillshield run <skill> --allow-domains api.openai.com,github.com
|
|
200
|
+
skillshield run <skill> --audit-file trail.json
|
|
201
|
+
skillshield run <skill> --verbose # Show all shield activity
|
|
337
202
|
|
|
338
|
-
#
|
|
339
|
-
|
|
203
|
+
# Badge
|
|
204
|
+
skillshield badge <skill.md> # Generate shields.io badge
|
|
205
|
+
skillshield badge <skill.md> --output README.md
|
|
340
206
|
|
|
341
|
-
#
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
#
|
|
345
|
-
|
|
346
|
-
# => 已拦截:检测到键盘记录器(安全评分:12/100)
|
|
207
|
+
# Skill management
|
|
208
|
+
skillshield init # Interactive setup
|
|
209
|
+
skillshield search "data analysis" # Find skills
|
|
210
|
+
skillshield install <name> # Install from hub
|
|
211
|
+
skillshield list # List installed
|
|
347
212
|
```
|
|
348
213
|
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
| 供应商 | 模型 | 免费额度 |
|
|
352
|
-
|--------|------|---------|
|
|
353
|
-
| **DeepSeek** | deepseek-chat, deepseek-r1 | 每日 50万 tokens |
|
|
354
|
-
| **通义千问** (阿里云) | qwen-plus, qwen-turbo, qwen-max | 每月 100万 tokens |
|
|
355
|
-
| **Ollama** (本地) | Qwen 2.5, DeepSeek R1, Llama 3 | 无限制(本地运行) |
|
|
214
|
+
## Contributing
|
|
356
215
|
|
|
357
|
-
|
|
216
|
+
We welcome contributions! The most impactful areas right now:
|
|
358
217
|
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
<a name="portugues"></a>
|
|
364
|
-
|
|
365
|
-
## O que e SkillKit?
|
|
366
|
-
|
|
367
|
-
SkillKit e um runtime open-source que executa arquivos **SKILL.md** — o formato padrao usado pelas 10.700+ skills do ClawHub — com **qualquer modelo de IA**, em **qualquer idioma**, com **varredura de seguranca integrada**.
|
|
218
|
+
1. **New threat patterns** — Found a new attack vector? Add it to `src/guard/patterns.ts`
|
|
219
|
+
2. **Shield bypass testing** — Try to break the runtime enforcement. If you succeed, file an issue.
|
|
220
|
+
3. **CI/CD integrations** — GitHub Actions, GitLab CI, Jenkins plugins
|
|
221
|
+
4. **Platform-specific enforcement** — Windows, macOS, Linux edge cases
|
|
368
222
|
|
|
369
223
|
```bash
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
### Inicio Rapido
|
|
376
|
-
|
|
377
|
-
```bash
|
|
378
|
-
npm install -g skillkit
|
|
379
|
-
skillkit init
|
|
380
|
-
skillkit run --skill email-assistant --model deepseek-chat --input "Acompanhamento da proposta do cliente"
|
|
381
|
-
skillkit scan clawhub://solana-wallet-tracker
|
|
224
|
+
git clone https://github.com/artefactforge/skillshield.git
|
|
225
|
+
cd skillshield
|
|
226
|
+
npm install
|
|
227
|
+
npm run build
|
|
382
228
|
```
|
|
383
229
|
|
|
384
|
-
### Contribuir
|
|
385
|
-
|
|
386
|
-
Aceitamos contribuicoes em todos os idiomas! Consulte [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
387
|
-
|
|
388
230
|
---
|
|
389
231
|
|
|
390
232
|
<div align="center">
|
|
@@ -393,8 +235,8 @@ Aceitamos contribuicoes em todos os idiomas! Consulte [CONTRIBUTING.md](CONTRIBU
|
|
|
393
235
|
|
|
394
236
|
MIT License - See [LICENSE](LICENSE) for details.
|
|
395
237
|
|
|
396
|
-
Built
|
|
238
|
+
Built by [ArtefactForge](https://artefactforge.ai)
|
|
397
239
|
|
|
398
|
-
**
|
|
240
|
+
**The industry invested in watching. We invested in stopping.**
|
|
399
241
|
|
|
400
242
|
</div>
|
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SkillShield Run Command — The Full Runtime Security Pipeline
|
|
3
|
+
*
|
|
4
|
+
* Flow:
|
|
5
|
+
* 1. SCAN — SkillGuard pre-execution pattern matching (72+ patterns, 14 categories)
|
|
6
|
+
* 2. SHIELD — Activate runtime enforcement (network policy, filesystem jail, kill switch)
|
|
7
|
+
* 3. EXECUTE — Run the skill with enforcement wrapper injected
|
|
8
|
+
* 4. REPORT — Show ShieldReport with violations, audit hash, resource usage
|
|
9
|
+
*
|
|
10
|
+
* This is the command that makes SkillShield unique in the market:
|
|
11
|
+
* "The first tool that scans AND stops — in one CLI."
|
|
12
|
+
*/
|
|
1
13
|
import { Command } from 'commander';
|
|
2
14
|
export declare function run(program: Command): void;
|
|
3
15
|
//# sourceMappingURL=run.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiFpC,wBAAgB,GAAG,CAAC,OAAO,EAAE,OAAO,QAiRnC"}
|