karnel-termux 4.17.6 → 4.17.8
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 +16 -16
- package/docs/ARCHITECTURE/index.md +2 -2
- package/docs/CHANGELOG.md +10 -0
- package/docs/_config.yml +9 -1
- package/docs/assets/css/style.scss +237 -0
- package/docs/assets/images/karnel-logo.png +0 -0
- package/docs/cli/index.md +43 -4
- package/docs/index.md +30 -23
- package/karnel/RELEASE_COMMIT +1 -1
- package/karnel/cli/commands/agent.sh +5 -6
- package/karnel/cli/commands/brain.sh +7 -5
- package/karnel/cli/commands/env.sh +8 -6
- package/karnel/cli/commands/install.sh +0 -566
- package/karnel/cli/commands/pg.sh +11 -10
- package/karnel/modules/shell.sh +17 -5
- package/karnel/tools/ai/all.sh +1 -1
- package/karnel/tools/ai/antigravity-cli/install.sh +6 -3
- package/karnel/tools/ai/droid/install.sh +4 -2
- package/karnel/tools/ai/keelcode/install.sh +13 -2
- package/karnel/tools/ai/kilocode-cli/install.sh +8 -1
- package/karnel/tools/ai/kimchi-code/install.sh +4 -2
- package/karnel/tools/ai/oh-my-pi/install.sh +6 -3
- package/karnel/tools/deploy/railway/install.sh +12 -8
- package/karnel/tools/deploy/supabase/install.sh +3 -1
- package/karnel/tools/dev/fzf/install.sh +4 -2
- package/karnel/tools/editor/nvchad/install.sh +1 -1
- package/karnel/tools/lang/bun/install.sh +24 -14
- package/karnel/tools/utils/zork/install.sh +5 -1
- package/karnel/utils/agent_actions.sh +14 -7
- package/karnel/utils/agent_llm.sh +16 -3
- package/karnel/utils/install.sh +36 -18
- package/karnel/utils/log.sh +3 -1
- package/karnel/utils/version.sh +3 -1
- package/package.json +1 -1
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.17.
|
|
11
|
+
<img src="https://img.shields.io/badge/version-4.17.8-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">
|
|
@@ -25,9 +25,6 @@
|
|
|
25
25
|
<a href="https://karneltermux.vercel.app">
|
|
26
26
|
<img src="https://img.shields.io/badge/Site-karneltermux.vercel.app-0078D4?style=for-the-badge" alt="Website">
|
|
27
27
|
</a>
|
|
28
|
-
<a href="https://www.youtube.com/@capideb">
|
|
29
|
-
<img src="https://img.shields.io/badge/YouTube-Capi.deb-FF0000?style=for-the-badge&logo=youtube&logoColor=white" alt="YouTube — Capi.deb">
|
|
30
|
-
</a>
|
|
31
28
|
</p>
|
|
32
29
|
|
|
33
30
|
---
|
|
@@ -38,7 +35,7 @@ Created by **Israel Marques**.
|
|
|
38
35
|
|
|
39
36
|
Core agent contributions by **devcorex**.
|
|
40
37
|
|
|
41
|
-
- **
|
|
38
|
+
- **45 AI tools** — Claude, Gemini, OpenCode, Cactus, Hugging Face, Ollama, KeelCode, Goose, Factory Droid and more
|
|
42
39
|
- **8 languages** — Node.js, Python, Go, Rust, C/C++, PHP, Perl, Bun
|
|
43
40
|
- **5 databases** — PostgreSQL, MariaDB, SQLite, MongoDB, Redis
|
|
44
41
|
- **22 dev tools** — gh, curl, fzf, bat, lsd, jq, tmux, openssh, snyk and more
|
|
@@ -64,7 +61,7 @@ Core agent contributions by **devcorex**.
|
|
|
64
61
|
### Via checksummed GitHub release (recommended)
|
|
65
62
|
|
|
66
63
|
```bash
|
|
67
|
-
version=4.17.
|
|
64
|
+
version=4.17.8
|
|
68
65
|
tmpdir=$(mktemp -d) && trap 'rm -rf "$tmpdir"' EXIT
|
|
69
66
|
base="https://github.com/israelmarques1024-dotcom/karnel-termux/releases/download/v$version"
|
|
70
67
|
curl -fsSL "$base/karnel-termux-install.sh" -o "$tmpdir/karnel-termux-install.sh"
|
|
@@ -115,6 +112,7 @@ aliases, or options; use `karnel help` and the CLI reference for the full set.
|
|
|
115
112
|
| `karnel brain` | Second brain — memories and search |
|
|
116
113
|
| `karnel env` | Manage environment variables |
|
|
117
114
|
| `karnel voice` | Voice commands for AI agents |
|
|
115
|
+
| `karnel agent` | Local AI assistant — chat (`ask`) and task agent (`run`) |
|
|
118
116
|
| `karnel start editor` | Start code-server (VS Code in browser) |
|
|
119
117
|
| `karnel pg` | PostgreSQL manager |
|
|
120
118
|
| `karnel init <template>` | Initialize projects with templates |
|
|
@@ -129,7 +127,7 @@ aliases, or options; use `karnel help` and the CLI reference for the full set.
|
|
|
129
127
|
|--------|-------------|--------------|
|
|
130
128
|
| `lang` | Node.js, Python, Go, Rust, C/C++, PHP, Perl, Bun | `karnel install lang` |
|
|
131
129
|
| `db` | PostgreSQL, MariaDB, SQLite, MongoDB, Redis | `karnel install db` |
|
|
132
|
-
| `ai` |
|
|
130
|
+
| `ai` | 45 AI tools, agents, and local inference clients | `karnel install ai` |
|
|
133
131
|
| `editor` | code-server (VS Code in browser), Neovim, NvChad | `karnel install editor` |
|
|
134
132
|
| `dev` | gh, curl, fzf, bat, lsd, jq and more | `karnel install dev` |
|
|
135
133
|
| `npm` | TypeScript, NestJS CLI, Prettier and more | `karnel install npm` |
|
|
@@ -273,7 +271,7 @@ See the bundled reference with `karnel show osint --robin`.
|
|
|
273
271
|
|
|
274
272
|
---
|
|
275
273
|
|
|
276
|
-
## AI Tools (
|
|
274
|
+
## AI Tools (45)
|
|
277
275
|
|
|
278
276
|
```bash
|
|
279
277
|
karnel install ai # Install all
|
|
@@ -328,7 +326,9 @@ karnel install ai --opencode --ollama # Install specific agents
|
|
|
328
326
|
| **Supercode CLI** | `--supercode-cli` | Supercode CLI — official npm package |
|
|
329
327
|
| **Puter CLI** | `--puter` | Puter CLI for sites and workers |
|
|
330
328
|
| **KeelCode** | `--keelcode` | Hosted coding-agent CLI |
|
|
331
|
-
|
|
329
|
+
| **Cactus Needle** | `--cactus-needle` | Lightweight Cactus inference helper |
|
|
330
|
+
| **Walkie Agent** | `--walkie` | Voice-first Walkie AI agent |
|
|
331
|
+
|
|
332
332
|
</details>
|
|
333
333
|
|
|
334
334
|
---
|
|
@@ -357,7 +357,7 @@ definitions across 68 distinct tool labels. It detects subprojects, executes
|
|
|
357
357
|
checks in the matching project or subproject directory, preserves command exit status, and writes
|
|
358
358
|
timestamped text reports under `$KARNEL_DATA/doctor_code_reports/`.
|
|
359
359
|
|
|
360
|
-
Read the **[complete Doctor reference](docs/doctor/
|
|
360
|
+
Read the **[complete Doctor reference](docs/doctor/index.md)** for modes,
|
|
361
361
|
supported ecosystems, tool coverage, JSON schema, reports, and auto-fix safety.
|
|
362
362
|
|
|
363
363
|
---
|
|
@@ -513,11 +513,11 @@ Documentation loads from https://karneltermux.vercel.app.
|
|
|
513
513
|
|
|
514
514
|
## Documentation
|
|
515
515
|
|
|
516
|
-
- [Documentation index](docs/
|
|
517
|
-
- [CLI reference](docs/cli/
|
|
518
|
-
- [Doctor reference](docs/doctor/
|
|
519
|
-
- [Troubleshooting](docs/troubleshooting.md)
|
|
520
|
-
- [Architecture](docs/ARCHITECTURE.md)
|
|
516
|
+
- [Documentation index](docs/index.md)
|
|
517
|
+
- [CLI reference](docs/cli/index.md)
|
|
518
|
+
- [Doctor reference](docs/doctor/index.md)
|
|
519
|
+
- [Troubleshooting](docs/troubleshooting/index.md)
|
|
520
|
+
- [Architecture](docs/ARCHITECTURE/index.md)
|
|
521
521
|
- [Documentation changelog](docs/CHANGELOG.md)
|
|
522
522
|
- [Official website](https://karneltermux.vercel.app)
|
|
523
523
|
|
|
@@ -564,7 +564,7 @@ karnel/
|
|
|
564
564
|
│ │ └── karnel.sh # Main CLI (with TUI)
|
|
565
565
|
│ ├── modules/ # Module orchestrators
|
|
566
566
|
│ ├── tools/ # Tool installers
|
|
567
|
-
│ │ ├── ai/ #
|
|
567
|
+
│ │ ├── ai/ # 45 AI tools
|
|
568
568
|
│ │ ├── lang/ # 8 languages
|
|
569
569
|
│ │ ├── db/ # 5 databases
|
|
570
570
|
│ │ ├── dev/ # 22 dev tools
|
|
@@ -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/ # 45 AI tools
|
|
31
31
|
│ │ ├── lang/ # 8 languages
|
|
32
32
|
│ │ ├── db/ # 5 databases
|
|
33
33
|
│ │ ├── dev/ # 22 dev tools
|
|
@@ -139,4 +139,4 @@ _tool_postinstall() { ... } # Post-installation setup
|
|
|
139
139
|
|
|
140
140
|
## Doctor Subsystem Architecture
|
|
141
141
|
|
|
142
|
-
See [Doctor System](
|
|
142
|
+
See [Doctor System](../doctor/) for the complete breakdown of the doctor code analysis engine.
|
package/docs/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Documentation Changelog
|
|
2
2
|
|
|
3
|
+
## 4.17.7
|
|
4
|
+
|
|
5
|
+
- Documentation site overhauled: valid `_config.yml`, cayman-compatible custom
|
|
6
|
+
stylesheet that imports the full theme, a workflow that builds Jekyll before
|
|
7
|
+
deploying to GitHub Pages, and tool counts reconciled with the actual
|
|
8
|
+
`karnel/tools/*` and `karnel/tools/ai/*` directories (45 AI tools, 3 editors,
|
|
9
|
+
8 languages, 5 databases, 22 dev tools, 11 npm packages, 10 shell plugins,
|
|
10
|
+
4 UI components, 4 deploy CLIs, 6 games, 2 network tools, 12 utility tools,
|
|
11
|
+
30 security tools, 1 automation tool).
|
|
12
|
+
|
|
3
13
|
## 4.16.1 - 2026-08-22
|
|
4
14
|
|
|
5
15
|
- `karnel agent ask/run`: when the model endpoint is unreachable and Cactus is
|
package/docs/_config.yml
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
title: Karnel Termux
|
|
2
|
-
description:
|
|
2
|
+
description: >-
|
|
3
|
+
Modular Dev Environment for Termux — install languages, databases, AI agents,
|
|
4
|
+
editors, and more with one command.
|
|
5
|
+
author: Israel Marques
|
|
6
|
+
lang: en-US
|
|
3
7
|
theme: jekyll-theme-cayman
|
|
4
8
|
markdown: kramdown
|
|
9
|
+
logo: /assets/images/karnel-logo.png
|
|
10
|
+
custom_css: /assets/css/style.css
|
|
11
|
+
baseurl: /karnel-termux
|
|
12
|
+
show_downloads: false
|
|
5
13
|
exclude:
|
|
6
14
|
- vendor
|
|
7
15
|
- Gemfile
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
---
|
|
2
|
+
---
|
|
3
|
+
|
|
4
|
+
@import "jekyll-theme-cayman";
|
|
5
|
+
|
|
6
|
+
/* Karnel Termux — custom styling layered on top of jekyll-theme-cayman */
|
|
7
|
+
|
|
8
|
+
:root {
|
|
9
|
+
--karnel-bg: #0d1117;
|
|
10
|
+
--karnel-panel: #161b22;
|
|
11
|
+
--karnel-border: #30363d;
|
|
12
|
+
--karnel-accent: #2f81f7;
|
|
13
|
+
--karnel-accent-2: #0078d4;
|
|
14
|
+
--karnel-text: #c9d1d9;
|
|
15
|
+
--karnel-muted: #8b949e;
|
|
16
|
+
--karnel-code-bg: #161b22;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
html {
|
|
20
|
+
scroll-behavior: smooth;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
body {
|
|
24
|
+
font-size: 16px;
|
|
25
|
+
line-height: 1.6;
|
|
26
|
+
color: #24292f;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/* Logo (added in page content; cayman's default.html does not render site.logo) */
|
|
30
|
+
.karnel-logo {
|
|
31
|
+
display: block;
|
|
32
|
+
margin: 0 auto 1.25rem;
|
|
33
|
+
max-width: 220px;
|
|
34
|
+
height: auto;
|
|
35
|
+
border-radius: 14px;
|
|
36
|
+
box-shadow: 0 6px 22px rgba(0, 0, 0, 0.18);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@media (prefers-color-scheme: dark) {
|
|
40
|
+
body {
|
|
41
|
+
background: var(--karnel-bg);
|
|
42
|
+
color: var(--karnel-text);
|
|
43
|
+
}
|
|
44
|
+
.page-header {
|
|
45
|
+
background-image: linear-gradient(120deg, #0078d4, #2f81f7);
|
|
46
|
+
}
|
|
47
|
+
.main-content h1,
|
|
48
|
+
.main-content h2,
|
|
49
|
+
.main-content h3,
|
|
50
|
+
.main-content h4 {
|
|
51
|
+
color: #e6edf3;
|
|
52
|
+
border-bottom-color: var(--karnel-border);
|
|
53
|
+
}
|
|
54
|
+
.main-content a {
|
|
55
|
+
color: var(--karnel-accent);
|
|
56
|
+
}
|
|
57
|
+
.main-content code {
|
|
58
|
+
color: #e6edf3;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.page-header {
|
|
63
|
+
padding: 2.5rem 1rem;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.page-header .project-tagline {
|
|
67
|
+
opacity: 0.95;
|
|
68
|
+
font-size: 1.1rem;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/* Landing navigation */
|
|
72
|
+
.karnel-nav {
|
|
73
|
+
display: flex;
|
|
74
|
+
flex-wrap: wrap;
|
|
75
|
+
gap: 0.6rem;
|
|
76
|
+
margin: 1.5rem 0 2rem;
|
|
77
|
+
padding: 0;
|
|
78
|
+
list-style: none;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.karnel-nav li {
|
|
82
|
+
margin: 0;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.karnel-nav a {
|
|
86
|
+
display: inline-block;
|
|
87
|
+
padding: 0.5rem 1rem;
|
|
88
|
+
border: 1px solid var(--karnel-accent-2, #0078d4);
|
|
89
|
+
border-radius: 999px;
|
|
90
|
+
text-decoration: none;
|
|
91
|
+
font-weight: 600;
|
|
92
|
+
font-size: 0.92rem;
|
|
93
|
+
color: #fff;
|
|
94
|
+
background: rgba(0, 120, 212, 0.12);
|
|
95
|
+
transition: background 0.15s ease, transform 0.15s ease;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.karnel-nav a:hover {
|
|
99
|
+
background: rgba(0, 120, 212, 0.28);
|
|
100
|
+
transform: translateY(-1px);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
@media (prefers-color-scheme: dark) {
|
|
104
|
+
.karnel-nav a {
|
|
105
|
+
color: #c9d1d9;
|
|
106
|
+
border-color: var(--karnel-border);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/* Tables */
|
|
111
|
+
.main-content table {
|
|
112
|
+
display: table;
|
|
113
|
+
width: 100%;
|
|
114
|
+
border-collapse: collapse;
|
|
115
|
+
font-size: 0.95rem;
|
|
116
|
+
margin: 1.5rem 0;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.main-content th,
|
|
120
|
+
.main-content td {
|
|
121
|
+
border: 1px solid var(--karnel-border, #d0d7de);
|
|
122
|
+
padding: 0.55rem 0.75rem;
|
|
123
|
+
text-align: left;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.main-content thead th {
|
|
127
|
+
background: #f3f5f8;
|
|
128
|
+
font-weight: 700;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
@media (prefers-color-scheme: dark) {
|
|
132
|
+
.main-content th,
|
|
133
|
+
.main-content td {
|
|
134
|
+
border-color: var(--karnel-border);
|
|
135
|
+
}
|
|
136
|
+
.main-content thead th {
|
|
137
|
+
background: var(--karnel-panel);
|
|
138
|
+
color: #e6edf3;
|
|
139
|
+
}
|
|
140
|
+
.main-content tbody tr:nth-child(2n) {
|
|
141
|
+
background: rgba(255, 255, 255, 0.03);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/* Code blocks */
|
|
146
|
+
.main-content pre {
|
|
147
|
+
border-radius: 8px;
|
|
148
|
+
padding: 1rem 1.1rem;
|
|
149
|
+
font-size: 0.9rem;
|
|
150
|
+
line-height: 1.5;
|
|
151
|
+
overflow: auto;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.main-content code {
|
|
155
|
+
font-size: 0.88em;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/* Inline code should not be wrapped in its own block styling */
|
|
159
|
+
.main-content p code,
|
|
160
|
+
.main-content li code,
|
|
161
|
+
.main-content td code {
|
|
162
|
+
background: rgba(120, 120, 120, 0.12);
|
|
163
|
+
padding: 0.12em 0.4em;
|
|
164
|
+
border-radius: 4px;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/* Blockquotes */
|
|
168
|
+
.main-content blockquote {
|
|
169
|
+
border-left: 4px solid var(--karnel-accent-2, #0078d4);
|
|
170
|
+
background: rgba(0, 120, 212, 0.06);
|
|
171
|
+
padding: 0.75rem 1rem;
|
|
172
|
+
color: inherit;
|
|
173
|
+
border-radius: 0 6px 6px 0;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/* Admonition callouts */
|
|
177
|
+
.karnel-note {
|
|
178
|
+
border: 1px solid var(--karnel-accent-2, #0078d4);
|
|
179
|
+
border-left-width: 4px;
|
|
180
|
+
border-radius: 8px;
|
|
181
|
+
padding: 0.75rem 1rem;
|
|
182
|
+
margin: 1.25rem 0;
|
|
183
|
+
background: rgba(0, 120, 212, 0.06);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/* Section spacing */
|
|
187
|
+
.main-content h2 {
|
|
188
|
+
margin-top: 2.5rem;
|
|
189
|
+
padding-bottom: 0.4rem;
|
|
190
|
+
border-bottom: 1px solid #e1e4e8;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.main-content h3 {
|
|
194
|
+
margin-top: 1.75rem;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/* Lists of links on the index page */
|
|
198
|
+
.karnel-links {
|
|
199
|
+
display: grid;
|
|
200
|
+
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
|
|
201
|
+
gap: 0.75rem;
|
|
202
|
+
margin: 1.5rem 0;
|
|
203
|
+
padding: 0;
|
|
204
|
+
list-style: none;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.karnel-links a {
|
|
208
|
+
display: block;
|
|
209
|
+
padding: 0.9rem 1rem;
|
|
210
|
+
border: 1px solid #d0d7de;
|
|
211
|
+
border-radius: 10px;
|
|
212
|
+
text-decoration: none;
|
|
213
|
+
font-weight: 600;
|
|
214
|
+
color: #24292f;
|
|
215
|
+
background: #fff;
|
|
216
|
+
transition: border-color 0.15s ease, box-shadow 0.15s ease;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.karnel-links a:hover {
|
|
220
|
+
border-color: var(--karnel-accent-2, #0078d4);
|
|
221
|
+
box-shadow: 0 2px 10px rgba(0, 120, 212, 0.15);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
@media (prefers-color-scheme: dark) {
|
|
225
|
+
.karnel-links a {
|
|
226
|
+
background: var(--karnel-panel);
|
|
227
|
+
border-color: var(--karnel-border);
|
|
228
|
+
color: #e6edf3;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
/* Footer credit spacing */
|
|
233
|
+
.site-footer {
|
|
234
|
+
margin-top: 2.5rem;
|
|
235
|
+
border-top: 1px solid #e1e4e8;
|
|
236
|
+
padding-top: 1rem;
|
|
237
|
+
}
|
|
Binary file
|
package/docs/cli/index.md
CHANGED
|
@@ -23,7 +23,7 @@ karnel install <module> --tool1 --tool2 # Install specific tools only
|
|
|
23
23
|
|-----------|-------------|
|
|
24
24
|
| `lang` | Node.js, Python, Go, Rust, C/C++, PHP, Perl, Bun |
|
|
25
25
|
| `db` | PostgreSQL, MariaDB, SQLite, MongoDB, Redis |
|
|
26
|
-
| `ai` |
|
|
26
|
+
| `ai` | 45 AI tools (OpenCode, Cactus, Hugging Face, Claude Code, KeelCode, Goose, Factory Droid, Ollama, etc.) |
|
|
27
27
|
| `editor` | code-server (VS Code in browser), Neovim, NvChad |
|
|
28
28
|
| `dev` | gh, curl, fzf, bat, lsd, jq, tmux, openssh, snyk (22 tools) |
|
|
29
29
|
| `npm` | TypeScript, NestJS CLI, Prettier, Vercel CLI, etc. |
|
|
@@ -43,7 +43,7 @@ karnel install <module> --tool1 --tool2 # Install specific tools only
|
|
|
43
43
|
|
|
44
44
|
| Module | Flags |
|
|
45
45
|
|-----------|-------|
|
|
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
|
+
| `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`, `--cactus-needle`, `--walkie`, `--hugging-face` |
|
|
47
47
|
| `db` | `--postgresql`, `--mariadb`, `--sqlite`, `--mongodb`, `--redis` |
|
|
48
48
|
| `dev` | `--gh`, `--wget`, `--curl`, `--lsd`, `--bat`, `--proot`, `--ncurses`, `--tmate`, `--openssh`, `--tmux`, `--cloudflared`, `--translate`, `--html2text`, `--jq`, `--bc`, `--tree`, `--fzf`, `--imagemagick`, `--shfmt`, `--make`, `--udocker`, `--snyk` |
|
|
49
49
|
| `lang` | `--bun`, `--nodejs`, `--python`, `--perl`, `--php`, `--rust`, `--clang`, `--golang` |
|
|
@@ -136,7 +136,7 @@ binary/command name, and current install status.
|
|
|
136
136
|
|-----------|-------|
|
|
137
137
|
| `lang` | 8 languages |
|
|
138
138
|
| `db` | 5 databases |
|
|
139
|
-
| `ai` |
|
|
139
|
+
| `ai` | 45 AI tools |
|
|
140
140
|
| `editor` | 3 editor components |
|
|
141
141
|
| `dev` | 22 development tools |
|
|
142
142
|
| `npm` | 11 npm global modules |
|
|
@@ -340,7 +340,7 @@ karnel robin doctor --network
|
|
|
340
340
|
karnel robin purge-data --yes
|
|
341
341
|
```
|
|
342
342
|
|
|
343
|
-
See the [Robin reference](
|
|
343
|
+
See the [Robin reference](https://github.com/israelmarques1024-dotcom/karnel-termux/blob/main/karnel/tools/osint/robin/README.md) for detailed
|
|
344
344
|
lifecycle, data locations, and troubleshooting.
|
|
345
345
|
|
|
346
346
|
---
|
|
@@ -512,6 +512,45 @@ karnel ia routes
|
|
|
512
512
|
|
|
513
513
|
---
|
|
514
514
|
|
|
515
|
+
## agent — Local AI assistant
|
|
516
|
+
|
|
517
|
+
```bash
|
|
518
|
+
karnel agent <ask|run|config> [options]
|
|
519
|
+
```
|
|
520
|
+
|
|
521
|
+
| Subcommand | Description |
|
|
522
|
+
|------------|-------------|
|
|
523
|
+
| `ask` | Streamed AI chat assistant (markdown TUI). With no prompt, opens an interactive chat. |
|
|
524
|
+
| `run` | Task agent: the LLM answers in a plan/build/execute loop and can run shell commands. |
|
|
525
|
+
| `config` | Show or set the assistant configuration. |
|
|
526
|
+
|
|
527
|
+
### Options (ask / run)
|
|
528
|
+
|
|
529
|
+
| Flag | Description |
|
|
530
|
+
|------|-------------|
|
|
531
|
+
| `-p`, `--prompt <text>` | Task or question (omit for interactive mode) |
|
|
532
|
+
| `-m`, `--model <name>` | Model id (default from config) |
|
|
533
|
+
| `-u`, `--endpoint <url>` | OpenAI-compatible endpoint (default from config) |
|
|
534
|
+
| `-t`, `--temperature <n>` | Sampling temperature |
|
|
535
|
+
| `--max-tokens <n>` | Maximum output tokens |
|
|
536
|
+
| `-n`, `--max-iterations <n>` | Agent loop iteration limit (`run`) |
|
|
537
|
+
| `-y`, `--yes` | Auto-approve commands, skip the y/N prompt (`run`) |
|
|
538
|
+
| `-w`, `--workspace <dir>` | Working directory for the task agent (`run`) |
|
|
539
|
+
|
|
540
|
+
```bash
|
|
541
|
+
karnel agent ask -p "Explain rsync"
|
|
542
|
+
karnel agent ask # interactive chat
|
|
543
|
+
karnel agent run -p "create a backup script"
|
|
544
|
+
karnel agent run -p "..." -m gemma-4-e2b-it-cq4 -u http://127.0.0.1:8000/v1
|
|
545
|
+
karnel agent config # show current settings
|
|
546
|
+
karnel agent config model gpt-4o # set the default model id
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
`karnel agent ask` connects to the configured OpenAI-compatible endpoint; if it is
|
|
550
|
+
unreachable and Cactus is not installed, it offers to install Cactus on the spot.
|
|
551
|
+
|
|
552
|
+
---
|
|
553
|
+
|
|
515
554
|
## init — Project configuration
|
|
516
555
|
|
|
517
556
|
```bash
|
package/docs/index.md
CHANGED
|
@@ -1,38 +1,45 @@
|
|
|
1
1
|
# Karnel Termux Documentation
|
|
2
2
|
|
|
3
|
+
<img class="karnel-logo" src="{{ '/assets/images/karnel-logo.png' | relative_url }}" alt="Karnel Termux">
|
|
4
|
+
|
|
3
5
|
> Modular Dev Environment for Termux — install languages, databases, AI agents, editors, and more with one command
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
Navigate the docs:
|
|
6
8
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
<ul class="karnel-nav">
|
|
10
|
+
<li><a href="./cli/">CLI Commands</a></li>
|
|
11
|
+
<li><a href="./doctor/">Doctor System</a></li>
|
|
12
|
+
<li><a href="./troubleshooting/">Troubleshooting</a></li>
|
|
13
|
+
<li><a href="./ARCHITECTURE/">Architecture</a></li>
|
|
14
|
+
<li><a href="./CHANGELOG.md">Changelog</a></li>
|
|
15
|
+
<li><a href="https://israelmarques1024-dotcom.github.io/karnel-termux/">Live Site</a></li>
|
|
16
|
+
</ul>
|
|
13
17
|
|
|
14
18
|
## What is Karnel?
|
|
15
19
|
|
|
16
20
|
Karnel Termux transforms your Android device into a complete development workstation.
|
|
17
|
-
With a single CLI (`karnel`), you can install and manage
|
|
18
|
-
5 databases, 22 dev tools, 11 npm packages, 10 shell plugins,
|
|
19
|
-
4 deploy CLIs, 6 games, 2 network tools, 12 utility tools,
|
|
20
|
-
|
|
21
|
-
from modules: `ai`, `auto`, `db`,
|
|
22
|
-
`
|
|
21
|
+
With a single CLI (`karnel`), you can install and manage 45 AI tools, 3 editors,
|
|
22
|
+
8 languages, 5 databases, 22 dev tools, 11 npm packages, 10 shell plugins,
|
|
23
|
+
4 UI components, 4 deploy CLIs, 6 games, 2 network tools, 12 utility tools,
|
|
24
|
+
30 security tools, 1 automation tool, responsible OSINT, a second brain,
|
|
25
|
+
voice commands, and reviewed plugins — all from modules: `ai`, `auto`, `db`,
|
|
26
|
+
`deploy`, `dev`, `editor`, `games`, `lang`, `network`, `npm`, `osint`,
|
|
27
|
+
`security`, `shell`, `ui`, `utils`, `voice`, `plugin`.
|
|
23
28
|
|
|
24
29
|
## Sections
|
|
25
30
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
<div class="karnel-links">
|
|
32
|
+
<a href="./cli/">CLI Commands — full reference for every <code>karnel</code> subcommand</a>
|
|
33
|
+
<a href="./doctor/">Doctor System — environment checks and the code-analysis engine</a>
|
|
34
|
+
<a href="https://github.com/israelmarques1024-dotcom/karnel-termux/blob/main/karnel/tools/osint/robin/README.md">Robin OSINT — responsible use, lifecycle, data locations</a>
|
|
35
|
+
<a href="https://github.com/israelmarques1024-dotcom/karnel-termux/blob/main/karnel/tools/network/dark/README.md">Network Tools — dark, dedsec-network</a>
|
|
36
|
+
<a href="https://github.com/israelmarques1024-dotcom/karnel-termux/blob/main/karnel/tools/ai/keelcode/README.md">KeelCode — hosted coding-agent CLI</a>
|
|
37
|
+
<a href="https://github.com/israelmarques1024-dotcom/karnel-termux/blob/main/karnel/tools/utils/superfile/README.md">SuperFile — terminal file manager</a>
|
|
38
|
+
<a href="https://github.com/israelmarques1024-dotcom/karnel-termux/blob/main/karnel/tools/utils/fconv/README.md">Utility Scripts — fconv, notes, treex, and more</a>
|
|
39
|
+
<a href="./cli/#supabase--remote-project-helpers">Supabase CLI — remote-project helpers</a>
|
|
40
|
+
<a href="./ARCHITECTURE/">Architecture — project structure and module system</a>
|
|
41
|
+
<a href="./CHANGELOG.md">Changelog — version history and fixes</a>
|
|
42
|
+
</div>
|
|
36
43
|
|
|
37
44
|
## Credits
|
|
38
45
|
|
package/karnel/RELEASE_COMMIT
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
ad787cd9d5efa67b498b0b1dc5e00203553b32e7
|
|
@@ -448,7 +448,7 @@ agent_repl_handle() {
|
|
|
448
448
|
;;
|
|
449
449
|
/model*)
|
|
450
450
|
local m="${line#/model }"
|
|
451
|
-
m
|
|
451
|
+
[[ "$m" == "$line" ]] && m=""
|
|
452
452
|
m=$(echo "$m" | xargs)
|
|
453
453
|
if [[ -z "$m" ]]; then
|
|
454
454
|
log_info "Available models:"
|
|
@@ -462,7 +462,7 @@ agent_repl_handle() {
|
|
|
462
462
|
;;
|
|
463
463
|
/endpoint*)
|
|
464
464
|
local e="${line#/endpoint }"
|
|
465
|
-
e
|
|
465
|
+
[[ "$e" == "$line" ]] && e=""
|
|
466
466
|
e=$(echo "$e" | xargs)
|
|
467
467
|
if [[ -z "$e" ]]; then agent_read_input "Endpoint URL (e.g. http://127.0.0.1:8000/v1)" e; fi
|
|
468
468
|
if [[ -z "$e" ]]; then return 0; fi
|
|
@@ -472,7 +472,7 @@ agent_repl_handle() {
|
|
|
472
472
|
;;
|
|
473
473
|
/temp*)
|
|
474
474
|
local t="${line#/temp }"
|
|
475
|
-
t
|
|
475
|
+
[[ "$t" == "$line" ]] && t=""
|
|
476
476
|
t=$(echo "$t" | xargs)
|
|
477
477
|
if [[ -z "$t" ]]; then agent_read_input "Temperature (0-2)" t; fi
|
|
478
478
|
if [[ -n "$t" ]]; then AGENT_TEMPERATURE="$t"; log_success "Temperature → ${D_CYAN}$AGENT_TEMPERATURE${D_NC}"; fi
|
|
@@ -480,7 +480,7 @@ agent_repl_handle() {
|
|
|
480
480
|
;;
|
|
481
481
|
/max*)
|
|
482
482
|
local mx="${line#/max }"
|
|
483
|
-
mx
|
|
483
|
+
[[ "$mx" == "$line" ]] && mx=""
|
|
484
484
|
mx=$(echo "$mx" | xargs)
|
|
485
485
|
if [[ -z "$mx" ]]; then agent_read_input "Max tokens" mx; fi
|
|
486
486
|
if [[ -n "$mx" ]]; then AGENT_MAX_TOKENS="$mx"; log_success "Max tokens → ${D_CYAN}$AGENT_MAX_TOKENS${D_NC}"; fi
|
|
@@ -488,9 +488,8 @@ agent_repl_handle() {
|
|
|
488
488
|
;;
|
|
489
489
|
/workspace*)
|
|
490
490
|
local ws="${line#/workspace }"
|
|
491
|
-
ws
|
|
491
|
+
[[ "$ws" == "$line" ]] && ws=""
|
|
492
492
|
ws=$(echo "$ws" | xargs)
|
|
493
|
-
if [[ -z "$ws" ]]; then agent_read_input "Workspace directory (absolute path)" ws; fi
|
|
494
493
|
if [[ -n "$ws" ]]; then
|
|
495
494
|
mkdir -p "$ws"
|
|
496
495
|
AGENT_WORKSPACE="$ws"
|
|
@@ -163,8 +163,9 @@ _brain_remove_related() {
|
|
|
163
163
|
head -n $((frontmatter_end - 1)) "$file" >"$tmp"
|
|
164
164
|
local escaped
|
|
165
165
|
escaped=$(_brain_slug_escape "$slug")
|
|
166
|
-
|
|
167
|
-
|
|
166
|
+
# Only touch the `related:` line, and only strip the slug as a discrete
|
|
167
|
+
# comma-separated token (never as a substring inside another slug).
|
|
168
|
+
sed -i "/^related:/ s/, ${escaped}//g; s/${escaped}, //g; s/\[${escaped}\]/[]/g; s/\[, /[/g; s/, \]/]/g" "$tmp"
|
|
168
169
|
tail -n +$((frontmatter_end)) "$file" >>"$tmp"
|
|
169
170
|
mv "$tmp" "$file"
|
|
170
171
|
}
|
|
@@ -443,7 +444,7 @@ brain_save() {
|
|
|
443
444
|
done
|
|
444
445
|
$already || related_slugs+=("$match_slug")
|
|
445
446
|
fi
|
|
446
|
-
done < <(_brain_rg -i "tags:.*$tag" || true)
|
|
447
|
+
done < <(_brain_rg -l -i "tags:.*$tag" || true)
|
|
447
448
|
done
|
|
448
449
|
IFS=$' \t\n'
|
|
449
450
|
|
|
@@ -1296,11 +1297,12 @@ brain_delete() {
|
|
|
1296
1297
|
fi
|
|
1297
1298
|
|
|
1298
1299
|
# Remove relations from related files
|
|
1299
|
-
local file_slug
|
|
1300
|
+
local file_slug escaped_slug
|
|
1300
1301
|
file_slug=$(basename "$file" .md)
|
|
1302
|
+
escaped_slug=$(_brain_slug_escape "$file_slug")
|
|
1301
1303
|
while IFS= read -r rfile; do
|
|
1302
1304
|
_brain_remove_related "$rfile" "$file_slug"
|
|
1303
|
-
done < <(_brain_rg "
|
|
1305
|
+
done < <(_brain_rg -l "related:.*${escaped_slug}" || true)
|
|
1304
1306
|
|
|
1305
1307
|
if [[ "$file" != "$BRAIN_DIR"/* ]]; then
|
|
1306
1308
|
log_error "Refusing to delete file outside brain directory"
|
|
@@ -3,13 +3,15 @@
|
|
|
3
3
|
import "@/utils/log"
|
|
4
4
|
import "@/utils/colors"
|
|
5
5
|
|
|
6
|
-
# ── Detect rc file
|
|
6
|
+
# ── Detect rc file based on the ACTIVE shell (not just presence) ──
|
|
7
7
|
_env_rc_file() {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
local shell_name
|
|
9
|
+
shell_name=$(basename "${SHELL:-${0:-bash}}" 2>/dev/null)
|
|
10
|
+
shell_name="${shell_name#-}" # strip leading '-' from login-shell names (e.g. -bash)
|
|
11
|
+
case "$shell_name" in
|
|
12
|
+
zsh) echo "$HOME/.zshrc" ;;
|
|
13
|
+
*) echo "$HOME/.bashrc" ;;
|
|
14
|
+
esac
|
|
13
15
|
}
|
|
14
16
|
|
|
15
17
|
# ── Validate variable name ─────────────────────────────────
|