@hitechclaw/clawspark 2.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.
Files changed (49) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/LICENSE +21 -0
  3. package/README.md +378 -0
  4. package/clawspark +2715 -0
  5. package/configs/models.yaml +108 -0
  6. package/configs/skill-packs.yaml +44 -0
  7. package/configs/skills.yaml +37 -0
  8. package/install.sh +387 -0
  9. package/lib/common.sh +249 -0
  10. package/lib/detect-hardware.sh +156 -0
  11. package/lib/diagnose.sh +636 -0
  12. package/lib/render-diagram.sh +47 -0
  13. package/lib/sandbox-commands.sh +415 -0
  14. package/lib/secure.sh +244 -0
  15. package/lib/select-model.sh +442 -0
  16. package/lib/setup-browser.sh +138 -0
  17. package/lib/setup-dashboard.sh +228 -0
  18. package/lib/setup-inference.sh +128 -0
  19. package/lib/setup-mcp.sh +142 -0
  20. package/lib/setup-messaging.sh +242 -0
  21. package/lib/setup-models.sh +121 -0
  22. package/lib/setup-openclaw.sh +808 -0
  23. package/lib/setup-sandbox.sh +188 -0
  24. package/lib/setup-skills.sh +113 -0
  25. package/lib/setup-systemd.sh +224 -0
  26. package/lib/setup-tailscale.sh +188 -0
  27. package/lib/setup-voice.sh +101 -0
  28. package/lib/skill-audit.sh +449 -0
  29. package/lib/verify.sh +177 -0
  30. package/package.json +57 -0
  31. package/scripts/release.sh +133 -0
  32. package/uninstall.sh +161 -0
  33. package/v2/README.md +50 -0
  34. package/v2/configs/providers.yaml +79 -0
  35. package/v2/configs/skills.yaml +36 -0
  36. package/v2/install.sh +116 -0
  37. package/v2/lib/common.sh +285 -0
  38. package/v2/lib/detect-hardware.sh +119 -0
  39. package/v2/lib/select-runtime.sh +273 -0
  40. package/v2/lib/setup-extras.sh +95 -0
  41. package/v2/lib/setup-openclaw.sh +187 -0
  42. package/v2/lib/setup-provider.sh +131 -0
  43. package/v2/lib/verify.sh +133 -0
  44. package/web/index.html +1835 -0
  45. package/web/install.sh +387 -0
  46. package/web/logo-hero.svg +11 -0
  47. package/web/logo-icon.svg +12 -0
  48. package/web/logo.svg +17 -0
  49. package/web/vercel.json +8 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,35 @@
