karnel-termux 4.13.11 → 4.15.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 +25 -11
- package/assets/fonts/font.ttf +0 -0
- package/docs/ARCHITECTURE.md +6 -1
- package/docs/CHANGELOG.md +35 -0
- package/docs/README.md +1 -1
- package/docs/cli/README.md +100 -41
- package/install.sh +144 -63
- package/karnel/RELEASE_COMMIT +1 -0
- package/karnel/bin/karnel +49 -11
- package/karnel/cli/commands/backup.sh +165 -154
- package/karnel/cli/commands/env.sh +0 -3
- package/karnel/cli/commands/ia.sh +7 -7
- package/karnel/cli/commands/install.sh +15 -5
- package/karnel/cli/commands/list.sh +5 -0
- package/karnel/cli/commands/reinstall.sh +1 -185
- package/karnel/cli/commands/restore.sh +118 -77
- package/karnel/cli/commands/show.sh +8 -6
- package/karnel/cli/commands/start.sh +1 -0
- package/karnel/cli/commands/update.sh +2 -2
- package/karnel/cli/karnel.sh +36 -50
- package/karnel/modules/ai.sh +9 -17
- package/karnel/modules/shell.sh +27 -10
- package/karnel/tools/ai/all.sh +73 -12
- package/karnel/tools/ai/ampcode/install.sh +65 -111
- package/karnel/tools/ai/cactus/README.md +45 -0
- package/karnel/tools/ai/cactus/install.sh +268 -0
- package/karnel/tools/ai/claude-code/install.sh +49 -22
- package/karnel/tools/ai/codebuff/install.sh +50 -118
- package/karnel/tools/ai/codegraph/install.sh +34 -24
- package/karnel/tools/ai/codex/install.sh +1 -1
- package/karnel/tools/ai/command-code/install.sh +1 -1
- package/karnel/tools/ai/crush/install.sh +46 -10
- package/karnel/tools/ai/cursor-cli/install.sh +18 -28
- package/karnel/tools/ai/engram/install.sh +8 -5
- package/karnel/tools/ai/gemini-cli/install.sh +1 -1
- package/karnel/tools/ai/gentle-ai/install.sh +5 -25
- package/karnel/tools/ai/gentle-ai/termux-patches.go +0 -0
- package/karnel/tools/ai/gga/README.md +6 -6
- package/karnel/tools/ai/gga/install.sh +145 -101
- package/karnel/tools/ai/goose/install.sh +29 -8
- package/karnel/tools/ai/hermes-agent/install.sh +88 -50
- package/karnel/tools/ai/hugging-face/README.md +34 -0
- package/karnel/tools/ai/hugging-face/install.sh +129 -0
- package/karnel/tools/ai/kilocode-cli/install.sh +3 -3
- package/karnel/tools/ai/kimchi-code/install.sh +53 -90
- package/karnel/tools/ai/kimi-code/install.sh +1 -1
- package/karnel/tools/ai/kiro/install.sh +102 -78
- package/karnel/tools/ai/mimocode/install.sh +45 -106
- package/karnel/tools/ai/minimax-cli/install.sh +1 -1
- package/karnel/tools/ai/mistral-vibe/install.sh +1 -1
- package/karnel/tools/ai/odysseus/install.sh +28 -16
- package/karnel/tools/ai/oh-my-pi/install.sh +2 -2
- package/karnel/tools/ai/ollama/install.sh +1 -1
- package/karnel/tools/ai/openclaude/install.sh +1 -1
- package/karnel/tools/ai/openclaw/install.sh +1 -1
- package/karnel/tools/ai/opencode/install.sh +4 -0
- package/karnel/tools/ai/pi/install.sh +1 -1
- package/karnel/tools/ai/qoder/bin/qodercli +3 -2
- package/karnel/tools/ai/qoder/install.sh +110 -45
- package/karnel/tools/ai/qwen-code/install.sh +1 -1
- package/karnel/tools/auto/all.sh +8 -7
- package/karnel/tools/auto/n8n/install.sh +1 -1
- package/karnel/tools/db/all.sh +8 -7
- package/karnel/tools/deploy/all.sh +8 -6
- package/karnel/tools/deploy/netlify/README.md +4 -0
- package/karnel/tools/deploy/supabase/install.sh +71 -33
- package/karnel/tools/dev/all.sh +13 -11
- package/karnel/tools/editor/all.sh +8 -7
- package/karnel/tools/editor/neovim/install.sh +1 -1
- package/karnel/tools/editor/nvchad/install.sh +86 -32
- package/karnel/tools/games/all.sh +8 -7
- package/karnel/tools/games/arcade/install.sh +2 -2
- package/karnel/tools/games/buzz/install.sh +2 -2
- package/karnel/tools/games/ctfgod/install.sh +2 -2
- package/karnel/tools/games/detective/install.sh +2 -2
- package/karnel/tools/games/pet-friends/install.sh +2 -2
- package/karnel/tools/games/tamagotchi/install.sh +2 -2
- package/karnel/tools/lang/all.sh +8 -7
- package/karnel/tools/network/all.sh +11 -13
- package/karnel/tools/network/dark/install.sh +1 -1
- package/karnel/tools/network/dedsec-network/install.sh +1 -1
- package/karnel/tools/npm/all.sh +8 -7
- package/karnel/tools/npm/live-server/install.sh +2 -1
- package/karnel/tools/npm/localtunnel/install.sh +2 -1
- package/karnel/tools/npm/markserv/install.sh +2 -1
- package/karnel/tools/npm/ncu/install.sh +2 -1
- package/karnel/tools/npm/nestjs/install.sh +2 -1
- package/karnel/tools/npm/ngrok/install.sh +2 -1
- package/karnel/tools/npm/prettier/install.sh +2 -1
- package/karnel/tools/npm/psqlformat/install.sh +2 -1
- package/karnel/tools/npm/turbopack/install.sh +20 -4
- package/karnel/tools/npm/typescript/install.sh +2 -1
- package/karnel/tools/npm/vercel/install.sh +2 -1
- package/karnel/tools/osint/all.sh +11 -13
- package/karnel/tools/plugins/install.sh +20 -27
- package/karnel/tools/security/aircrack-ng/install.sh +7 -2
- package/karnel/tools/security/all.sh +10 -4
- package/karnel/tools/security/amass/install.sh +22 -16
- package/karnel/tools/security/binwalk/install.sh +7 -2
- package/karnel/tools/security/burpsuite/install.sh +54 -26
- package/karnel/tools/security/dirb/install.sh +7 -2
- package/karnel/tools/security/dnsrecon/install.sh +7 -2
- package/karnel/tools/security/enum4linux/install.sh +7 -2
- package/karnel/tools/security/exiftool/install.sh +7 -2
- package/karnel/tools/security/ffuf/install.sh +18 -15
- package/karnel/tools/security/foremost/install.sh +7 -2
- package/karnel/tools/security/gobuster/install.sh +21 -17
- package/karnel/tools/security/hashcat/install.sh +7 -2
- package/karnel/tools/security/hydra/install.sh +7 -2
- package/karnel/tools/security/john/install.sh +7 -2
- package/karnel/tools/security/masscan/install.sh +6 -2
- package/karnel/tools/security/metasploit/install.sh +14 -8
- package/karnel/tools/security/netcat/install.sh +7 -2
- package/karnel/tools/security/nikto/install.sh +7 -2
- package/karnel/tools/security/nmap/install.sh +7 -2
- package/karnel/tools/security/smbclient/install.sh +7 -2
- package/karnel/tools/security/sqlmap/install.sh +7 -2
- package/karnel/tools/security/steghide/install.sh +7 -2
- package/karnel/tools/security/subfinder/install.sh +22 -16
- package/karnel/tools/security/tcpdump/install.sh +7 -2
- package/karnel/tools/security/theharvester/install.sh +7 -2
- package/karnel/tools/security/wafw00f/install.sh +42 -3
- package/karnel/tools/security/whatweb/install.sh +7 -2
- package/karnel/tools/security/whois/install.sh +7 -2
- package/karnel/tools/security/wpscan/install.sh +42 -3
- package/karnel/tools/security/zap/install.sh +44 -18
- package/karnel/tools/shell/all.sh +11 -10
- package/karnel/tools/shell/better-npm/install.sh +7 -4
- package/karnel/tools/shell/fzf-tab/install.sh +7 -4
- package/karnel/tools/shell/history-substring/install.sh +7 -4
- package/karnel/tools/shell/powerlevel10k/install.sh +7 -4
- package/karnel/tools/shell/you-should-use/install.sh +7 -4
- package/karnel/tools/shell/zsh-autopair/install.sh +7 -4
- package/karnel/tools/shell/zsh-autosuggestions/install.sh +7 -4
- package/karnel/tools/shell/zsh-completions/install.sh +7 -4
- package/karnel/tools/shell/zsh-defer/install.sh +7 -4
- package/karnel/tools/shell/zsh-syntax-highlighting/install.sh +7 -4
- package/karnel/tools/ui/all.sh +8 -7
- package/karnel/tools/utils/all.sh +13 -11
- package/karnel/tools/utils/applaunch/install.sh +2 -2
- package/karnel/tools/utils/fconv/install.sh +2 -2
- package/karnel/tools/utils/filecheck/install.sh +2 -2
- package/karnel/tools/utils/notes/install.sh +2 -2
- package/karnel/tools/utils/passman/install.sh +2 -2
- package/karnel/tools/utils/qrcode/install.sh +1 -1
- package/karnel/tools/utils/splash/install.sh +2 -2
- package/karnel/tools/utils/treex/install.sh +2 -2
- package/karnel/tools/utils/websites/install.sh +2 -2
- package/karnel/tools/voice/all.sh +1 -1
- package/karnel/utils/backup.sh +182 -0
- package/karnel/utils/bootstrap.sh +67 -3
- package/karnel/utils/downloaded-python.sh +50 -11
- package/karnel/utils/env.sh +27 -7
- package/karnel/utils/install.sh +272 -11
- package/karnel/utils/tools.sh +117 -5
- package/package.json +4 -3
- package/scripts/check-package.js +86 -9
- package/scripts/completion.bash +134 -13
- package/scripts/completion.zsh +138 -53
- package/scripts/npm-install.js +9 -3
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
<p align="center">
|
|
10
10
|
<a href="https://github.com/israelmarques1024-dotcom/karnel-termux">
|
|
11
|
-
<img src="https://img.shields.io/badge/version-4.
|
|
11
|
+
<img src="https://img.shields.io/badge/version-4.15.0-0078D4?style=for-the-badge" alt="Version">
|
|
12
12
|
</a>
|
|
13
13
|
<a href="https://www.npmjs.com/package/karnel-termux">
|
|
14
14
|
<img src="https://img.shields.io/npm/v/karnel-termux?style=for-the-badge&logo=npm&color=cb3837" alt="npm">
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
|
|
34
34
|
Created by **Israel Marques**.
|
|
35
35
|
|
|
36
|
-
- **
|
|
36
|
+
- **43 AI tools** — Claude, Gemini, OpenCode, Cactus, Hugging Face, Ollama, KeelCode, Goose, Factory Droid and more
|
|
37
37
|
- **8 languages** — Node.js, Python, Go, Rust, C/C++, PHP, Perl, Bun
|
|
38
38
|
- **5 databases** — PostgreSQL, MariaDB, SQLite, MongoDB, Redis
|
|
39
39
|
- **22 dev tools** — gh, curl, fzf, bat, lsd, jq, tmux, openssh, snyk and more
|
|
@@ -56,10 +56,15 @@ Created by **Israel Marques**.
|
|
|
56
56
|
|
|
57
57
|
## Installation
|
|
58
58
|
|
|
59
|
-
### Via
|
|
59
|
+
### Via checksummed GitHub release (recommended)
|
|
60
60
|
|
|
61
61
|
```bash
|
|
62
|
-
|
|
62
|
+
version=4.15.0
|
|
63
|
+
tmpdir=$(mktemp -d) && trap 'rm -rf "$tmpdir"' EXIT
|
|
64
|
+
base="https://github.com/israelmarques1024-dotcom/karnel-termux/releases/download/v$version"
|
|
65
|
+
curl -fsSL "$base/karnel-termux-install.sh" -o "$tmpdir/karnel-termux-install.sh"
|
|
66
|
+
curl -fsSL "$base/karnel-termux-install.sh.sha256" -o "$tmpdir/karnel-termux-install.sh.sha256"
|
|
67
|
+
(cd "$tmpdir" && sha256sum -c karnel-termux-install.sh.sha256) && bash "$tmpdir/karnel-termux-install.sh" --ref "v$version"
|
|
63
68
|
```
|
|
64
69
|
|
|
65
70
|
### Via npm
|
|
@@ -80,6 +85,10 @@ After installation, run:
|
|
|
80
85
|
karnel
|
|
81
86
|
```
|
|
82
87
|
|
|
88
|
+
In a terminal, running `karnel` without a command opens a curated menu for
|
|
89
|
+
common workflows. The menu is not a complete inventory of CLI commands,
|
|
90
|
+
aliases, or options; use `karnel help` and the CLI reference for the full set.
|
|
91
|
+
|
|
83
92
|
---
|
|
84
93
|
|
|
85
94
|
## Usage
|
|
@@ -104,7 +113,7 @@ karnel
|
|
|
104
113
|
| `karnel start editor` | Start code-server (VS Code in browser) |
|
|
105
114
|
| `karnel pg` | PostgreSQL manager |
|
|
106
115
|
| `karnel init <template>` | Initialize projects with templates |
|
|
107
|
-
| `karnel deploy` |
|
|
116
|
+
| `karnel deploy` | Run Vercel, Railway, Netlify, or Supabase CLI commands |
|
|
108
117
|
| `karnel supabase` | Manage the Supabase CLI and remote-project helpers |
|
|
109
118
|
| `karnel robin` | Manage the Robin OSINT service |
|
|
110
119
|
| `karnel --version` | Show installed version |
|
|
@@ -115,7 +124,7 @@ karnel
|
|
|
115
124
|
|--------|-------------|--------------|
|
|
116
125
|
| `lang` | Node.js, Python, Go, Rust, C/C++, PHP, Perl, Bun | `karnel install lang` |
|
|
117
126
|
| `db` | PostgreSQL, MariaDB, SQLite, MongoDB, Redis | `karnel install db` |
|
|
118
|
-
| `ai` |
|
|
127
|
+
| `ai` | 43 AI tools, agents, and local inference clients | `karnel install ai` |
|
|
119
128
|
| `editor` | code-server (VS Code in browser), Neovim, NvChad | `karnel install editor` |
|
|
120
129
|
| `dev` | gh, curl, fzf, bat, lsd, jq and more | `karnel install dev` |
|
|
121
130
|
| `npm` | TypeScript, NestJS CLI, Prettier and more | `karnel install npm` |
|
|
@@ -259,7 +268,7 @@ See the bundled reference with `karnel show osint --robin`.
|
|
|
259
268
|
|
|
260
269
|
---
|
|
261
270
|
|
|
262
|
-
## AI
|
|
271
|
+
## AI Tools (43)
|
|
263
272
|
|
|
264
273
|
```bash
|
|
265
274
|
karnel install ai # Install all
|
|
@@ -278,6 +287,8 @@ karnel install ai --opencode --ollama # Install specific agents
|
|
|
278
287
|
| **OpenClaude** | `--openclaude` | Open source Claude Code alternative |
|
|
279
288
|
| **OpenClaw** | `--openclaw` | Personal AI assistant |
|
|
280
289
|
| **Ollama** | `--ollama` | Run open source LLMs locally |
|
|
290
|
+
| **Cactus** | `--cactus` | On-device ARM64 inference through an isolated Ubuntu runtime |
|
|
291
|
+
| **Hugging Face** | `--hugging-face` | Official Hugging Face Hub CLI (`hf`) |
|
|
281
292
|
| **Codex CLI** | `--codex` | OpenAI coding agent |
|
|
282
293
|
| **OpenCode** | `--opencode` | Open source terminal agent |
|
|
283
294
|
| **MiMoCode** | `--mimocode` | Fast open source AI agent |
|
|
@@ -361,7 +372,9 @@ karnel brain sync # Sync with private GitHub
|
|
|
361
372
|
|
|
362
373
|
## karnel voice
|
|
363
374
|
|
|
364
|
-
Capture audio from microphone, review in editor, copy
|
|
375
|
+
Capture audio from the microphone, optionally review it in an editor, copy it
|
|
376
|
+
to the clipboard, and dispatch an AI agent with the transcribed prompt. If an
|
|
377
|
+
editor is unavailable or no TTY is attached, Karnel uses the raw transcript.
|
|
365
378
|
|
|
366
379
|
```bash
|
|
367
380
|
karnel voice opencode # Record -> edit -> opencode run
|
|
@@ -413,7 +426,7 @@ Microphone -> termux-speech-to-text -> editor (edit) -> clipboard -> AI agent
|
|
|
413
426
|
|
|
414
427
|
- Termux:API: `pkg install termux-api`
|
|
415
428
|
- App Termux:API: https://karneltermux.vercel.app/termux/api
|
|
416
|
-
- Editor: `karnel install editor`
|
|
429
|
+
- Editor (optional): `karnel install editor`; otherwise use `--raw` or the automatic raw fallback
|
|
417
430
|
|
|
418
431
|
---
|
|
419
432
|
|
|
@@ -465,7 +478,8 @@ karnel env ls # List variables
|
|
|
465
478
|
|
|
466
479
|
## karnel deploy
|
|
467
480
|
|
|
468
|
-
|
|
481
|
+
Run an installed platform CLI through Karnel; arguments after the tool name are
|
|
482
|
+
forwarded unchanged:
|
|
469
483
|
|
|
470
484
|
```bash
|
|
471
485
|
karnel deploy vercel # Deploy to Vercel
|
|
@@ -545,7 +559,7 @@ karnel/
|
|
|
545
559
|
│ │ └── karnel.sh # Main CLI (with TUI)
|
|
546
560
|
│ ├── modules/ # Module orchestrators
|
|
547
561
|
│ ├── tools/ # Tool installers
|
|
548
|
-
│ │ ├── ai/ #
|
|
562
|
+
│ │ ├── ai/ # 43 AI tools
|
|
549
563
|
│ │ ├── lang/ # 8 languages
|
|
550
564
|
│ │ ├── db/ # 5 databases
|
|
551
565
|
│ │ ├── dev/ # 22 dev tools
|
|
Binary file
|
package/docs/ARCHITECTURE.md
CHANGED
|
@@ -27,7 +27,7 @@ karnel-termux/
|
|
|
27
27
|
│ │ ├── dev.sh # Dev tools installer
|
|
28
28
|
│ │ └── ...
|
|
29
29
|
│ ├── tools/ # Individual tool installers
|
|
30
|
-
│ │ ├── ai/ #
|
|
30
|
+
│ │ ├── ai/ # 43 AI tools
|
|
31
31
|
│ │ ├── lang/ # 8 languages
|
|
32
32
|
│ │ ├── db/ # 5 databases
|
|
33
33
|
│ │ ├── dev/ # 22 dev tools
|
|
@@ -83,6 +83,11 @@ import "@/cli/commands/doctor/code"
|
|
|
83
83
|
|
|
84
84
|
The `@` symbol is replaced with `$KARNEL_PATH`. This avoids hardcoded paths.
|
|
85
85
|
|
|
86
|
+
`import()` is not an idempotent module loader: it calls `source` on every import
|
|
87
|
+
and does not track files already loaded. Top-level assignments and other side
|
|
88
|
+
effects therefore run again when the same file is imported more than once;
|
|
89
|
+
imported files must tolerate repeated evaluation where callers can repeat them.
|
|
90
|
+
|
|
86
91
|
### Critical Scope Implication
|
|
87
92
|
|
|
88
93
|
Because `import()` calls `source` from within a function, any `declare` statement
|
package/docs/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,40 @@
|
|
|
1
1
|
# Documentation Changelog
|
|
2
2
|
|
|
3
|
+
## 4.15.0 - 2026-08-14
|
|
4
|
+
|
|
5
|
+
- Replaced the unavailable GGA fork with the official Gentleman Guardian
|
|
6
|
+
Angel v2.10.1, pinned by commit, with Termux-safe staging, ownership
|
|
7
|
+
verification, rollback, and non-destructive uninstall.
|
|
8
|
+
- Made backup/restore transactional: staged configs, ancestor symlink
|
|
9
|
+
rejection, signal-safe rollback, concurrent backup isolation, validated
|
|
10
|
+
snapshot names, and explicit package/configuration phase separation.
|
|
11
|
+
- Hardened lifecycle ownership so pre-existing installs are never adopted,
|
|
12
|
+
arbitrary handler exit codes are treated as failures, and stale or empty
|
|
13
|
+
locks are recovered safely.
|
|
14
|
+
- Pinned release/npm/installer together: the npm package carries a validated
|
|
15
|
+
`RELEASE_COMMIT`, the release workflow is serialized per tag and refuses
|
|
16
|
+
divergent partial publications, and the installer activates only a verified,
|
|
17
|
+
clean checkout.
|
|
18
|
+
- Authenticated security and AI installers with fixed versions and official
|
|
19
|
+
SHA-256 checksums, safe archive extraction, staging, and rollback; unverifiable
|
|
20
|
+
upstream assets now fail closed instead of executing unauthenticated bytes.
|
|
21
|
+
- Fixed the npm postinstall to distinguish the npm bin symlink from a complete
|
|
22
|
+
managed installation, and removed the deprecated `curl | bash` guidance.
|
|
23
|
+
- Updated ShellCheck/syntax/test gates to 294 scripts and added regression
|
|
24
|
+
suites for backup, lifecycle, installer integrity, and AI installer hardening.
|
|
25
|
+
|
|
26
|
+
## 4.14.0 - 2026-08-14
|
|
27
|
+
|
|
28
|
+
- Added tested Cactus 2.0.1 support on ARM64 through Ubuntu Proot with an
|
|
29
|
+
isolated compatible Python runtime.
|
|
30
|
+
- Added the official Hugging Face `hf` CLI in an isolated native Termux
|
|
31
|
+
environment, using HTTP transport when the optional Xet Android wheel is
|
|
32
|
+
unavailable.
|
|
33
|
+
- Made the AI registry authoritative for TUI selection, route discovery, and
|
|
34
|
+
lifecycle dispatch, with contracts covering all 43 registered tools.
|
|
35
|
+
- Fixed AI reinstall and uninstall error propagation, unknown status handling,
|
|
36
|
+
binary alias summaries, ownership checks, and stale tool counts.
|
|
37
|
+
|
|
3
38
|
## 4.13.11 - 2026-08-10
|
|
4
39
|
|
|
5
40
|
- Hardened installers to preserve user-managed commands and data, with atomic
|
package/docs/README.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
## What is Karnel?
|
|
15
15
|
|
|
16
16
|
Karnel Termux transforms your Android device into a complete development workstation.
|
|
17
|
-
With a single CLI (`karnel`), you can install and manage
|
|
17
|
+
With a single CLI (`karnel`), you can install and manage 43 AI tools, 8 languages,
|
|
18
18
|
5 databases, 22 dev tools, 12 utility tools, 2 network tools, 6 games, responsible OSINT, and more.
|
|
19
19
|
|
|
20
20
|
## Sections
|
package/docs/cli/README.md
CHANGED
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
karnel <command> [arguments]
|
|
5
5
|
```
|
|
6
6
|
|
|
7
|
-
With no command, Karnel opens
|
|
8
|
-
available and prints help in noninteractive contexts.
|
|
7
|
+
With no command, Karnel opens a curated interactive menu (TUI) when a terminal
|
|
8
|
+
is available and prints help in noninteractive contexts. The menu exposes common
|
|
9
|
+
workflows, not every command, alias, or option documented below.
|
|
9
10
|
|
|
10
11
|
---
|
|
11
12
|
|
|
@@ -22,7 +23,7 @@ karnel install <module> --tool1 --tool2 # Install specific tools only
|
|
|
22
23
|
|-----------|-------------|
|
|
23
24
|
| `lang` | Node.js, Python, Go, Rust, C/C++, PHP, Perl, Bun |
|
|
24
25
|
| `db` | PostgreSQL, MariaDB, SQLite, MongoDB, Redis |
|
|
25
|
-
| `ai` |
|
|
26
|
+
| `ai` | 43 AI tools (OpenCode, Cactus, Hugging Face, Claude Code, KeelCode, Goose, Factory Droid, Ollama, etc.) |
|
|
26
27
|
| `editor` | code-server (VS Code in browser), Neovim, NvChad |
|
|
27
28
|
| `dev` | gh, curl, fzf, bat, lsd, jq, tmux, openssh, snyk (22 tools) |
|
|
28
29
|
| `npm` | TypeScript, NestJS CLI, Prettier, Vercel CLI, etc. |
|
|
@@ -42,7 +43,7 @@ karnel install <module> --tool1 --tool2 # Install specific tools only
|
|
|
42
43
|
|
|
43
44
|
| Module | Flags |
|
|
44
45
|
|-----------|-------|
|
|
45
|
-
| `ai` | `--qwen-code`, `--gemini-cli`, `--claude-code`, `--mistral-vibe`, `--openclaude`, `--openclaw`, `--ollama`, `--codex`, `--opencode`, `--mimocode`, `--engram`, `--codegraph`, `--pi`, `--antigravity-cli`, `--minimax-cli`, `--gentle-ai`, `--gga`, `--hermes-agent`, `--kimi-code`, `--command-code`, `--codebuff`, `--freebuff`, `--kilocode-cli`, `--kiro`, `--crush`, `--cline`, `--odysseus`, `--kimchi-code`, `--omni-route`, `--ctx7`, `--openspec`, `--supercode-cli`, `--puter`, `--keelcode`, `--copilot-termux`, `--qoder`, `--ampcode`, `--cursor-cli`, `--oh-my-pi`, `--goose`, `--droid` |
|
|
46
|
+
| `ai` | `--qwen-code`, `--gemini-cli`, `--claude-code`, `--mistral-vibe`, `--openclaude`, `--openclaw`, `--ollama`, `--codex`, `--opencode`, `--mimocode`, `--engram`, `--codegraph`, `--pi`, `--antigravity-cli`, `--minimax-cli`, `--gentle-ai`, `--gga`, `--hermes-agent`, `--kimi-code`, `--command-code`, `--codebuff`, `--freebuff`, `--kilocode-cli`, `--kiro`, `--crush`, `--cline`, `--odysseus`, `--kimchi-code`, `--omni-route`, `--ctx7`, `--openspec`, `--supercode-cli`, `--puter`, `--keelcode`, `--copilot-termux`, `--qoder`, `--ampcode`, `--cursor-cli`, `--oh-my-pi`, `--goose`, `--droid`, `--cactus`, `--hugging-face` |
|
|
46
47
|
| `db` | `--postgresql`, `--mariadb`, `--sqlite`, `--mongodb`, `--redis` |
|
|
47
48
|
| `dev` | `--gh`, `--wget`, `--curl`, `--lsd`, `--bat`, `--proot`, `--ncurses`, `--tmate`, `--openssh`, `--tmux`, `--cloudflared`, `--translate`, `--html2text`, `--jq`, `--bc`, `--tree`, `--fzf`, `--imagemagick`, `--shfmt`, `--make`, `--udocker`, `--snyk` |
|
|
48
49
|
| `lang` | `--bun`, `--nodejs`, `--python`, `--perl`, `--php`, `--rust`, `--clang`, `--golang` |
|
|
@@ -136,7 +137,7 @@ binary/command name, and current install status.
|
|
|
136
137
|
|-----------|-------|
|
|
137
138
|
| `lang` | 8 languages |
|
|
138
139
|
| `db` | 5 databases |
|
|
139
|
-
| `ai` |
|
|
140
|
+
| `ai` | 43 AI tools |
|
|
140
141
|
| `editor` | 3 editor components |
|
|
141
142
|
| `dev` | 22 development tools |
|
|
142
143
|
| `npm` | 11 npm global modules |
|
|
@@ -442,8 +443,9 @@ karnel env ls
|
|
|
442
443
|
karnel voice [agent] [options]
|
|
443
444
|
```
|
|
444
445
|
|
|
445
|
-
Captures audio via `termux-speech-to-text`, opens the transcript in
|
|
446
|
-
copies to clipboard, and dispatches the AI agent.
|
|
446
|
+
Captures audio via `termux-speech-to-text`, optionally opens the transcript in
|
|
447
|
+
`$EDITOR`, copies it to the clipboard, and dispatches the AI agent. If no editor
|
|
448
|
+
is installed or no TTY is available, Karnel continues with the raw transcript.
|
|
447
449
|
|
|
448
450
|
### Agent targets
|
|
449
451
|
|
|
@@ -539,18 +541,21 @@ cd . && karnel init # Auto-detect
|
|
|
539
541
|
|
|
540
542
|
---
|
|
541
543
|
|
|
542
|
-
## deploy —
|
|
544
|
+
## deploy — Run deployment CLIs
|
|
543
545
|
|
|
544
546
|
```bash
|
|
545
547
|
karnel deploy <tool> [args...]
|
|
546
548
|
```
|
|
547
549
|
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
|
552
|
-
|
|
553
|
-
| `
|
|
550
|
+
`deploy` checks that the selected executable exists, then replaces Karnel with
|
|
551
|
+
that CLI and forwards all remaining arguments.
|
|
552
|
+
|
|
553
|
+
| Tool | Executable |
|
|
554
|
+
|------|------------|
|
|
555
|
+
| `vercel` | `vercel` |
|
|
556
|
+
| `railway` | `railway` |
|
|
557
|
+
| `netlify` | `netlify` |
|
|
558
|
+
| `supabase` | `supabase`; this is a generic CLI pass-through, not a deployment action by itself |
|
|
554
559
|
|
|
555
560
|
```bash
|
|
556
561
|
karnel deploy vercel
|
|
@@ -568,19 +573,19 @@ karnel deploy supabase
|
|
|
568
573
|
karnel supabase <subcommand> [options]
|
|
569
574
|
```
|
|
570
575
|
|
|
571
|
-
The top-level command manages Supabase CLI installation and
|
|
572
|
-
workflows. It does not start the local Supabase
|
|
573
|
-
Docker on a Linux host.
|
|
576
|
+
The top-level command manages the pinned Supabase CLI installation and provides
|
|
577
|
+
thin wrappers for linked-project workflows. It does not start the local Supabase
|
|
578
|
+
stack on Termux; `supabase start` requires Docker on a Linux host.
|
|
574
579
|
|
|
575
580
|
| Subcommand | Description |
|
|
576
581
|
|------------|-------------|
|
|
577
|
-
| `doctor` | Check CLI,
|
|
578
|
-
| `types` |
|
|
579
|
-
| `migrate` |
|
|
580
|
-
| `link` |
|
|
581
|
-
| `remote-start` / `remote` |
|
|
582
|
-
| `remote-status` / `status` |
|
|
583
|
-
| `install` / `uninstall` | Install or remove
|
|
582
|
+
| `doctor` | Check the CLI, `supabase/config.toml`, Docker expectations, and API reachability |
|
|
583
|
+
| `types` | Run `supabase gen types typescript --linked`; extra arguments are not forwarded |
|
|
584
|
+
| `migrate` | Forward arguments to `supabase db` |
|
|
585
|
+
| `link` | Forward arguments to `supabase link` |
|
|
586
|
+
| `remote-start` / `remote` | Print a guide for running the Docker-backed local stack on a Linux host |
|
|
587
|
+
| `remote-status` / `status` | Run `supabase status`, which reports the local stack rather than hosted-project health |
|
|
588
|
+
| `install` / `uninstall` | Install or remove Karnel's pinned Supabase CLI binary |
|
|
584
589
|
|
|
585
590
|
```bash
|
|
586
591
|
karnel supabase install
|
|
@@ -589,6 +594,43 @@ karnel supabase types
|
|
|
589
594
|
karnel supabase migrate push
|
|
590
595
|
```
|
|
591
596
|
|
|
597
|
+
The downloaded Linux binary may still fail on Android because of unsupported
|
|
598
|
+
system calls. The wrapper reports a `SIGSYS` failure and recommends PRoot or a
|
|
599
|
+
Linux host; installation alone does not guarantee native Android compatibility.
|
|
600
|
+
|
|
601
|
+
---
|
|
602
|
+
|
|
603
|
+
## plugin — Plugin manager
|
|
604
|
+
|
|
605
|
+
```bash
|
|
606
|
+
karnel plugin <subcommand> [options]
|
|
607
|
+
```
|
|
608
|
+
|
|
609
|
+
| Subcommand | Description |
|
|
610
|
+
|------------|-------------|
|
|
611
|
+
| `search [query]` | Search the pinned approved registry snapshot |
|
|
612
|
+
| `install <name>` | Install a plugin from that registry |
|
|
613
|
+
| `install <owner/repo> --unsafe` | Install an unreviewed repository after confirmation |
|
|
614
|
+
| `update <name>` | Atomically update an installed plugin |
|
|
615
|
+
| `remove` / `uninstall <name>` | Remove an installed plugin |
|
|
616
|
+
| `list` / `ls` | List installed plugins and their trust source |
|
|
617
|
+
| `create` / `scaffold <name>` | Create and activate a validated local plugin scaffold |
|
|
618
|
+
|
|
619
|
+
Search accepts `--command <name>`, `--compatible`, and `--capability <name>`.
|
|
620
|
+
Capabilities are `network`, `filesystem-read`, `filesystem-write`, `process`,
|
|
621
|
+
and `environment`. `--unsafe` applies only to `install` and `update`.
|
|
622
|
+
|
|
623
|
+
Plugins are Bash code, run with the current user's permissions, and are not
|
|
624
|
+
sandboxed. Registry review and manifest validation are not isolation boundaries.
|
|
625
|
+
|
|
626
|
+
```bash
|
|
627
|
+
karnel plugin search backup --compatible
|
|
628
|
+
karnel plugin install karnel-hello
|
|
629
|
+
karnel plugin install owner/repo --unsafe
|
|
630
|
+
karnel plugin update karnel-hello
|
|
631
|
+
karnel plugin remove karnel-hello
|
|
632
|
+
```
|
|
633
|
+
|
|
592
634
|
---
|
|
593
635
|
|
|
594
636
|
## pg — PostgreSQL manager
|
|
@@ -659,23 +701,29 @@ karnel backup restore [file]
|
|
|
659
701
|
```
|
|
660
702
|
|
|
661
703
|
Creates `$KARNEL_DATA/backups/termux-<timestamp>.tar.gz` with SHA256 checksum.
|
|
704
|
+
Concurrent runs reserve distinct names atomically instead of overwriting a
|
|
705
|
+
backup created in the same second.
|
|
662
706
|
|
|
663
707
|
### Included in backup
|
|
664
708
|
|
|
665
|
-
-
|
|
666
|
-
-
|
|
667
|
-
-
|
|
709
|
+
- Package selections embedded under `metadata/packages.list` (`dpkg --get-selections`)
|
|
710
|
+
- A catalog snapshot of tool installer directories, not a record of which tools are installed
|
|
711
|
+
- Selected shell configs (`.bashrc`, `.zshrc`, `.profile`, `.zshenv`, `.inputrc`)
|
|
668
712
|
- Termux configs (fonts, colors, properties)
|
|
669
|
-
- SSH keys
|
|
670
|
-
- `~/.config`
|
|
671
|
-
- APT
|
|
713
|
+
- SSH configuration, known hosts, authorized keys, and public keys; private keys are excluded
|
|
714
|
+
- Selected `~/.config` application directories; `github-copilot`, `nvm`, `coc`, `Code`, and `yarn` are excluded, as are symbolic links and all `.env`, credential, auth, and token files matched by the backup filter
|
|
715
|
+
- `$PREFIX/etc/apt/sources.list` only; files under `sources.list.d` and APT keys are not included
|
|
716
|
+
|
|
717
|
+
Backups are gzip-compressed, not encrypted. API environment variables and SSH
|
|
718
|
+
private keys are not exported, but copied application configuration can still
|
|
719
|
+
contain credentials. Protect local and cloud copies as sensitive plaintext data.
|
|
672
720
|
|
|
673
721
|
### Options
|
|
674
722
|
|
|
675
723
|
| Flag | Description |
|
|
676
724
|
|------|-------------|
|
|
677
|
-
| `--cloud` |
|
|
678
|
-
| `snapshot <name>` | Create a named snapshot |
|
|
725
|
+
| `--cloud` | Legacy plaintext upload; requires explicit `KARNEL_ALLOW_PLAINTEXT_CLOUD_BACKUP=1` acknowledgement |
|
|
726
|
+
| `snapshot <name>` | Create a timestamped named snapshot using the same contents and secret filter as a full backup; names accept 1-64 letters, numbers, dots, underscores, or hyphens |
|
|
679
727
|
| `list` / `ls` | List full backups and snapshots |
|
|
680
728
|
| `info` / `show [file]` | Show a backup's contents (latest if omitted) |
|
|
681
729
|
| `--cron` | Schedule a daily backup at 3:00 AM |
|
|
@@ -689,6 +737,11 @@ karnel backup snapshot before-update
|
|
|
689
737
|
karnel backup list
|
|
690
738
|
```
|
|
691
739
|
|
|
740
|
+
Cloud backup is disabled by default because the archive is not encrypted or
|
|
741
|
+
signed. The legacy opt-in uploads both archive and checksum, but they share the
|
|
742
|
+
same remote trust boundary. Package selections and the informational tool
|
|
743
|
+
catalog are embedded in the archive.
|
|
744
|
+
|
|
692
745
|
---
|
|
693
746
|
|
|
694
747
|
## restore — Full Termux restore
|
|
@@ -699,22 +752,28 @@ karnel restore [--cloud] [--list] [<file>]
|
|
|
699
752
|
|
|
700
753
|
### What it restores
|
|
701
754
|
|
|
702
|
-
-
|
|
755
|
+
- Selected shell configs to `~/`
|
|
703
756
|
- Termux configs
|
|
704
|
-
- SSH keys
|
|
705
|
-
-
|
|
706
|
-
-
|
|
707
|
-
-
|
|
708
|
-
- Karnel
|
|
709
|
-
|
|
710
|
-
|
|
757
|
+
- SSH configuration and public keys (legacy archives may also contain private keys)
|
|
758
|
+
- The selected `.config` directories present in the archive
|
|
759
|
+
- `$PREFIX/etc/apt/sources.list` when present
|
|
760
|
+
- Embedded package selections (via `dpkg --set-selections` + `apt-get dselect-upgrade`)
|
|
761
|
+
- The tool catalog is retained as metadata only; Karnel does not incorrectly reinstall every tool in the source catalog
|
|
762
|
+
|
|
763
|
+
Requires and verifies the SHA256 checksum before extraction. Restore rejects
|
|
764
|
+
archives containing traversal paths, links, devices, or other unsafe entries.
|
|
765
|
+
Configuration is first merged into staging so unrelated existing files remain
|
|
766
|
+
in place, then committed with local backups. A copy, move, or package-restore
|
|
767
|
+
failure rolls configuration back instead of reporting a partial success.
|
|
768
|
+
Package-manager operations themselves are not transactionally reversible by
|
|
769
|
+
Karnel if `apt-get` changes package state before returning an error.
|
|
711
770
|
|
|
712
771
|
### Options
|
|
713
772
|
|
|
714
773
|
| Argument | Description |
|
|
715
774
|
|----------|-------------|
|
|
716
775
|
| `<file>` | Path to a specific backup file |
|
|
717
|
-
| `--cloud` |
|
|
776
|
+
| `--cloud` | Legacy unauthenticated cloud restore; requires `KARNEL_ALLOW_UNAUTHENTICATED_CLOUD_RESTORE=1` |
|
|
718
777
|
| `--list`, `-l` | List available full backups and snapshots |
|
|
719
778
|
| `--help`, `-h` | Show help |
|
|
720
779
|
|