karnel-termux 0.0.1

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 (258) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +454 -0
  3. package/install.sh +272 -0
  4. package/karnel/bin/karnel +77 -0
  5. package/karnel/cli/commands/brain.sh +1553 -0
  6. package/karnel/cli/commands/cleanup.sh +66 -0
  7. package/karnel/cli/commands/doctor.sh +1528 -0
  8. package/karnel/cli/commands/env.sh +233 -0
  9. package/karnel/cli/commands/help.sh +8 -0
  10. package/karnel/cli/commands/ia.sh +502 -0
  11. package/karnel/cli/commands/init.sh +1274 -0
  12. package/karnel/cli/commands/install.sh +718 -0
  13. package/karnel/cli/commands/list.sh +399 -0
  14. package/karnel/cli/commands/open.sh +106 -0
  15. package/karnel/cli/commands/pg.sh +719 -0
  16. package/karnel/cli/commands/reinstall.sh +663 -0
  17. package/karnel/cli/commands/show.sh +90 -0
  18. package/karnel/cli/commands/start.sh +54 -0
  19. package/karnel/cli/commands/status.sh +96 -0
  20. package/karnel/cli/commands/uninstall.sh +668 -0
  21. package/karnel/cli/commands/update.sh +723 -0
  22. package/karnel/cli/commands/upgrade.sh +40 -0
  23. package/karnel/cli/commands/version.sh +3 -0
  24. package/karnel/cli/commands/voice.sh +230 -0
  25. package/karnel/cli/karnel.sh +706 -0
  26. package/karnel/modules/ai.sh +135 -0
  27. package/karnel/modules/auto.sh +114 -0
  28. package/karnel/modules/db.sh +132 -0
  29. package/karnel/modules/deploy.sh +74 -0
  30. package/karnel/modules/dev.sh +148 -0
  31. package/karnel/modules/editor.sh +115 -0
  32. package/karnel/modules/lang.sh +124 -0
  33. package/karnel/modules/npm.sh +146 -0
  34. package/karnel/modules/shell.sh +338 -0
  35. package/karnel/modules/ui.sh +139 -0
  36. package/karnel/modules/voice.sh +118 -0
  37. package/karnel/tools/ai/all.sh +209 -0
  38. package/karnel/tools/ai/antigravity-cli/README.md +45 -0
  39. package/karnel/tools/ai/antigravity-cli/bin/agy +28 -0
  40. package/karnel/tools/ai/antigravity-cli/helper/agy_helper.c +39 -0
  41. package/karnel/tools/ai/antigravity-cli/install.sh +469 -0
  42. package/karnel/tools/ai/claude-code/README.md +45 -0
  43. package/karnel/tools/ai/claude-code/bin/claude +29 -0
  44. package/karnel/tools/ai/claude-code/helper/claude_helper.c +42 -0
  45. package/karnel/tools/ai/claude-code/install.sh +278 -0
  46. package/karnel/tools/ai/cline/install.sh +160 -0
  47. package/karnel/tools/ai/codegraph/README.md +43 -0
  48. package/karnel/tools/ai/codegraph/bin/codegraph +5 -0
  49. package/karnel/tools/ai/codegraph/install.sh +160 -0
  50. package/karnel/tools/ai/codex/README.md +44 -0
  51. package/karnel/tools/ai/codex/install.sh +104 -0
  52. package/karnel/tools/ai/command-code/README.md +62 -0
  53. package/karnel/tools/ai/command-code/install.sh +136 -0
  54. package/karnel/tools/ai/crush/README.md +17 -0
  55. package/karnel/tools/ai/crush/install.sh +89 -0
  56. package/karnel/tools/ai/ctx7/README.md +26 -0
  57. package/karnel/tools/ai/ctx7/install.sh +61 -0
  58. package/karnel/tools/ai/engram/README.md +44 -0
  59. package/karnel/tools/ai/engram/install.sh +127 -0
  60. package/karnel/tools/ai/freebuff/README.md +52 -0
  61. package/karnel/tools/ai/freebuff/bin/freebuff +28 -0
  62. package/karnel/tools/ai/freebuff/helper/freebuff_helper.c +47 -0
  63. package/karnel/tools/ai/freebuff/install.sh +303 -0
  64. package/karnel/tools/ai/gemini-cli/README.md +46 -0
  65. package/karnel/tools/ai/gemini-cli/install.sh +111 -0
  66. package/karnel/tools/ai/gentle-ai/README.md +42 -0
  67. package/karnel/tools/ai/gentle-ai/install.sh +253 -0
  68. package/karnel/tools/ai/gentle-ai/termux-patches.go +256 -0
  69. package/karnel/tools/ai/gga/README.md +49 -0
  70. package/karnel/tools/ai/gga/install.sh +134 -0
  71. package/karnel/tools/ai/hermes-agent/README.md +50 -0
  72. package/karnel/tools/ai/hermes-agent/install.sh +120 -0
  73. package/karnel/tools/ai/kilocode-cli/README.md +45 -0
  74. package/karnel/tools/ai/kilocode-cli/bin/kilocode +21 -0
  75. package/karnel/tools/ai/kilocode-cli/helper/kilocode_helper.c +47 -0
  76. package/karnel/tools/ai/kilocode-cli/install.sh +179 -0
  77. package/karnel/tools/ai/kimchi-code/README.md +53 -0
  78. package/karnel/tools/ai/kimchi-code/install.sh +221 -0
  79. package/karnel/tools/ai/kimi-code/README.md +45 -0
  80. package/karnel/tools/ai/kimi-code/install.sh +111 -0
  81. package/karnel/tools/ai/kiro/README.md +17 -0
  82. package/karnel/tools/ai/kiro/install.sh +134 -0
  83. package/karnel/tools/ai/mimocode/README.md +43 -0
  84. package/karnel/tools/ai/mimocode/bin/mimo +28 -0
  85. package/karnel/tools/ai/mimocode/helper/mimocode_helper.c +47 -0
  86. package/karnel/tools/ai/mimocode/install.sh +287 -0
  87. package/karnel/tools/ai/minimax-cli/README.md +45 -0
  88. package/karnel/tools/ai/minimax-cli/install.sh +111 -0
  89. package/karnel/tools/ai/mistral-vibe/README.md +46 -0
  90. package/karnel/tools/ai/mistral-vibe/install.sh +119 -0
  91. package/karnel/tools/ai/odysseus/README.md +35 -0
  92. package/karnel/tools/ai/odysseus/install.sh +198 -0
  93. package/karnel/tools/ai/ollama/README.md +44 -0
  94. package/karnel/tools/ai/ollama/install.sh +78 -0
  95. package/karnel/tools/ai/omni-route/README.md +111 -0
  96. package/karnel/tools/ai/omni-route/install.sh +165 -0
  97. package/karnel/tools/ai/openclaude/README.md +46 -0
  98. package/karnel/tools/ai/openclaude/install.sh +110 -0
  99. package/karnel/tools/ai/openclaw/README.md +47 -0
  100. package/karnel/tools/ai/openclaw/install.sh +112 -0
  101. package/karnel/tools/ai/opencode/README.md +51 -0
  102. package/karnel/tools/ai/opencode/bin/opencode +28 -0
  103. package/karnel/tools/ai/opencode/helper/opencode_helper.c +57 -0
  104. package/karnel/tools/ai/opencode/install.sh +290 -0
  105. package/karnel/tools/ai/openspec/README.md +34 -0
  106. package/karnel/tools/ai/openspec/install.sh +61 -0
  107. package/karnel/tools/ai/pi/README.md +46 -0
  108. package/karnel/tools/ai/pi/install.sh +104 -0
  109. package/karnel/tools/ai/qwen-code/README.md +45 -0
  110. package/karnel/tools/ai/qwen-code/install.sh +111 -0
  111. package/karnel/tools/auto/all.sh +57 -0
  112. package/karnel/tools/auto/n8n/README.md +47 -0
  113. package/karnel/tools/auto/n8n/install.sh +102 -0
  114. package/karnel/tools/db/all.sh +61 -0
  115. package/karnel/tools/db/mariadb/README.md +43 -0
  116. package/karnel/tools/db/mariadb/install.sh +65 -0
  117. package/karnel/tools/db/mongodb/README.md +42 -0
  118. package/karnel/tools/db/mongodb/install.sh +73 -0
  119. package/karnel/tools/db/postgresql/README.md +45 -0
  120. package/karnel/tools/db/postgresql/install.sh +65 -0
  121. package/karnel/tools/db/redis/README.md +46 -0
  122. package/karnel/tools/db/redis/install.sh +64 -0
  123. package/karnel/tools/db/sqlite/README.md +44 -0
  124. package/karnel/tools/db/sqlite/install.sh +65 -0
  125. package/karnel/tools/deploy/all.sh +43 -0
  126. package/karnel/tools/deploy/netlify/install.sh +41 -0
  127. package/karnel/tools/deploy/railway/install.sh +109 -0
  128. package/karnel/tools/deploy/vercel/install.sh +43 -0
  129. package/karnel/tools/dev/all.sh +77 -0
  130. package/karnel/tools/dev/bat/README.md +44 -0
  131. package/karnel/tools/dev/bat/install.sh +82 -0
  132. package/karnel/tools/dev/bc/README.md +44 -0
  133. package/karnel/tools/dev/bc/install.sh +82 -0
  134. package/karnel/tools/dev/cloudflared/README.md +43 -0
  135. package/karnel/tools/dev/cloudflared/install.sh +82 -0
  136. package/karnel/tools/dev/curl/README.md +43 -0
  137. package/karnel/tools/dev/curl/install.sh +82 -0
  138. package/karnel/tools/dev/fzf/README.md +44 -0
  139. package/karnel/tools/dev/fzf/install.sh +82 -0
  140. package/karnel/tools/dev/gh/README.md +43 -0
  141. package/karnel/tools/dev/gh/install.sh +82 -0
  142. package/karnel/tools/dev/html2text/README.md +44 -0
  143. package/karnel/tools/dev/html2text/install.sh +82 -0
  144. package/karnel/tools/dev/imagemagick/README.md +44 -0
  145. package/karnel/tools/dev/imagemagick/install.sh +82 -0
  146. package/karnel/tools/dev/jq/README.md +44 -0
  147. package/karnel/tools/dev/jq/install.sh +82 -0
  148. package/karnel/tools/dev/lsd/README.md +44 -0
  149. package/karnel/tools/dev/lsd/install.sh +82 -0
  150. package/karnel/tools/dev/make/README.md +44 -0
  151. package/karnel/tools/dev/make/install.sh +82 -0
  152. package/karnel/tools/dev/ncurses/README.md +42 -0
  153. package/karnel/tools/dev/ncurses/install.sh +82 -0
  154. package/karnel/tools/dev/openssh/README.md +43 -0
  155. package/karnel/tools/dev/openssh/install.sh +75 -0
  156. package/karnel/tools/dev/proot/README.md +43 -0
  157. package/karnel/tools/dev/proot/install.sh +82 -0
  158. package/karnel/tools/dev/shfmt/README.md +44 -0
  159. package/karnel/tools/dev/shfmt/install.sh +82 -0
  160. package/karnel/tools/dev/tmate/README.md +44 -0
  161. package/karnel/tools/dev/tmate/install.sh +82 -0
  162. package/karnel/tools/dev/tmux/README.md +43 -0
  163. package/karnel/tools/dev/tmux/install.sh +75 -0
  164. package/karnel/tools/dev/translate/README.md +44 -0
  165. package/karnel/tools/dev/translate/install.sh +82 -0
  166. package/karnel/tools/dev/tree/README.md +44 -0
  167. package/karnel/tools/dev/tree/install.sh +82 -0
  168. package/karnel/tools/dev/udocker/README.md +44 -0
  169. package/karnel/tools/dev/udocker/install.sh +82 -0
  170. package/karnel/tools/dev/wget/README.md +44 -0
  171. package/karnel/tools/dev/wget/install.sh +82 -0
  172. package/karnel/tools/editor/all.sh +59 -0
  173. package/karnel/tools/editor/code-server/README.md +42 -0
  174. package/karnel/tools/editor/code-server/install.sh +74 -0
  175. package/karnel/tools/editor/neovim/README.md +43 -0
  176. package/karnel/tools/editor/neovim/install.sh +64 -0
  177. package/karnel/tools/editor/nvchad/README.md +45 -0
  178. package/karnel/tools/editor/nvchad/install.sh +105 -0
  179. package/karnel/tools/lang/all.sh +63 -0
  180. package/karnel/tools/lang/clang/README.md +43 -0
  181. package/karnel/tools/lang/clang/install.sh +79 -0
  182. package/karnel/tools/lang/golang/README.md +43 -0
  183. package/karnel/tools/lang/golang/install.sh +79 -0
  184. package/karnel/tools/lang/nodejs/README.md +43 -0
  185. package/karnel/tools/lang/nodejs/install.sh +79 -0
  186. package/karnel/tools/lang/perl/README.md +43 -0
  187. package/karnel/tools/lang/perl/install.sh +79 -0
  188. package/karnel/tools/lang/php/README.md +43 -0
  189. package/karnel/tools/lang/php/install.sh +79 -0
  190. package/karnel/tools/lang/python/README.md +43 -0
  191. package/karnel/tools/lang/python/install.sh +79 -0
  192. package/karnel/tools/lang/rust/README.md +43 -0
  193. package/karnel/tools/lang/rust/install.sh +79 -0
  194. package/karnel/tools/npm/all.sh +90 -0
  195. package/karnel/tools/npm/live-server/README.md +43 -0
  196. package/karnel/tools/npm/live-server/install.sh +96 -0
  197. package/karnel/tools/npm/localtunnel/README.md +43 -0
  198. package/karnel/tools/npm/localtunnel/install.sh +112 -0
  199. package/karnel/tools/npm/markserv/README.md +43 -0
  200. package/karnel/tools/npm/markserv/install.sh +95 -0
  201. package/karnel/tools/npm/ncu/README.md +43 -0
  202. package/karnel/tools/npm/ncu/install.sh +95 -0
  203. package/karnel/tools/npm/nestjs/README.md +43 -0
  204. package/karnel/tools/npm/nestjs/install.sh +95 -0
  205. package/karnel/tools/npm/ngrok/README.md +44 -0
  206. package/karnel/tools/npm/ngrok/install.sh +95 -0
  207. package/karnel/tools/npm/prettier/README.md +43 -0
  208. package/karnel/tools/npm/prettier/install.sh +95 -0
  209. package/karnel/tools/npm/psqlformat/README.md +43 -0
  210. package/karnel/tools/npm/psqlformat/install.sh +95 -0
  211. package/karnel/tools/npm/turbopack/README.md +8 -0
  212. package/karnel/tools/npm/turbopack/install.sh +42 -0
  213. package/karnel/tools/npm/typescript/README.md +43 -0
  214. package/karnel/tools/npm/typescript/install.sh +95 -0
  215. package/karnel/tools/npm/vercel/README.md +43 -0
  216. package/karnel/tools/npm/vercel/install.sh +95 -0
  217. package/karnel/tools/shell/all.sh +67 -0
  218. package/karnel/tools/shell/better-npm/README.md +43 -0
  219. package/karnel/tools/shell/better-npm/install.sh +85 -0
  220. package/karnel/tools/shell/fzf-tab/README.md +44 -0
  221. package/karnel/tools/shell/fzf-tab/install.sh +85 -0
  222. package/karnel/tools/shell/history-substring/README.md +43 -0
  223. package/karnel/tools/shell/history-substring/install.sh +85 -0
  224. package/karnel/tools/shell/powerlevel10k/README.md +43 -0
  225. package/karnel/tools/shell/powerlevel10k/install.sh +85 -0
  226. package/karnel/tools/shell/you-should-use/README.md +43 -0
  227. package/karnel/tools/shell/you-should-use/install.sh +85 -0
  228. package/karnel/tools/shell/zsh-autopair/README.md +44 -0
  229. package/karnel/tools/shell/zsh-autopair/install.sh +85 -0
  230. package/karnel/tools/shell/zsh-autosuggestions/README.md +43 -0
  231. package/karnel/tools/shell/zsh-autosuggestions/install.sh +85 -0
  232. package/karnel/tools/shell/zsh-completions/README.md +43 -0
  233. package/karnel/tools/shell/zsh-completions/install.sh +85 -0
  234. package/karnel/tools/shell/zsh-defer/README.md +43 -0
  235. package/karnel/tools/shell/zsh-defer/install.sh +85 -0
  236. package/karnel/tools/shell/zsh-syntax-highlighting/README.md +43 -0
  237. package/karnel/tools/shell/zsh-syntax-highlighting/install.sh +72 -0
  238. package/karnel/tools/ui/all.sh +61 -0
  239. package/karnel/tools/ui/banner/README.md +42 -0
  240. package/karnel/tools/ui/banner/install.sh +160 -0
  241. package/karnel/tools/ui/cursor/README.md +42 -0
  242. package/karnel/tools/ui/cursor/install.sh +58 -0
  243. package/karnel/tools/ui/extra-keys/README.md +43 -0
  244. package/karnel/tools/ui/extra-keys/install.sh +62 -0
  245. package/karnel/tools/ui/font/README.md +43 -0
  246. package/karnel/tools/ui/font/install.sh +63 -0
  247. package/karnel/tools/voice/all.sh +27 -0
  248. package/karnel/tools/voice/install.sh +10 -0
  249. package/karnel/tools/voice/uninstall.sh +8 -0
  250. package/karnel/utils/banner.sh +492 -0
  251. package/karnel/utils/bootstrap.sh +25 -0
  252. package/karnel/utils/colors.sh +33 -0
  253. package/karnel/utils/dialogrc +30 -0
  254. package/karnel/utils/env.sh +53 -0
  255. package/karnel/utils/log.sh +567 -0
  256. package/karnel/utils/version.sh +205 -0
  257. package/package.json +42 -0
  258. package/scripts/npm-install.js +60 -0
