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,52 @@
1
+ # Freebuff
2
+
3
+ A 100% free coding agent, right from your terminal
4
+
5
+ **Package:** freebuff
6
+ **Author:** israel marques
7
+ **Repository:** https://github.com/israelmarques1024-dotcom/karnel-termux
8
+ **Official:** https://freebuff.com
9
+ **Releases:** https://github.com/CodebuffAI/codebuff
10
+ **Type:** AI coding agent (Binary + glibc bootstrapper)
11
+ **License:** MIT
12
+
13
+ ## Description
14
+
15
+ Freebuff is the free coding agent: a free CLI coding agent and Freebuff Web, the free way to build full-stack apps. No subscription, no setup, no lock-in. Karnel Termux offers two installation methods: native with glibc support for best performance, or via proot-distro Ubuntu container for maximum compatibility.
16
+
17
+ ## Dependencies
18
+
19
+ - **Native mode:** glibc-repo, glibc, clang, git, curl, tar
20
+ - **Proot mode:** proot-distro, curl, ca-certificates, tar
21
+
22
+ ## Install
23
+
24
+ ```bash
25
+ karnel install ai --freebuff
26
+ ```
27
+
28
+ You will be prompted to choose:
29
+
30
+ 1. **Native (recommended)** — Compiles a glibc bootstrapper and downloads the latest Freebuff binary from GitHub releases
31
+ 2. **Proot-distro (alternative)** — Runs Freebuff inside an Ubuntu proot-distro container
32
+
33
+ ## Uninstall
34
+
35
+ ```bash
36
+ karnel uninstall ai --freebuff
37
+ ```
38
+
39
+ ## Update
40
+
41
+ ```bash
42
+ karnel update ai --freebuff
43
+ ```
44
+
45
+ ## Notes
46
+
47
+ - **Native mode** requires `glibc-repo`, `glibc`, `clang`, and other dependencies (installed automatically)
48
+ - The native binary is stored in `~/.local/share/karnel-data/freebuff/`
49
+ - A small C bootstrapper (`freebuff_helper.c`) handles ELF loading via the glibc dynamic linker
50
+ - **Proot mode** uses `proot-distro ubuntu` and downloads the binary directly inside the container
51
+ - Version is fetched automatically from GitHub releases (`CodebuffAI/codebuff-community`)
52
+ - Data directory: `~/.local/share/karnel-data/freebuff/`
@@ -0,0 +1,28 @@
1
+ #!/data/data/com.termux/files/usr/bin/bash
2
+
3
+ UBUNTU_ROOTFS="__UBUNTU_ROOTFS__"
4
+
5
+ EXCLUDE_REGEX="^(PATH|LD_PRELOAD|LD_LIBRARY_PATH|PREFIX|HOME|PWD|OLDPWD|SHELL|IFS|_|SHLVL|PROMPT_COMMAND|TERMCAP|LS_COLORS|TERM)="
6
+
7
+ ENV_ARGS=()
8
+ while IFS= read -r line; do
9
+ if [[ -n "$line" && ! "$line" =~ $EXCLUDE_REGEX ]]; then
10
+ ENV_ARGS+=("--env" "$line")
11
+ fi
12
+ done < <(env)
13
+
14
+ ENV_ARGS+=(
15
+ "--env" "SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt"
16
+ "--env" "TERM=$TERM"
17
+ "--env" "HOME=/root"
18
+ )
19
+
20
+ unset LD_PRELOAD
21
+ proot-distro login \
22
+ "${ENV_ARGS[@]}" \
23
+ --termux-home \
24
+ --shared-tmp \
25
+ --bind "$UBUNTU_ROOTFS/root/.freebuff:/root/.freebuff" \
26
+ --work-dir $PWD \
27
+ ubuntu \
28
+ -- /root/.freebuff/freebuff "$@"
@@ -0,0 +1,47 @@
1
+ #include <stdlib.h>
2
+ #include <unistd.h>
3
+ #include <string.h>
4
+ #include <libgen.h>
5
+ #include <limits.h>
6
+ #include <stdio.h>
7
+
8
+ int main(int argc, char** argv) {
9
+ unsetenv("LD_PRELOAD");
10
+ unsetenv("LD_LIBRARY_PATH");
11
+
12
+ setenv("GODEBUG", "netdns=cgo", 1);
13
+ setenv("SSL_CERT_FILE", "/data/data/com.termux/files/usr/etc/tls/cert.pem", 1);
14
+
15
+ char exec_path[PATH_MAX];
16
+ ssize_t len = readlink("/proc/self/exe", exec_path, sizeof(exec_path) - 1);
17
+ if (len == -1) {
18
+ return 1;
19
+ }
20
+ exec_path[len] = '\0';
21
+ char* dir = dirname(exec_path);
22
+
23
+ char* loader = "/data/data/com.termux/files/usr/glibc/lib/ld-linux-aarch64.so.1";
24
+ char real_bin[] = "/data/data/com.termux/files/home/.local/share/karnel-data/freebuff/freebuff";
25
+ char lib_path[] = "/data/data/com.termux/files/usr/glibc/lib";
26
+
27
+ char** new_argv = malloc((argc + 4) * sizeof(char*));
28
+ if (!new_argv) {
29
+ return 1;
30
+ }
31
+
32
+ new_argv[0] = loader;
33
+ new_argv[1] = "--library-path";
34
+ new_argv[2] = lib_path;
35
+ new_argv[3] = real_bin;
36
+
37
+ for (int i = 1; i < argc; i++) {
38
+ new_argv[i + 3] = argv[i];
39
+ }
40
+ new_argv[argc + 3] = NULL;
41
+
42
+ execv(loader, new_argv);
43
+
44
+ perror("execv");
45
+ free(new_argv);
46
+ return 1;
47
+ }
@@ -0,0 +1,303 @@
1
+ #!/usr/bin/env bash
2
+
3
+ import "@/utils/log"
4
+ import "@/utils/colors"
5
+
6
+ LOG_FILE="$KARNEL_CACHE/install_ai.log"
7
+ FREEBUFF_DATA_DIR="$HOME/.local/share/karnel-data/freebuff"
8
+
9
+ _freebuff_detect_ubuntu_root() {
10
+ local root
11
+ root="$(find /data/data/com.termux -maxdepth 10 -type d \
12
+ -name "rootfs" -path "*/containers/ubuntu/*" 2>/dev/null | head -1)"
13
+
14
+ if [ -z "$root" ]; then
15
+ root="$(find /data/data/com.termux -maxdepth 10 -type d \
16
+ -name "ubuntu" -path "*/installed-rootfs/*" 2>/dev/null | head -1)"
17
+ fi
18
+
19
+ echo "$root"
20
+ }
21
+
22
+ _freebuff_proot_ubuntu() {
23
+ proot-distro login \
24
+ --shared-tmp \
25
+ ubuntu \
26
+ -- "$@"
27
+ }
28
+
29
+ _get_latest_freebuff_version() {
30
+ curl -fsSL https://api.github.com/repos/CodebuffAI/codebuff-community/releases/latest |
31
+ grep '"tag_name":' | sed -E 's/.*"freebuff-v([^"]+)".*/\1/'
32
+ }
33
+
34
+ _freebuff_install_deps_native() {
35
+ loading "Installing glibc and dependencies" _freebuff_install_deps_native_impl
36
+ }
37
+
38
+ _freebuff_install_deps_native_impl() {
39
+ if [[ ! -f $PREFIX/etc/apt/sources.list.d/glibc.list ]]; then
40
+ if ! pkg install glibc-repo -y &>>"$LOG_FILE"; then
41
+ log_error "Failed to install glibc-repo"
42
+ return 1
43
+ fi
44
+ fi
45
+
46
+ if [[ ! -f $PREFIX/glibc/lib/libc.so.6 ]]; then
47
+ if ! pkg install glibc -y &>>"$LOG_FILE"; then
48
+ log_error "Failed to install glibc"
49
+ return 1
50
+ fi
51
+ fi
52
+
53
+ declare -A DEPS=(
54
+ ["git"]="git"
55
+ ["curl"]="curl"
56
+ ["tar"]="tar"
57
+ ["clang"]="clang"
58
+ )
59
+
60
+ local pkg_name bin_name
61
+ for pkg_name in "${!DEPS[@]}"; do
62
+ bin_name="${DEPS[$pkg_name]}"
63
+ if ! command -v "$bin_name" &>/dev/null; then
64
+ if ! pkg install "$pkg_name" -y &>>"$LOG_FILE"; then
65
+ log_error "Failed to install $pkg_name"
66
+ return 1
67
+ fi
68
+ fi
69
+ done
70
+
71
+ return 0
72
+ }
73
+
74
+ _download_freebuff_binary() {
75
+ loading "Downloading Freebuff" _download_freebuff_binary_impl
76
+ }
77
+
78
+ _download_freebuff_binary_impl() {
79
+ local latest_version
80
+ latest_version=$(_get_latest_freebuff_version)
81
+ if [ -z "$latest_version" ]; then
82
+ log_error "Failed to fetch latest Freebuff version"
83
+ return 1
84
+ fi
85
+
86
+ mkdir -p "$FREEBUFF_DATA_DIR"
87
+
88
+ local tarball="freebuff-linux-arm64.tar.gz"
89
+ local download_url="https://codebuff.com/api/releases/download/$latest_version/$tarball"
90
+
91
+ if ! curl -fsSL "$download_url" -o "$FREEBUFF_DATA_DIR/$tarball" &>>"$LOG_FILE"; then
92
+ log_error "Failed to download Freebuff binary"
93
+ return 1
94
+ fi
95
+
96
+ if ! tar -zxf "$FREEBUFF_DATA_DIR/$tarball" -C "$FREEBUFF_DATA_DIR" &>>"$LOG_FILE"; then
97
+ log_error "Failed to extract Freebuff binary"
98
+ return 1
99
+ fi
100
+
101
+ rm -f "$FREEBUFF_DATA_DIR/$tarball"
102
+
103
+ if [ ! -f "$FREEBUFF_DATA_DIR/freebuff" ]; then
104
+ log_error "Freebuff binary not found after extraction"
105
+ return 1
106
+ fi
107
+
108
+ chmod +x "$FREEBUFF_DATA_DIR/freebuff"
109
+ return 0
110
+ }
111
+
112
+ _compile_freebuff_helper() {
113
+ loading "Compiling helper" _compile_freebuff_helper_impl
114
+ }
115
+
116
+ _compile_freebuff_helper_impl() {
117
+ local HELPER_SRC="$KARNEL_PATH/tools/ai/freebuff/helper/freebuff_helper.c"
118
+ if [ ! -f "$HELPER_SRC" ]; then
119
+ log_error "Helper source not found at $HELPER_SRC"
120
+ return 1
121
+ fi
122
+
123
+ if ! clang -O2 -o "$PREFIX/bin/freebuff" "$HELPER_SRC" &>>"$LOG_FILE"; then
124
+ log_error "Failed to compile freebuff helper"
125
+ return 1
126
+ fi
127
+
128
+ chmod +x "$PREFIX/bin/freebuff"
129
+ return 0
130
+ }
131
+
132
+ _install_freebuff_native() {
133
+ _freebuff_install_deps_native || return 1
134
+ _download_freebuff_binary || return 1
135
+ _compile_freebuff_helper || return 1
136
+ log_success "Freebuff installed natively"
137
+ return 0
138
+ }
139
+
140
+ _install_freebuff_proot() {
141
+ loading "Installing Freebuff (proot-distro)" _install_freebuff_proot_impl
142
+ }
143
+
144
+ _install_freebuff_proot_impl() {
145
+ mkdir -p "$(dirname "$LOG_FILE")"
146
+
147
+ if ! command -v proot-distro &>/dev/null; then
148
+ pkg install proot-distro -y &>>"$LOG_FILE"
149
+ fi
150
+
151
+ if [ ! -d "$(_freebuff_detect_ubuntu_root)" ]; then
152
+ proot-distro install ubuntu:24.04 &>>"$LOG_FILE"
153
+ fi
154
+
155
+ _freebuff_proot_ubuntu /bin/bash -c \
156
+ 'apt-get update && apt-get upgrade -y && apt-get install -y curl ca-certificates tar' \
157
+ &>>"$LOG_FILE"
158
+
159
+ _freebuff_proot_ubuntu /bin/bash -c '
160
+ export SHELL=/bin/bash
161
+ export TMPDIR=/tmp
162
+ export HOME=/root
163
+ LATEST=$(curl -fsSL https://api.github.com/repos/CodebuffAI/codebuff-community/releases/latest | grep '"'"'tag_name'"'"' | sed -E '"'"'s/.*"freebuff-v([^"]+)".*/\1/'"'"')
164
+ TARBALL=$(mktemp /tmp/freebuff.XXXXXX.tar.gz)
165
+ curl -fsSL "https://codebuff.com/api/releases/download/${LATEST}/freebuff-linux-arm64.tar.gz" -o "$TARBALL"
166
+ mkdir -p /root/.freebuff
167
+ tar -zxf "$TARBALL" -C /root/.freebuff
168
+ rm -f "$TARBALL"
169
+ chmod +x /root/.freebuff/freebuff
170
+ ' &>>"$LOG_FILE"
171
+
172
+ local ubuntu_root
173
+ ubuntu_root="$(_freebuff_detect_ubuntu_root)"
174
+
175
+ if [ -z "$ubuntu_root" ]; then
176
+ log_error "Ubuntu rootfs not found"
177
+ return 1
178
+ fi
179
+
180
+ local freebuff_bin="$ubuntu_root/root/.freebuff/freebuff"
181
+
182
+ if [ ! -f "$freebuff_bin" ]; then
183
+ log_error "Freebuff binary not found after install"
184
+ return 1
185
+ fi
186
+
187
+ local wrapper_src="$KARNEL_PATH/tools/ai/freebuff/bin/freebuff"
188
+ if [ ! -f "$wrapper_src" ]; then
189
+ log_error "Wrapper template not found at $wrapper_src"
190
+ return 1
191
+ fi
192
+ sed "s|__UBUNTU_ROOTFS__|$ubuntu_root|g" "$wrapper_src" >"$PREFIX/bin/freebuff"
193
+ chmod +x "$PREFIX/bin/freebuff"
194
+
195
+ if ! grep -q '.freebuff' "$ubuntu_root/root/.bashrc" 2>/dev/null; then
196
+ printf '\n# freebuff\nexport PATH=/root/.freebuff:$PATH\n' >>"$ubuntu_root/root/.bashrc"
197
+ fi
198
+
199
+ return 0
200
+ }
201
+
202
+ install_freebuff() {
203
+ if command -v freebuff &>/dev/null; then
204
+ log_info "Freebuff is already installed"
205
+ return 2
206
+ fi
207
+
208
+ log_info "Installing Freebuff..."
209
+
210
+ if [[ -t 0 ]] && [[ -t 1 ]]; then
211
+ log_info "Select installation method for Freebuff:"
212
+ read_select "Installation method" SELECTED_METHOD \
213
+ "Native (recommended) - Compile with glibc support" \
214
+ "Proot-distro (alternative) - Ubuntu container"
215
+
216
+ case "$SELECTED_METHOD" in
217
+ *Native*)
218
+ _install_freebuff_native
219
+ ;;
220
+ *Proot-distro*)
221
+ _install_freebuff_proot
222
+ ;;
223
+ esac
224
+ else
225
+ _install_freebuff_native
226
+ fi
227
+ }
228
+
229
+ uninstall_freebuff() {
230
+ log_info "Uninstalling Freebuff..."
231
+ mkdir -p "$(dirname "$LOG_FILE")"
232
+
233
+ if [ ! -f "$PREFIX/bin/freebuff" ]; then
234
+ log_warn "Freebuff is not installed"
235
+ return 1
236
+ fi
237
+
238
+ if [ -f "$FREEBUFF_DATA_DIR/freebuff" ]; then
239
+ rm -f "$PREFIX/bin/freebuff"
240
+ rm -rf "$FREEBUFF_DATA_DIR"
241
+ log_success "Freebuff (native) uninstalled"
242
+ return 0
243
+ fi
244
+
245
+ _freebuff_proot_ubuntu /bin/bash -c 'rm -rf /root/.freebuff' &>>"$LOG_FILE"
246
+
247
+ local ubuntu_bashrc
248
+ ubuntu_bashrc="$(_freebuff_detect_ubuntu_root)/root/.bashrc"
249
+
250
+ if [ -f "$ubuntu_bashrc" ]; then
251
+ sed -i '/# freebuff/d; /export PATH=\/root\/.freebuff/d' "$ubuntu_bashrc"
252
+ fi
253
+
254
+ if rm -f "$PREFIX/bin/freebuff" &>>"$LOG_FILE"; then
255
+ log_success "Freebuff (proot-distro) uninstalled"
256
+ return 0
257
+ else
258
+ log_error "Failed to uninstall Freebuff"
259
+ return 1
260
+ fi
261
+ }
262
+
263
+ update_freebuff() {
264
+ log_info "Updating Freebuff..."
265
+ mkdir -p "$(dirname "$LOG_FILE")"
266
+
267
+ if [ -f "$FREEBUFF_DATA_DIR/freebuff" ]; then
268
+ _install_freebuff_native
269
+ return $?
270
+ fi
271
+
272
+ _freebuff_proot_ubuntu /bin/bash -c 'rm -rf /root/.freebuff' &>>"$LOG_FILE"
273
+
274
+ _freebuff_proot_ubuntu /bin/bash -c '
275
+ export SHELL=/bin/bash
276
+ export TMPDIR=/tmp
277
+ export HOME=/root
278
+ LATEST=$(curl -fsSL https://api.github.com/repos/CodebuffAI/codebuff-community/releases/latest | grep '"'"'tag_name'"'"' | sed -E '"'"'s/.*"freebuff-v([^"]+)".*/\1/'"'"')
279
+ TARBALL=$(mktemp /tmp/freebuff.XXXXXX.tar.gz)
280
+ curl -fsSL "https://codebuff.com/api/releases/download/${LATEST}/freebuff-linux-arm64.tar.gz" -o "$TARBALL"
281
+ mkdir -p /root/.freebuff
282
+ tar -zxf "$TARBALL" -C /root/.freebuff
283
+ rm -f "$TARBALL"
284
+ chmod +x /root/.freebuff/freebuff
285
+ ' &>>"$LOG_FILE"
286
+
287
+ local ubuntu_root
288
+ ubuntu_root="$(_freebuff_detect_ubuntu_root)"
289
+ local freebuff_bin="$ubuntu_root/root/.freebuff/freebuff"
290
+
291
+ if [ ! -f "$freebuff_bin" ]; then
292
+ log_error "Freebuff binary not found after update"
293
+ return 1
294
+ fi
295
+
296
+ log_success "Freebuff (proot-distro) updated"
297
+ return 0
298
+ }
299
+
300
+ reinstall_freebuff() {
301
+ uninstall_freebuff
302
+ install_freebuff
303
+ }
@@ -0,0 +1,46 @@
1
+ # Gemini CLI
2
+
3
+ Google's AI assistant with Gemini
4
+
5
+ **Package:** @google/gemini-cli
6
+ **Author:** israel marques
7
+ **Repository:** https://github.com/israelmarques1024-dotcom/karnel-termux
8
+ **Official:** https://github.com/google-gemini/gemini-cli
9
+ **Type:** AI CLI assistant (npm global package)
10
+ **License:** MIT
11
+
12
+ ## Description
13
+
14
+ Gemini CLI is Google's official command-line interface for interacting with the Gemini AI model. It provides code generation, explanation, debugging, and general AI assistance directly from your terminal.
15
+
16
+ ## Dependencies
17
+
18
+ - Node.js LTS (nodejs-lts)
19
+ - npm
20
+ - git, ripgrep
21
+
22
+ ## Install
23
+
24
+ ```bash
25
+ karnel install ai --gemini-cli
26
+ ```
27
+
28
+ ## Uninstall
29
+
30
+ ```bash
31
+ karnel uninstall ai --gemini-cli
32
+ ```
33
+
34
+ ## Update
35
+
36
+ ```bash
37
+ karnel update ai --gemini-cli
38
+ ```
39
+
40
+ ## Notes
41
+
42
+ - Installed as a global npm package: `@google/gemini-cli`
43
+ - Command: `gemini`
44
+ - Requires an API key from Google AI Studio
45
+ - Environment variable: `GEMINI_API_KEY`
46
+
@@ -0,0 +1,111 @@
1
+ #!/usr/bin/env bash
2
+
3
+ import "@/utils/log"
4
+
5
+ LOG_FILE="$KARNEL_CACHE/install_ai.log"
6
+
7
+ _gemini_cli_dependencies() {
8
+ loading "Installing dependencies" _gemini_cli_dependencies_impl
9
+ }
10
+
11
+ _gemini_cli_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_gemini_cli_npm() {
33
+ loading "Installing Gemini CLI" _install_gemini_cli_npm_impl
34
+ }
35
+
36
+ _install_gemini_cli_npm_impl() {
37
+ export GYP_DEFINES="android_ndk_path=''"
38
+ export ANDROID_API_LEVEL=24
39
+
40
+ if ! npm install -g @google/gemini-cli &>>"$LOG_FILE"; then
41
+ log_error "Failed to install Gemini CLI"
42
+ return 1
43
+ fi
44
+
45
+ return 0
46
+ }
47
+
48
+ install_gemini_cli() {
49
+ if command -v gemini &>/dev/null; then
50
+ log_info "Gemini CLI is already installed"
51
+ return 2
52
+ fi
53
+
54
+ log_info "Installing Gemini CLI..."
55
+
56
+ mkdir -p "$(dirname "$LOG_FILE")"
57
+
58
+ _gemini_cli_dependencies || return 1
59
+ _install_gemini_cli_npm || return 1
60
+
61
+ log_success "Gemini CLI installed"
62
+ return 0
63
+ }
64
+
65
+ uninstall_gemini_cli() {
66
+ if ! command -v gemini &>/dev/null; then
67
+ log_info "Gemini CLI is not installed"
68
+ return 2
69
+ fi
70
+ log_info "Uninstalling Gemini CLI..."
71
+ mkdir -p "$(dirname "$LOG_FILE")"
72
+
73
+ loading "Removing Gemini CLI" _uninstall_gemini_cli_impl
74
+
75
+ log_success "Gemini CLI uninstalled"
76
+ return 0
77
+ }
78
+
79
+ _uninstall_gemini_cli_impl() {
80
+ if ! npm uninstall -g @google/gemini-cli &>>"$LOG_FILE"; then
81
+ log_error "Failed to uninstall Gemini CLI"
82
+ return 1
83
+ fi
84
+ return 0
85
+ }
86
+
87
+ update_gemini_cli() {
88
+ log_info "Updating Gemini CLI..."
89
+ mkdir -p "$(dirname "$LOG_FILE")"
90
+
91
+ loading "Updating Gemini CLI" _update_gemini_cli_impl
92
+
93
+ log_success "Gemini CLI updated"
94
+ return 0
95
+ }
96
+
97
+ _update_gemini_cli_impl() {
98
+ export GYP_DEFINES="android_ndk_path=''"
99
+ export ANDROID_API_LEVEL=24
100
+
101
+ if ! npm update -g @google/gemini-cli &>>"$LOG_FILE"; then
102
+ log_error "Failed to update Gemini CLI"
103
+ return 1
104
+ fi
105
+ return 0
106
+ }
107
+
108
+ reinstall_gemini_cli() {
109
+ uninstall_gemini_cli
110
+ install_gemini_cli
111
+ }
@@ -0,0 +1,42 @@
1
+ # Gentle-AI
2
+
3
+ Ecosystem, Frameworks, Workflows for AI coding agents
4
+
5
+ **Package:** gentle-ai
6
+ **Author:** Gentleman-Programming
7
+ **Repository:** https://github.com/Gentleman-Programming/gentle-ai
8
+ **Type:** AI ecosystem configurator (Go source compile)
9
+ **License:** MIT
10
+
11
+ ## Description
12
+
13
+ Gentle-AI is an ecosystem configurator for AI coding agents. It provides persistent memory (Engram), Spec-Driven Development workflows, curated coding skills, MCP servers, an AI provider switcher, a teaching-oriented persona with security-first permissions, and per-phase model assignment for 15+ supported agents.
14
+
15
+ ## Dependencies
16
+
17
+ - golang (1.23+), git, curl
18
+
19
+ ## Install
20
+
21
+ ```bash
22
+ karnel install ai --gentle-ai
23
+ ```
24
+
25
+ ## Uninstall
26
+
27
+ ```bash
28
+ karnel uninstall ai --gentle-ai
29
+ ```
30
+
31
+ ## Update
32
+
33
+ ```bash
34
+ karnel update ai --gentle-ai
35
+ ```
36
+
37
+ ## Notes
38
+
39
+ - Source cloned from GitHub and compiled natively with Go
40
+ - Termux-specific patches applied automatically for Android compatibility
41
+ - Data directory: `~/.local/share/karnel-data/gentle-ai/`
42
+ - Command: `gentle-ai`