1
+ # Changelog
2
+
3
+ All notable changes to `clawspark` will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ### Added
11
+ - Changelog tracking for future releases.
12
+ - npm packaging metadata via `package.json` and `.npmignore`.
13
+ - GitHub Actions workflow for publishing public npm releases from version tags.
14
+ - Release validation that checks tag/version alignment before npm publish.
15
+ - npm publish hardening with owner validation for the `hitechclaw` account and provenance-enabled releases.
16
+ - Automated GitHub Releases from version tags with attached npm tarballs.
17
+ - Continuous integration workflow for pushes and pull requests covering syntax, package validation, and tests.
18
+ - Repository governance files for security reporting, contribution workflow, and code ownership.
19
+ - Release helper script for validated version bumps and tag creation.
20
+
21
+ ## [2.0.0] - 2026-04-04
22
+
23
+ ### Added
24
+ - Initial `clawspark` CLI for installing and managing a local OpenClaw stack.
25
+ - Hardware-aware model selection and multi-model support for chat, vision, and optional image generation.
26
+ - Skills management, security audit flow, diagnostics, dashboard setup, MCP integration, sandbox controls, and Tailscale support.
27
+ - Documentation for installation, tutorial, and configuration workflows.
28
+ - Automated Bats test suites for CLI, security, shared helpers, and skills behavior.
29
+
30
+ ### Changed
31
+ - Refined install and web deployment scripts for the public release flow.
32
+ - Updated repository metadata, deployment settings, and project documentation.
33
+
34
+ [Unreleased]: https://github.com/thanhan92-f1/clawspark/compare/main...HEAD
35
+ [2.0.0]: https://github.com/thanhan92-f1/clawspark/releases/tag/v2.0.0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Nguyen Thanh An by Pho Tue SoftWare Solutions JSC
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,378 @@
1
+ <p align="center">
2
+ <img src="web/logo.svg" alt="clawspark" width="80" />
3
+ </p>
4
+
5
+ <h1 align="center">CLAWSPARK</h1>
6
+
7
+ <p align="center">
8
+ <strong>One command. Private AI agent. Your hardware.</strong>
9
+ </p>
10
+
11
+ <p align="center">
12
+ <a href="https://clawspark.hitechclaw.com">Website</a> &middot;
13
+ <a href="docs/tutorial.md">Tutorial</a> &middot;
14
+ <a href="docs/configuration.md">Configuration</a> &middot;
15
+ <a href="SECURITY.md">Security</a> &middot;
16
+ <a href="CONTRIBUTING.md">Contributing Guide</a> &middot;
17
+ <a href="CHANGELOG.md">Changelog</a> &middot;
18
+ <a href="#contributing">Contributing</a>
19
+ </p>
20
+
21
+ ---
22
+
23
+ ```bash
24
+ curl -fsSL https://clawspark.hitechclaw.com/install.sh | bash
25
+ ```
26
+
27
+ That's it. Come back in 5 minutes to a fully working, fully private AI agent that can code, research, browse the web, analyze images, and manage your tasks. Everything runs on your hardware. No cloud APIs, no subscriptions, no telemetry.
28
+
29
+ ## v2 Preview
30
+
31
+ A new installer track is available in `v2/` for broader deployment targets:
32
+
33
+ - **CPU-first** installs for machines without GPUs
34
+ - **API-first** installs using third-party providers
35
+ - **Hybrid** installs that combine local and remote inference
36
+
37
+ Run it with:
38
+
39
+ ```bash
40
+ bash v2/install.sh
41
+ ```
42
+
43
+ Supported provider modes in `v2`:
44
+
45
+ - `ollama`
46
+ - `openai`
47
+ - `anthropic`
48
+ - `openrouter`
49
+ - `google`
50
+ - `custom`
51
+
52
+ `v2` now also reuses the stable installer modules for:
53
+
54
+ - default skills from `v2/configs/skills.yaml`
55
+ - local Whisper voice setup
56
+ - WhatsApp or Telegram onboarding
57
+ - security hardening and token generation
58
+
59
+ Useful v2 examples:
60
+
61
+ ```bash
62
+ bash v2/install.sh --runtime=local-cpu --provider=ollama --messaging=skip
63
+ bash v2/install.sh --runtime=api-only --provider=openai --api-key=<your-key>
64
+ bash v2/install.sh --runtime=hybrid --provider=openrouter --messaging=telegram
65
+ bash v2/install.sh --runtime=api-only --provider=custom --provider-name="My Gateway" --base-url=https://llm.example.com/v1 --api-key=<your-key> --model=my-model
66
+ ```
67
+
68
+ This does **not** replace the main installer yet. It is a separate v2 track for CPU and external API support.
69
+
70
+ When only `v2` is installed, the `clawspark` CLI now reads state from `~/.clawspark-v2` automatically.
71
+ If both tracks exist, select explicitly with:
72
+
73
+ ```bash
74
+ CLAWSPARK_PROFILE=v2 clawspark status
75
+ CLAWSPARK_PROFILE=standard clawspark status
76
+ ```
77
+
78
+ For remote and custom providers, `clawspark model list` now shows the active provider context and configured API endpoint instead of only local Ollama inventory.
79
+ `clawspark status` also performs a lightweight remote endpoint probe for API-backed profiles.
80
+ You can also update remote provider settings after install with commands such as `clawspark provider set openai --base-url=https://api.openai.com/v1 --api-key=<your-key>` or `clawspark provider set custom --name="My Gateway" --base-url=https://llm.example.com/v1 --api-key=<your-key>`.
81
+ Use `clawspark provider list` to see the built-in provider catalog and default endpoints.
82
+ Use `clawspark provider use <provider>` to switch quickly using the built-in default endpoint for that provider.
83
+ Running `clawspark provider use` with no provider now opens a provider selection flow.
84
+ Use `clawspark provider doctor` to validate the active provider configuration, expected env vars, endpoint reachability, and model/provider alignment.
85
+ Use `clawspark provider doctor --json` for automation-friendly diagnostics output.
86
+
87
+ ## What is this?
88
+
89
+ [OpenClaw](https://github.com/openclaw/openclaw) is the most popular open-source AI agent (340K+ stars). **clawspark** gets it running on your NVIDIA hardware in one command. Fully local. Fully private. Your data never leaves your machine.
90
+
91
+ `clawspark` is built around **OpenClaw**. It is **not** "nemoclaw". `Nemotron` appears in this repository only as a **model option** on some hardware profiles, not as the agent framework name.
92
+
93
+ **What happens when you run it:**
94
+
95
+ 1. Detects your hardware (DGX Spark, Jetson, RTX GPUs, Mac)
96
+ 2. Picks the best model using [llmfit](https://github.com/AlexsJones/llmfit) for hardware-aware selection
97
+ 3. Installs everything (Ollama, OpenClaw, 10 skills, dependencies)
98
+ 4. Configures multi-model (chat + vision + optional image generation)
99
+ 5. Enables voice (local Whisper transcription, zero cloud)
100
+ 6. Sets up browser automation (headless Chromium)
101
+ 7. Sets up your dashboard (chat UI + metrics)
102
+ 8. Creates systemd services (auto-starts on boot)
103
+ 9. Hardens security (firewall, auth tokens, localhost binding, Docker sandbox)
104
+
105
+ ## Supported Hardware
106
+
107
+ | Hardware | Memory | Default Model | Tokens/sec |
108
+ |---|---|---|---|
109
+ | **DGX Spark** | 128 GB unified | Qwen 3.5 35B-A3B | ~59 (measured) |
110
+ | Jetson AGX Thor | 128 GB unified | Auto-selected | Community testing |
111
+ | Jetson AGX Orin | 64 GB unified | Auto-selected | Community testing |
112
+ | RTX 5090 / 4090 | 24-32 GB VRAM | Auto-selected | Community testing |
113
+ | RTX 4080 / 4070 | 8-16 GB VRAM | Auto-selected | Community testing |
114
+ | Mac M1/M2/M3/M4 | 16-128 GB unified | Auto-selected | Community testing |
115
+
116
+ NVIDIA platforms use [llmfit](https://github.com/AlexsJones/llmfit) to detect your hardware and pick the best model. macOS uses a curated fallback list.
117
+
118
+ ## Quick Start
119
+
120
+ The installer asks 3 questions:
121
+
122
+ ```
123
+ [1/3] Which model? > 5 models ranked by hardware fit
124
+ [2/3] Messaging platform? > WhatsApp / Telegram / Both / Skip
125
+ [3/3] Tailscale? > Yes (remote access) / No
126
+ ```
127
+
128
+ Zero interaction mode:
129
+
130
+ ```bash
131
+ curl -fsSL https://clawspark.hitechclaw.com/install.sh | bash -s -- --defaults
132
+ ```
133
+
134
+ ## What Your Agent Can Do
135
+
136
+ | Capability | How it Works |
137
+ |---|---|
138
+ | **Answer questions** | Local LLM via Ollama |
139
+ | **Search the web** | Built-in web search + DuckDuckGo, no API key |
140
+ | **Deep research** | Sub-agents run parallel research threads |
141
+ | **Browse websites** | Headless Chromium (navigate, click, fill forms, screenshot) |
142
+ | **Analyze images** | Vision model for screenshots, photos, diagrams |
143
+ | **Write and run code** | exec + read/write/edit tools |
144
+ | **Voice notes** | Local Whisper transcription for WhatsApp voice messages |
145
+ | **File management** | Read, write, edit, search files on the host |
146
+ | **Scheduled tasks** | Cron-based automation |
147
+ | **Sub-agent orchestration** | Spawn parallel background agents |
148
+
149
+ All of this runs locally. No data leaves your machine.
150
+
151
+ ## Skills
152
+
153
+ 10 verified skills ship by default. Install curated bundles:
154
+
155
+ ```bash
156
+ clawspark skills pack research # Deep research + web search (4 skills)
157
+ clawspark skills pack coding # Code generation + review (2 skills)
158
+ clawspark skills pack productivity # Task management + knowledge (3 skills)
159
+ clawspark skills pack voice # Voice interaction (2 skills)
160
+ clawspark skills pack full # Everything (10 skills)
161
+ ```
162
+
163
+ Manage individual skills:
164
+
165
+ ```bash
166
+ clawspark skills add <name> # Install a skill
167
+ clawspark skills remove <name> # Remove a skill
168
+ clawspark skills sync # Apply skills.yaml changes
169
+ clawspark skills audit # Security scan installed skills
170
+ ```
171
+
172
+ ## Multi-Model
173
+
174
+ Three model slots:
175
+
176
+ | Slot | Purpose | Example |
177
+ |---|---|---|
178
+ | **Chat** | Conversation and coding | `ollama/qwen3.5:35b-a3b` |
179
+ | **Vision** | Image analysis | `ollama/qwen2.5-vl:7b` |
180
+ | **Image gen** | Create images (optional) | Local ComfyUI or API |
181
+
182
+ ```bash
183
+ clawspark model list # Show all models
184
+ clawspark model switch <model> # Change chat model
185
+ clawspark model vision <model> # Set vision model
186
+ ```
187
+
188
+ ## Security
189
+
190
+ - UFW firewall (deny incoming by default)
191
+ - 256-bit auth token for the gateway API
192
+ - Gateway binds to localhost only
193
+ - Code-level tool restrictions (21 blocked command patterns)
194
+ - SOUL.md + TOOLS.md with immutable guardrails
195
+ - Plugin approval hooks (user confirmation before acting)
196
+ - Optional Docker sandbox (no network, read-only root, all caps dropped)
197
+ - Air-gap mode: `clawspark airgap on`
198
+ - OpenAI-compatible API gateway for local-first workflows
199
+
200
+ **Skill security audit** -- scans installed skills for 30+ malicious patterns (credential theft, exfiltration, obfuscation). Protects against ClawHub supply chain attacks:
201
+
202
+ ```bash
203
+ clawspark skills audit
204
+ ```
205
+
206
+ ## Diagnostics
207
+
208
+ Full system health check across hardware, GPU, Ollama, OpenClaw, skills, ports, security, and logs:
209
+
210
+ ```bash
211
+ clawspark diagnose # alias: clawspark doctor
212
+ ```
213
+
214
+ Generates a shareable debug report at `~/.clawspark/diagnose-report.txt`.
215
+
216
+ ## CLI Reference
217
+
218
+ ```
219
+ clawspark status Show system health
220
+ clawspark start Start all services
221
+ clawspark stop [--all] Stop services (--all includes Ollama)
222
+ clawspark restart Restart everything
223
+ clawspark update Update OpenClaw, re-apply patches
224
+ clawspark benchmark Run performance benchmark
225
+ clawspark model list|switch|vision Manage models
226
+ clawspark provider [show|list|doctor|set|use] Manage API provider settings
227
+ clawspark skills sync|add|remove|pack|audit Manage skills
228
+ clawspark sandbox on|off|status|test Docker sandbox
229
+ clawspark tools list|enable|disable Agent tools
230
+ clawspark mcp list|setup|add|remove MCP servers
231
+ clawspark tailscale setup|status Remote access
232
+ clawspark airgap on|off Network isolation
233
+ clawspark diagnose System diagnostics
234
+ clawspark logs Tail gateway logs
235
+ clawspark uninstall Remove everything
236
+ ```
237
+
238
+ ## Dashboard
239
+
240
+ Two web interfaces out of the box:
241
+
242
+ - **Chat UI**: `http://localhost:18789/__openclaw__/canvas/`
243
+ - **Metrics**: `http://localhost:8900` (ClawMetry)
244
+
245
+ Both bind to localhost. Use Tailscale for remote access.
246
+
247
+ ## Docker Sandbox
248
+
249
+ Optional isolated code execution for sub-agents:
250
+
251
+ ```bash
252
+ clawspark sandbox on # Enable
253
+ clawspark sandbox off # Disable
254
+ clawspark sandbox test # Verify isolation
255
+ ```
256
+
257
+ Containers run with no network, read-only root, all capabilities dropped, custom seccomp profile, and memory/CPU limits.
258
+
259
+ ## Uninstall
260
+
261
+ ```bash
262
+ clawspark uninstall
263
+ ```
264
+
265
+ Removes all services, models, and config. Conversations preserved in `~/.openclaw/backups/` unless you pass `--purge`.
266
+
267
+ ## Testing
268
+
269
+ 73 tests using [bats](https://github.com/bats-core/bats-core):
270
+
271
+ ```bash
272
+ bash tests/run.sh
273
+ ```
274
+
275
+ | Suite | Tests | Coverage |
276
+ |---|---|---|
277
+ | `common.bats` | 27 | Logging, colors, helpers |
278
+ | `skills.bats` | 16 | YAML parsing, add/remove, packs |
279
+ | `security.bats` | 11 | Token generation, permissions, deny lists |
280
+ | `cli.bats` | 19 | Version, help, routing, error handling |
281
+
282
+ ## npm Package
283
+
284
+ [![npm version](https://img.shields.io/npm/v/clawspark.svg)](https://www.npmjs.com/package/clawspark)
285
+ [![CI](https://github.com/thanhan92-f1/clawspark/actions/workflows/ci.yml/badge.svg)](https://github.com/thanhan92-f1/clawspark/actions/workflows/ci.yml)
286
+ [![Publish to npm](https://github.com/thanhan92-f1/clawspark/actions/workflows/publish-npm.yml/badge.svg)](https://github.com/thanhan92-f1/clawspark/actions/workflows/publish-npm.yml)
287
+ [![GitHub Release](https://img.shields.io/github/v/release/thanhan92-f1/clawspark)](https://github.com/thanhan92-f1/clawspark/releases)
288
+
289
+ `clawspark` can also be distributed as an npm package for installing the CLI entrypoint:
290
+
291
+ ```bash
292
+ npm install -g clawspark
293
+ ```
294
+
295
+ Local package validation:
296
+
297
+ ```bash
298
+ npm run pack:check
299
+ ```
300
+
301
+ Public publishing is automated through `.github/workflows/publish-npm.yml` and expects an `NPM_TOKEN` repository secret.
302
+ Regular validation for pushes and pull requests runs through `.github/workflows/ci.yml`.
303
+
304
+ Example setup:
305
+
306
+ 1. Add repository secret `NPM_TOKEN` in GitHub Actions secrets.
307
+ 2. Make sure the token belongs to npm user `hitechclaw`.
308
+ 3. Make sure the tag matches `package.json` version exactly, for example `v2.0.0` for version `2.0.0`.
309
+ 4. Push the tag.
310
+ 5. GitHub Actions validates metadata, checks the packed tarball, verifies the npm account, and publishes `clawspark` to npmjs.com with provenance.
311
+ 6. GitHub Actions also creates a GitHub Release and attaches the generated npm tarball.
312
+
313
+ Example release flow:
314
+
315
+ ```bash
316
+ npm version patch
317
+ git push origin main --follow-tags
318
+ ```
319
+
320
+ Release helper:
321
+
322
+ ```bash
323
+ npm run release:patch
324
+ npm run release:minor
325
+ npm run release:major
326
+ ```
327
+
328
+ Or run the helper directly:
329
+
330
+ ```bash
331
+ bash scripts/release.sh patch --push
332
+ ```
333
+
334
+ Or manually:
335
+
336
+ ```bash
337
+ git tag v2.0.0
338
+ git push origin v2.0.0
339
+ ```
340
+
341
+ ## Acknowledgements
342
+
343
+ - **[OpenClaw](https://github.com/openclaw/openclaw)** -- AI agent framework
344
+ - **[Ollama](https://ollama.com)** -- Local LLM inference
345
+ - **[llmfit](https://github.com/AlexsJones/llmfit)** -- Hardware-aware model selection
346
+ - **[Baileys](https://github.com/WhiskeySockets/Baileys)** -- WhatsApp Web client
347
+ - **[Whisper](https://github.com/openai/whisper)** -- Speech-to-text
348
+ - **[ClawMetry](https://github.com/vivekchand/clawmetry)** -- Observability dashboard
349
+ - **[Qwen](https://github.com/QwenLM/Qwen)** -- The model family that runs great on DGX Spark
350
+
351
+ ## Maintainers
352
+
353
+ - **[Saiyam Pathak](https://github.com/saiyam1814)**
354
+ - **[Rohit Ghumare](https://github.com/rohitg00)**
355
+
356
+ ## Contributing
357
+
358
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for local validation, PR expectations, and release guidelines.
359
+
360
+ PRs welcome. Areas where help is needed:
361
+
362
+ - Testing on Jetson variants and RTX GPUs
363
+ - Hardware detection for more GPU models
364
+ - Additional messaging platform integrations
365
+ - New skills and skill packs
366
+ - Sandbox improvements
367
+
368
+ ## License
369
+
370
+ MIT. See [LICENSE](LICENSE).
371
+
372
+ ---
373
+
374
+ <p align="center">
375
+ Built for people who want AI that works for them, not the other way around.
376
+ <br />
377
+ <a href="https://clawspark.hitechclaw.com">clawspark.hitechclaw.com</a>
378
+ </p>