@@ -0,0 +1,104 @@
1
+ #!/usr/bin/env bash
2
+
3
+ import "@/utils/log"
4
+
5
+ LOG_FILE="$KARNEL_CACHE/install_ai.log"
6
+
7
+ _codex_dependencies() {
8
+ loading "Installing dependencies" _codex_dependencies_impl
9
+ }
10
+
11
+ _codex_dependencies_impl() {
12
+ declare -A DEPS=(
13
+ ["nodejs-lts"]="node"
14
+ ["git"]="git"
15
+ ["ripgrep"]="rg"
16
+ )
17
+
18
+ local pkg_name bin_name
19
+ for pkg_name in "${!DEPS[@]}"; do
20
+ bin_name="${DEPS[$pkg_name]}"
21
+ if ! command -v "$bin_name" &>/dev/null; then
22
+ if ! pkg install "$pkg_name" -y &>>"$LOG_FILE"; then
23
+ log_error "Failed to install $pkg_name"
24
+ return 1
25
+ fi
26
+ fi
27
+ done
28
+
29
+ return 0
30
+ }
31
+
32
+ _install_codex_npm() {
33
+ loading "Installing Codex CLI" _install_codex_npm_impl
34
+ }
35
+
36
+ _install_codex_npm_impl() {
37
+ if ! npm i -g @mmmbuto/codex-cli-termux@latest &>>"$LOG_FILE"; then
38
+ log_error "Failed to install Codex CLI"
39
+ return 1
40
+ fi
41
+
42
+ return 0
43
+ }
44
+
45
+ install_codex() {
46
+ if command -v codex &>/dev/null; then
47
+ log_info "Codex CLI is already installed"
48
+ return 2
49
+ fi
50
+ log_info "Installing Codex CLI..."
51
+
52
+ mkdir -p "$(dirname "$LOG_FILE")"
53
+
54
+ _codex_dependencies || return 1
55
+ _install_codex_npm || return 1
56
+
57
+ log_success "Codex CLI installed"
58
+ return 0
59
+ }
60
+
61
+ uninstall_codex() {
62
+ if ! command -v codex &>/dev/null; then
63
+ log_info "Codex CLI is not installed"
64
+ return 2
65
+ fi
66
+ log_info "Uninstalling Codex CLI..."
67
+ mkdir -p "$(dirname "$LOG_FILE")"
68
+
69
+ loading "Removing Codex CLI" _uninstall_codex_impl
70
+
71
+ log_success "Codex CLI uninstalled"
72
+ return 0
73
+ }
74
+
75
+ _uninstall_codex_impl() {
76
+ if ! npm uninstall -g @mmmbuto/codex-cli-termux &>>"$LOG_FILE"; then
77
+ log_error "Failed to uninstall Codex CLI"
78
+ return 1
79
+ fi
80
+ return 0
81
+ }
82
+
83
+ update_codex() {
84
+ log_info "Updating Codex CLI..."
85
+ mkdir -p "$(dirname "$LOG_FILE")"
86
+
87
+ loading "Updating Codex CLI" _update_codex_impl
88
+
89
+ log_success "Codex CLI updated"
90
+ return 0
91
+ }
92
+
93
+ _update_codex_impl() {
94
+ if ! npm update -g @mmmbuto/codex-cli-termux &>>"$LOG_FILE"; then
95
+ log_error "Failed to update Codex CLI"
96
+ return 1
97
+ fi
98
+ return 0
99
+ }
100
+
101
+ reinstall_codex() {
102
+ uninstall_codex
103
+ install_codex
104
+ }
@@ -0,0 +1,62 @@
1
+ # Command Code
2
+
3
+ The coding agent that learns your coding taste.
4
+
5
+ **Package:** command-code
6
+ **Author:** israel marques
7
+ **Repository:** https://github.com/israelmarques1024-dotcom/karnel-termux
8
+ **Official:** https://github.com/CommandCodeAI/command-code
9
+ **Type:** AI coding assistant (npm local package with wrapper)
10
+ **License:** MIT
11
+
12
+ ## Description
13
+
14
+ The first frontier coding agent that both builds software and continuously learns your coding taste. Ships full-stack projects, features, fixes bugs, writes tests, and refactors, all while learning how you write code.
15
+
16
+ ## Why Local Install?
17
+
18
+ On Termux, the global `npm install -g command-code` creates a binary named `cmd` which conflicts with the existing Termux `cmd` binary. Karnel Termux solves this by:
19
+
20
+ 1. Installing `command-code` locally in `~/.local/share/karnel-data/command-code/`
21
+ 2. Creating a wrapper script at `$PREFIX/bin/command-code`
22
+ 3. Adding an alias `cmdc` via symlink
23
+
24
+ ## Dependencies
25
+
26
+ - Node.js LTS (nodejs-lts)
27
+ - npm
28
+ - git
29
+ - ripgrep
30
+
31
+ ## Install
32
+
33
+ ```bash
34
+ karnel install ai --command-code
35
+ ```
36
+
37
+ ## Uninstall
38
+
39
+ ```bash
40
+ karnel uninstall ai --command-code
41
+ ```
42
+
43
+ ## Update
44
+
45
+ ```bash
46
+ karnel update ai --command-code
47
+ ```
48
+
49
+ ## Commands
50
+
51
+ | Command | Description |
52
+ |---------|-------------|
53
+ | `command-code` | Run Command Code |
54
+ | `cmdc` | Alias for command-code |
55
+
56
+ ## Notes
57
+
58
+ - Installed as a local npm package (avoids `cmd` binary conflict)
59
+ - Wrapper script created at `$PREFIX/bin/command-code`
60
+ - Alias `cmdc` created via symlink
61
+ - Data directory: `~/.local/share/karnel-data/command-code/`
62
+ - Requires Node.js LTS (installed automatically if missing)
@@ -0,0 +1,136 @@
1
+ #!/usr/bin/env bash
2
+
3
+ import "@/utils/log"
4
+
5
+ LOG_FILE="$KARNEL_CACHE/install_ai.log"
6
+ COMMAND_CODE_DATA_DIR="$HOME/.local/share/karnel-data/command-code"
7
+
8
+ _command_code_dependencies() {
9
+ loading "Installing dependencies" _command_code_dependencies_impl
10
+ }
11
+
12
+ _command_code_dependencies_impl() {
13
+ declare -A DEPS=(
14
+ ["nodejs-lts"]="node"
15
+ ["git"]="git"
16
+ ["ripgrep"]="rg"
17
+ )
18
+
19
+ local pkg_name bin_name
20
+ for pkg_name in "${!DEPS[@]}"; do
21
+ bin_name="${DEPS[$pkg_name]}"
22
+ if ! command -v "$bin_name" &>/dev/null; then
23
+ if ! pkg install "$pkg_name" -y &>>"$LOG_FILE"; then
24
+ log_error "Failed to install $pkg_name"
25
+ return 1
26
+ fi
27
+ fi
28
+ done
29
+
30
+ return 0
31
+ }
32
+
33
+ _install_command_code_npm() {
34
+ loading "Installing command-code via npm" _install_command_code_npm_impl
35
+ }
36
+
37
+ _install_command_code_npm_impl() {
38
+ mkdir -p "$COMMAND_CODE_DATA_DIR"
39
+
40
+ if ! (cd "$COMMAND_CODE_DATA_DIR" && npm init -y &>>"$LOG_FILE"); then
41
+ log_error "Failed to initialize npm project"
42
+ return 1
43
+ fi
44
+
45
+ if ! (cd "$COMMAND_CODE_DATA_DIR" && npm install command-code@latest &>>"$LOG_FILE"); then
46
+ log_error "Failed to install command-code package"
47
+ return 1
48
+ fi
49
+
50
+ return 0
51
+ }
52
+
53
+ _install_command_code_wrappers() {
54
+ loading "Creating command-code and cmdc wrappers" _install_command_code_wrappers_impl
55
+ }
56
+
57
+ _install_command_code_wrappers_impl() {
58
+ local wrapper_content='#!'"$PREFIX"'/bin/bash
59
+
60
+ exec node '"$COMMAND_CODE_DATA_DIR"'/node_modules/command-code/dist/index.mjs "$@"'
61
+
62
+ echo "$wrapper_content" >"$PREFIX/bin/command-code"
63
+ chmod +x "$PREFIX/bin/command-code"
64
+
65
+ ln -sf "$PREFIX/bin/command-code" "$PREFIX/bin/cmdc"
66
+
67
+ return 0
68
+ }
69
+
70
+ install_command_code() {
71
+ if command -v command-code &>/dev/null; then
72
+ log_info "Command Code is already installed"
73
+ return 2
74
+ fi
75
+
76
+ log_info "Installing Command Code..."
77
+
78
+ mkdir -p "$(dirname "$LOG_FILE")"
79
+
80
+ _command_code_dependencies || return 1
81
+ _install_command_code_npm || return 1
82
+ _install_command_code_wrappers || return 1
83
+
84
+ log_success "Command Code installed successfully"
85
+ return 0
86
+ }
87
+
88
+ uninstall_command_code() {
89
+ if ! command -v command-code &>/dev/null; then
90
+ log_info "Command Code is not installed"
91
+ return 2
92
+ fi
93
+ log_info "Uninstalling Command Code..."
94
+ mkdir -p "$(dirname "$LOG_FILE")"
95
+
96
+ loading "Removing Command Code files" _uninstall_command_code_impl
97
+
98
+ log_success "Command Code uninstalled"
99
+ return 0
100
+ }
101
+
102
+ _uninstall_command_code_impl() {
103
+ rm -f "$PREFIX/bin/command-code"
104
+ rm -f "$PREFIX/bin/cmdc"
105
+ rm -rf "$COMMAND_CODE_DATA_DIR"
106
+ return 0
107
+ }
108
+
109
+ update_command_code() {
110
+ log_info "Updating Command Code..."
111
+ mkdir -p "$(dirname "$LOG_FILE")"
112
+
113
+ if [ ! -d "$COMMAND_CODE_DATA_DIR" ]; then
114
+ log_warn "Command Code is not installed"
115
+ return 1
116
+ fi
117
+
118
+ loading "Updating command-code package" _update_command_code_impl
119
+
120
+ log_success "Command Code updated"
121
+ return 0
122
+ }
123
+
124
+ _update_command_code_impl() {
125
+ if (cd "$COMMAND_CODE_DATA_DIR" && npm update command-code &>>"$LOG_FILE"); then
126
+ return 0
127
+ else
128
+ log_error "Failed to update Command Code"
129
+ return 1
130
+ fi
131
+ }
132
+
133
+ reinstall_command_code() {
134
+ uninstall_command_code
135
+ install_command_code
136
+ }
@@ -0,0 +1,17 @@
1
+ # Crush
2
+
3
+ > Your new coding bestie, now available in your favourite terminal.
4
+
5
+ Crush is a terminal-based AI coding assistant from Charm. It supports multiple LLMs, session-based context, LSP integration, and MCPs.
6
+
7
+ **Install:** `karnel install ai --crush`
8
+ **Command:** `crush`
9
+ **Docs:** https://github.com/charmbracelet/crush
10
+
11
+ ## Features
12
+
13
+ - Multi-Model support (OpenAI, Anthropic, custom APIs)
14
+ - Session-based workflow with context preservation
15
+ - LSP-enhanced code understanding
16
+ - Extensible via MCPs (http, stdio, sse)
17
+ - Works on macOS, Linux, Windows, Android, FreeBSD
@@ -0,0 +1,89 @@
1
+ #!/usr/bin/env bash
2
+
3
+ import "@/utils/log"
4
+ import "@/utils/colors"
5
+
6
+ LOG_FILE="$KARNEL_CACHE/install_ai.log"
7
+ CRUSH_VERSION="0.82.0"
8
+
9
+ install_crush() {
10
+ if command -v crush &>/dev/null; then
11
+ log_info "Crush is already installed"
12
+ return 2
13
+ fi
14
+
15
+ log_info "Installing Crush..."
16
+
17
+ # Try npm first
18
+ if command -v npm &>/dev/null; then
19
+ log_info "Attempting npm install..."
20
+ if npm install -g @charmland/crush &>>"$LOG_FILE"; then
21
+ if command -v crush &>/dev/null; then
22
+ log_success "Crush installed via npm"
23
+ return 0
24
+ fi
25
+ fi
26
+ log_warn "npm install failed, trying GitHub release..."
27
+ fi
28
+
29
+ # Fallback: download from GitHub releases
30
+ local arch
31
+ arch=$(uname -m)
32
+ local tarball="crush_${CRUSH_VERSION}_Android_arm64.tar.gz"
33
+ local url="https://github.com/charmbracelet/crush/releases/download/v${CRUSH_VERSION}/${tarball}"
34
+
35
+ log_info "Downloading Crush v${CRUSH_VERSION} for Android arm64..."
36
+
37
+ local tmpdir
38
+ tmpdir=$(mktemp -d)
39
+ if curl -fsSL --connect-timeout 15 --max-time 120 "$url" -o "$tmpdir/$tarball" 2>>"$LOG_FILE"; then
40
+ if tar xzf "$tmpdir/$tarball" -C "$tmpdir" 2>>"$LOG_FILE"; then
41
+ local bin_path
42
+ bin_path=$(find "$tmpdir" -name "crush" -type f -executable 2>/dev/null | head -1)
43
+ if [[ -n "$bin_path" ]]; then
44
+ rm -f "$PREFIX/bin/crush"
45
+ cp "$bin_path" "$PREFIX/bin/crush"
46
+ chmod +x "$PREFIX/bin/crush"
47
+ rm -rf "$tmpdir"
48
+ if command -v crush &>/dev/null; then
49
+ log_success "Crush installed from GitHub release"
50
+ return 0
51
+ fi
52
+ fi
53
+ fi
54
+ fi
55
+
56
+ rm -rf "$tmpdir"
57
+ log_error "Failed to install Crush"
58
+ log_info "Check log: $LOG_FILE"
59
+ return 1
60
+ }
61
+
62
+ uninstall_crush() {
63
+ if ! command -v crush &>/dev/null; then
64
+ log_info "Crush is not installed"
65
+ return 0
66
+ fi
67
+
68
+ log_info "Uninstalling Crush..."
69
+ rm -f "$PREFIX/bin/crush"
70
+ npm uninstall -g @charmland/crush &>>"$LOG_FILE" 2>/dev/null
71
+ log_success "Crush uninstalled"
72
+ return 0
73
+ }
74
+
75
+ update_crush() {
76
+ if ! command -v crush &>/dev/null; then
77
+ log_info "Crush is not installed"
78
+ return 0
79
+ fi
80
+
81
+ log_info "Updating Crush..."
82
+ uninstall_crush
83
+ install_crush
84
+ }
85
+
86
+ reinstall_crush() {
87
+ uninstall_crush
88
+ install_crush
89
+ }
@@ -0,0 +1,26 @@
1
+ # ctx7 (Context7)
2
+
3
+ Real-time documentation provider for AI coding assistants.
4
+
5
+ ## What is it?
6
+
7
+ [Context7](https://github.com/context7) solves stale knowledge issues by providing AI tools with real-time, version-specific documentation and code examples on-demand.
8
+
9
+ ## Install
10
+
11
+ ```bash
12
+ karnel install ai --ctx7
13
+ ```
14
+
15
+ ## Usage
16
+
17
+ - As an MCP server for Claude Code, Cursor, etc.
18
+ - CLI: `ctx7` to fetch library documentation
19
+
20
+ ## Requirements
21
+
22
+ - Node.js (install with `karnel install lang --nodejs`)
23
+
24
+ ---
25
+
26
+ *Adapted for Karnel-Termux by israel marques*
@@ -0,0 +1,61 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # ctx7 (Context7) - Real-time documentation provider for AI coding assistants
4
+ # Provides version-specific library docs and code examples on-demand
5
+ # Solves stale knowledge issues in AI tools like Claude Code, Cursor
6
+ # Official: npm install -g ctx7
7
+
8
+ install_ctx7() {
9
+ if command -v ctx7 &>/dev/null; then
10
+ log_info "ctx7 is already installed"
11
+ return 2
12
+ fi
13
+
14
+ log_info "Installing ctx7 (Context7 documentation provider)..."
15
+ npm install -g ctx7 2>/dev/null
16
+ local rc=$?
17
+
18
+ local _t
19
+ _t=$(readlink -f "$PREFIX/bin/ctx7" 2>/dev/null)
20
+ [ -f "$_t" ] && sed -i '1s|^#!/usr/bin/env node|#!/data/data/com.termux/files/usr/bin/env node|' "$_t"
21
+
22
+ if [[ $rc -eq 0 ]] && command -v ctx7 &>/dev/null; then
23
+ log_success "ctx7 installed successfully"
24
+ log_info "Use as MCP server: ctx7 --help"
25
+ return 0
26
+ else
27
+ log_error "ctx7 installation failed"
28
+ return 1
29
+ fi
30
+ }
31
+
32
+ uninstall_ctx7() {
33
+ if ! command -v ctx7 &>/dev/null; then
34
+ log_info "ctx7 is not installed"
35
+ return 0
36
+ fi
37
+
38
+ log_info "Uninstalling ctx7..."
39
+ npm uninstall -g ctx7 2>/dev/null
40
+ return $?
41
+ }
42
+
43
+ update_ctx7() {
44
+ if ! command -v ctx7 &>/dev/null; then
45
+ log_warn "ctx7 is not installed"
46
+ return 1
47
+ fi
48
+
49
+ log_info "Updating ctx7..."
50
+ npm update -g ctx7 2>/dev/null
51
+ local _t
52
+ _t=$(readlink -f "$PREFIX/bin/ctx7" 2>/dev/null)
53
+ [ -f "$_t" ] && sed -i '1s|^#!/usr/bin/env node|#!/data/data/com.termux/files/usr/bin/env node|' "$_t"
54
+ return $?
55
+ }
56
+
57
+ reinstall_ctx7() {
58
+ uninstall_ctx7 2>/dev/null
59
+ install_ctx7
60
+ return $?
61
+ }
@@ -0,0 +1,44 @@
1
+ # Engram
2
+
3
+ Persistent memory system for AI coding agents
4
+
5
+ **Package:** engram
6
+ **Author:** israel marques
7
+ **Repository:** https://github.com/israelmarques1024-dotcom/karnel-termux
8
+ **Official:** https://github.com/Gentleman-Programming/engram
9
+ **Type:** AI memory system (Go binary)
10
+ **License:** MIT
11
+
12
+ ## Description
13
+
14
+ Engram is a persistent memory system designed for AI coding agents. It provides long-term memory storage and retrieval, allowing AI assistants to maintain context across sessions. Built with Go for performance and reliability.
15
+
16
+ ## Dependencies
17
+
18
+ - golang, git, sqlite
19
+
20
+ ## Install
21
+
22
+ ```bash
23
+ karnel install ai --engram
24
+ ```
25
+
26
+ ## Uninstall
27
+
28
+ ```bash
29
+ karnel uninstall ai --engram
30
+ ```
31
+
32
+ ## Update
33
+
34
+ ```bash
35
+ karnel update ai --engram
36
+ ```
37
+
38
+ ## Notes
39
+
40
+ - Built from source using Go
41
+ - Source cloned to `$KARNEL_DATA/engram/`
42
+ - Binary installed to `$PREFIX/bin/engram`
43
+ - Requires Go toolchain (installed automatically)
44
+
@@ -0,0 +1,127 @@
1
+ #!/usr/bin/env bash
2
+
3
+ import "@/utils/log"
4
+
5
+ LOG_FILE="$KARNEL_CACHE/install_ai.log"
6
+
7
+ _engram_dependencies() {
8
+ loading "Installing dependencies" _engram_dependencies_impl
9
+ }
10
+
11
+ _engram_dependencies_impl() {
12
+ declare -A DEPS=(
13
+ ["golang"]="go"
14
+ ["git"]="git"
15
+ ["sqlite"]="sqlite"
16
+ )
17
+
18
+ local pkg_name bin_name
19
+ for pkg_name in "${!DEPS[@]}"; do
20
+ bin_name="${DEPS[$pkg_name]}"
21
+ if ! command -v "$bin_name" &>/dev/null; then
22
+ if ! pkg install "$pkg_name" -y &>>"$LOG_FILE"; then
23
+ log_error "Failed to install $pkg_name"
24
+ return 1
25
+ fi
26
+ fi
27
+ done
28
+
29
+ return 0
30
+ }
31
+
32
+ _clone_engram_repo() {
33
+ loading "Cloning engram repository" _clone_engram_repo_impl
34
+ }
35
+
36
+ _clone_engram_repo_impl() {
37
+ if ! git clone --quiet https://github.com/Gentleman-Programming/engram "$KARNEL_DATA/engram" &>>"$LOG_FILE"; then
38
+ log_error "Failed to clone engram repository"
39
+ return 1
40
+ fi
41
+
42
+ return 0
43
+ }
44
+
45
+ _build_engram() {
46
+ loading "Building engram binary" _build_engram_impl
47
+ }
48
+
49
+ _build_engram_impl() {
50
+ if ! go build -C "$KARNEL_DATA/engram/cmd/engram" -o $PREFIX/bin/engram &>>"$LOG_FILE"; then
51
+ log_error "Failed to build engram"
52
+ return 1
53
+ fi
54
+
55
+ return 0
56
+ }
57
+
58
+ install_engram() {
59
+ if command -v engram &>/dev/null; then
60
+ log_info "Engram is already installed"
61
+ return 2
62
+ fi
63
+ log_info "Installing Engram..."
64
+
65
+ export GOPATH="$HOME/.local/go"
66
+ export GOCACHE="$HOME/.cache/go"
67
+ export GOMODCACHE="$GOPATH/pkg/mod"
68
+
69
+ mkdir -p "$(dirname "$LOG_FILE")"
70
+
71
+ _engram_dependencies || return 1
72
+ _clone_engram_repo || return 1
73
+ _build_engram || return 1
74
+
75
+ log_success "Engram installed"
76
+ return 0
77
+ }
78
+
79
+ uninstall_engram() {
80
+ if ! command -v engram &>/dev/null; then
81
+ log_info "Engram is not installed"
82
+ return 2
83
+ fi
84
+ log_info "Uninstalling Engram..."
85
+ mkdir -p "$(dirname "$LOG_FILE")"
86
+
87
+ loading "Removing Engram" _uninstall_engram_impl
88
+
89
+ log_success "Engram uninstalled"
90
+ return 0
91
+ }
92
+
93
+ _uninstall_engram_impl() {
94
+ if rm -rf "$KARNEL_DATA/engram" && rm "$PREFIX/bin/engram" &>>"$LOG_FILE"; then
95
+ return 0
96
+ else
97
+ log_error "Failed to uninstall Engram"
98
+ return 1
99
+ fi
100
+ }
101
+
102
+ update_engram() {
103
+ log_info "Updating Engram..."
104
+ mkdir -p "$(dirname "$LOG_FILE")"
105
+
106
+ loading "Updating Engram" _update_engram_impl
107
+
108
+ log_success "Engram updated"
109
+ return 0
110
+ }
111
+
112
+ _update_engram_impl() {
113
+ export GOPATH="$HOME/.local/go"
114
+ export GOCACHE="$HOME/.cache/go"
115
+ export GOMODCACHE="$GOPATH/pkg/mod"
116
+
117
+ if ! git -C "$KARNEL_DATA/engram" pull &>>"$LOG_FILE" && go build -C "$KARNEL_DATA/engram/cmd/engram" -o $PREFIX/bin/engram &>>"$LOG_FILE"; then
118
+ log_error "Failed to update Engram"
119
+ return 1
120
+ fi
121
+ return 0
122
+ }
123
+
124
+ reinstall_engram() {
125
+ uninstall_engram
126
+ install_engram
127
+ }