karnel-termux 4.7.7 → 4.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/README.md +46 -5
  2. package/install.sh +2 -2
  3. package/karnel/cli/commands/backup.sh +13 -2
  4. package/karnel/cli/commands/doctor/fixes.sh +111 -13
  5. package/karnel/cli/commands/doctor.sh +112 -10
  6. package/karnel/cli/commands/init.sh +2 -2
  7. package/karnel/cli/commands/install.sh +155 -118
  8. package/karnel/cli/commands/list.sh +106 -13
  9. package/karnel/cli/commands/open.sh +28 -8
  10. package/karnel/cli/commands/reinstall.sh +79 -46
  11. package/karnel/cli/commands/restore.sh +16 -0
  12. package/karnel/cli/commands/robin.sh +656 -0
  13. package/karnel/cli/commands/search.sh +1 -0
  14. package/karnel/cli/commands/show.sh +1 -0
  15. package/karnel/cli/commands/start.sh +12 -2
  16. package/karnel/cli/commands/status.sh +11 -0
  17. package/karnel/cli/commands/uninstall.sh +47 -0
  18. package/karnel/cli/commands/update.sh +43 -0
  19. package/karnel/cli/commands/version.sh +2 -0
  20. package/karnel/cli/commands/voice.sh +11 -6
  21. package/karnel/cli/karnel.sh +115 -69
  22. package/karnel/modules/ai.sh +21 -6
  23. package/karnel/modules/deploy.sh +4 -0
  24. package/karnel/modules/dev.sh +19 -46
  25. package/karnel/modules/games.sh +81 -4
  26. package/karnel/modules/network.sh +88 -0
  27. package/karnel/modules/osint.sh +123 -0
  28. package/karnel/modules/shell.sh +1 -1
  29. package/karnel/modules/ui.sh +4 -0
  30. package/karnel/modules/utils.sh +88 -0
  31. package/karnel/modules/voice.sh +8 -2
  32. package/karnel/tools/ai/all.sh +1 -0
  33. package/karnel/tools/ai/antigravity-cli/install.sh +0 -0
  34. package/karnel/tools/ai/claude-code/install.sh +0 -0
  35. package/karnel/tools/ai/cline/install.sh +8 -8
  36. package/karnel/tools/ai/codegraph/install.sh +8 -5
  37. package/karnel/tools/ai/codex/install.sh +0 -0
  38. package/karnel/tools/ai/command-code/install.sh +0 -0
  39. package/karnel/tools/ai/copilot-termux/install.sh +0 -0
  40. package/karnel/tools/ai/crush/install.sh +1 -1
  41. package/karnel/tools/ai/ctx7/install.sh +0 -0
  42. package/karnel/tools/ai/engram/install.sh +5 -2
  43. package/karnel/tools/ai/freebuff/install.sh +0 -0
  44. package/karnel/tools/ai/gemini-cli/install.sh +0 -0
  45. package/karnel/tools/ai/gentle-ai/install.sh +1 -1
  46. package/karnel/tools/ai/hermes-agent/install.sh +0 -0
  47. package/karnel/tools/ai/kilocode-cli/install.sh +0 -0
  48. package/karnel/tools/ai/kimchi-code/install.sh +3 -1
  49. package/karnel/tools/ai/kimi-code/install.sh +0 -0
  50. package/karnel/tools/ai/kiro/install.sh +0 -0
  51. package/karnel/tools/ai/mimocode/install.sh +0 -0
  52. package/karnel/tools/ai/minimax-cli/install.sh +0 -0
  53. package/karnel/tools/ai/mistral-vibe/install.sh +0 -0
  54. package/karnel/tools/ai/odysseus/install.sh +0 -0
  55. package/karnel/tools/ai/ollama/install.sh +0 -0
  56. package/karnel/tools/ai/omni-route/install.sh +1 -1
  57. package/karnel/tools/ai/openclaude/install.sh +0 -0
  58. package/karnel/tools/ai/openclaw/install.sh +0 -0
  59. package/karnel/tools/ai/opencode/install.sh +0 -0
  60. package/karnel/tools/ai/openspec/install.sh +0 -0
  61. package/karnel/tools/ai/pi/install.sh +0 -0
  62. package/karnel/tools/ai/qoder/README.md +50 -0
  63. package/karnel/tools/ai/qoder/bin/qodercli +28 -0
  64. package/karnel/tools/ai/qoder/helper/qoder_helper.c +47 -0
  65. package/karnel/tools/ai/qoder/install.sh +367 -0
  66. package/karnel/tools/ai/qwen-code/install.sh +0 -0
  67. package/karnel/tools/auto/all.sh +1 -1
  68. package/karnel/tools/auto/n8n/install.sh +0 -0
  69. package/karnel/tools/db/all.sh +1 -1
  70. package/karnel/tools/db/mariadb/install.sh +0 -0
  71. package/karnel/tools/db/mongodb/install.sh +0 -0
  72. package/karnel/tools/db/postgresql/install.sh +0 -0
  73. package/karnel/tools/db/sqlite/install.sh +0 -0
  74. package/karnel/tools/deploy/all.sh +2 -2
  75. package/karnel/tools/deploy/netlify/install.sh +0 -0
  76. package/karnel/tools/deploy/railway/install.sh +1 -1
  77. package/karnel/tools/deploy/vercel/install.sh +0 -0
  78. package/karnel/tools/dev/all.sh +36 -13
  79. package/karnel/tools/dev/bat/install.sh +0 -0
  80. package/karnel/tools/dev/bc/install.sh +0 -0
  81. package/karnel/tools/dev/cloudflared/install.sh +0 -0
  82. package/karnel/tools/dev/curl/install.sh +0 -0
  83. package/karnel/tools/dev/fzf/install.sh +36 -9
  84. package/karnel/tools/dev/gh/install.sh +0 -0
  85. package/karnel/tools/dev/html2text/install.sh +0 -0
  86. package/karnel/tools/dev/imagemagick/install.sh +0 -0
  87. package/karnel/tools/dev/jq/install.sh +0 -0
  88. package/karnel/tools/dev/lsd/install.sh +0 -0
  89. package/karnel/tools/dev/make/install.sh +0 -0
  90. package/karnel/tools/dev/ncurses/install.sh +0 -0
  91. package/karnel/tools/dev/proot/install.sh +0 -0
  92. package/karnel/tools/dev/shfmt/install.sh +0 -0
  93. package/karnel/tools/dev/snyk/install.sh +0 -0
  94. package/karnel/tools/dev/tmate/install.sh +0 -0
  95. package/karnel/tools/dev/translate/install.sh +0 -0
  96. package/karnel/tools/dev/tree/install.sh +0 -0
  97. package/karnel/tools/dev/udocker/install.sh +0 -0
  98. package/karnel/tools/dev/wget/install.sh +0 -0
  99. package/karnel/tools/editor/all.sh +1 -1
  100. package/karnel/tools/editor/code-server/install.sh +0 -0
  101. package/karnel/tools/games/all.sh +1 -1
  102. package/karnel/tools/games/arcade/install.sh +0 -0
  103. package/karnel/tools/games/buzz/install.sh +0 -0
  104. package/karnel/tools/games/ctfgod/install.sh +0 -0
  105. package/karnel/tools/games/detective/install.sh +0 -0
  106. package/karnel/tools/games/pet-friends/install.sh +0 -0
  107. package/karnel/tools/games/tamagotchi/install.sh +0 -0
  108. package/karnel/tools/lang/all.sh +2 -1
  109. package/karnel/tools/lang/bun/bin/bun +27 -0
  110. package/karnel/tools/lang/bun/install.sh +318 -0
  111. package/karnel/tools/lang/bun/src/bun-shim.c +352 -0
  112. package/karnel/tools/lang/bun/src/bun_wrapper.c +55 -0
  113. package/karnel/tools/lang/clang/install.sh +0 -0
  114. package/karnel/tools/lang/golang/install.sh +0 -0
  115. package/karnel/tools/lang/nodejs/install.sh +0 -0
  116. package/karnel/tools/lang/perl/install.sh +0 -0
  117. package/karnel/tools/lang/php/install.sh +0 -0
  118. package/karnel/tools/lang/python/install.sh +0 -0
  119. package/karnel/tools/lang/rust/install.sh +0 -0
  120. package/karnel/tools/network/all.sh +65 -0
  121. package/karnel/tools/network/dark/README.md +45 -0
  122. package/karnel/tools/network/dark/dark.py +709 -0
  123. package/karnel/tools/network/dark/install.sh +51 -0
  124. package/karnel/tools/network/dedsec-network/README.md +42 -0
  125. package/karnel/tools/network/dedsec-network/dedsec-network.py +709 -0
  126. package/karnel/tools/network/dedsec-network/install.sh +50 -0
  127. package/karnel/tools/npm/all.sh +1 -1
  128. package/karnel/tools/npm/live-server/install.sh +0 -0
  129. package/karnel/tools/npm/localtunnel/install.sh +0 -0
  130. package/karnel/tools/npm/markserv/install.sh +0 -0
  131. package/karnel/tools/npm/ncu/install.sh +0 -0
  132. package/karnel/tools/npm/nestjs/install.sh +0 -0
  133. package/karnel/tools/npm/ngrok/install.sh +0 -0
  134. package/karnel/tools/npm/prettier/install.sh +0 -0
  135. package/karnel/tools/npm/psqlformat/install.sh +0 -0
  136. package/karnel/tools/npm/turbopack/install.sh +2 -0
  137. package/karnel/tools/npm/typescript/install.sh +0 -0
  138. package/karnel/tools/npm/vercel/install.sh +0 -0
  139. package/karnel/tools/osint/all.sh +65 -0
  140. package/karnel/tools/osint/robin/README.md +99 -0
  141. package/karnel/tools/osint/robin/common.sh +258 -0
  142. package/karnel/tools/osint/robin/install.sh +548 -0
  143. package/karnel/tools/osint/robin/requirements-termux.txt +33 -0
  144. package/karnel/tools/shell/all.sh +1 -1
  145. package/karnel/tools/shell/better-npm/install.sh +0 -0
  146. package/karnel/tools/shell/fzf-tab/install.sh +0 -0
  147. package/karnel/tools/shell/history-substring/install.sh +0 -0
  148. package/karnel/tools/shell/powerlevel10k/install.sh +0 -0
  149. package/karnel/tools/shell/you-should-use/install.sh +0 -0
  150. package/karnel/tools/shell/zsh-autopair/install.sh +0 -0
  151. package/karnel/tools/shell/zsh-autosuggestions/install.sh +0 -0
  152. package/karnel/tools/shell/zsh-completions/install.sh +0 -0
  153. package/karnel/tools/shell/zsh-defer/install.sh +0 -0
  154. package/karnel/tools/shell/zsh-syntax-highlighting/install.sh +0 -0
  155. package/karnel/tools/ui/all.sh +1 -1
  156. package/karnel/tools/ui/banner/install.sh +0 -0
  157. package/karnel/tools/ui/cursor/install.sh +0 -0
  158. package/karnel/tools/ui/extra-keys/install.sh +0 -0
  159. package/karnel/tools/ui/font/install.sh +0 -0
  160. package/karnel/tools/utils/all.sh +88 -0
  161. package/karnel/tools/utils/applaunch/README.md +43 -0
  162. package/karnel/tools/{dev → utils}/applaunch/install.sh +3 -3
  163. package/karnel/tools/utils/fconv/README.md +41 -0
  164. package/karnel/tools/{dev → utils}/fconv/install.sh +3 -3
  165. package/karnel/tools/utils/filecheck/README.md +41 -0
  166. package/karnel/tools/{dev → utils}/filecheck/install.sh +3 -3
  167. package/karnel/tools/utils/httptmux/README.md +42 -0
  168. package/karnel/tools/{dev → utils}/httptmux/install.sh +0 -0
  169. package/karnel/tools/utils/notes/README.md +41 -0
  170. package/karnel/tools/{dev → utils}/notes/install.sh +3 -3
  171. package/karnel/tools/utils/passman/README.md +42 -0
  172. package/karnel/tools/{dev → utils}/passman/install.sh +3 -3
  173. package/karnel/tools/utils/qrcode/README.md +41 -0
  174. package/karnel/tools/utils/qrcode/install.sh +50 -0
  175. package/karnel/tools/utils/qrcode/qrcode.py +89 -0
  176. package/karnel/tools/utils/splash/README.md +41 -0
  177. package/karnel/tools/{dev → utils}/splash/install.sh +3 -3
  178. package/karnel/tools/utils/treex/README.md +41 -0
  179. package/karnel/tools/{dev → utils}/treex/install.sh +3 -3
  180. package/karnel/tools/utils/websites/README.md +41 -0
  181. package/karnel/tools/{dev → utils}/websites/install.sh +3 -3
  182. package/karnel/tools/utils/zork/README.md +43 -0
  183. package/karnel/tools/{dev → utils}/zork/install.sh +3 -3
  184. package/karnel/utils/banner.sh +8 -6
  185. package/karnel/utils/bootstrap.sh +1 -1
  186. package/karnel/utils/env.sh +16 -2
  187. package/karnel/utils/log.sh +0 -1
  188. package/karnel/utils/tools.sh +9 -2
  189. package/package.json +6 -1
  190. package/scripts/check-package.js +45 -0
  191. package/scripts/completion.bash +8 -3
  192. package/scripts/completion.zsh +8 -13
  193. package/karnel/cli/commands/doctor/system.sh +0 -87
  194. package/karnel/tools/dev/applaunch/__pycache__/applaunch.cpython-314.pyc +0 -0
  195. package/karnel/tools/dev/fconv/__pycache__/fconv.cpython-314.pyc +0 -0
  196. package/karnel/tools/dev/filecheck/__pycache__/filecheck.cpython-314.pyc +0 -0
  197. package/karnel/tools/dev/notes/__pycache__/notes.cpython-314.pyc +0 -0
  198. package/karnel/tools/dev/passman/__pycache__/passman.cpython-314.pyc +0 -0
  199. package/karnel/tools/dev/splash/__pycache__/splash.cpython-314.pyc +0 -0
  200. package/karnel/tools/dev/websites/__pycache__/websites.cpython-314.pyc +0 -0
  201. package/karnel/tools/games/arcade/__pycache__/arcade.cpython-314.pyc +0 -0
  202. package/karnel/tools/games/buzz/__pycache__/buzz.cpython-314.pyc +0 -0
  203. package/karnel/tools/games/ctfgod/__pycache__/ctfgod.cpython-314.pyc +0 -0
  204. package/karnel/tools/games/detective/__pycache__/detective.cpython-314.pyc +0 -0
  205. package/karnel/tools/games/pet-friends/__pycache__/pet-friends.cpython-314.pyc +0 -0
  206. package/karnel/tools/games/tamagotchi/__pycache__/tamagotchi.cpython-314.pyc +0 -0
  207. package/karnel/tools/games/terminal-arcade/__pycache__/terminal-arcade.cpython-314.pyc +0 -0
  208. /package/karnel/tools/{dev → utils}/applaunch/applaunch.py +0 -0
  209. /package/karnel/tools/{dev → utils}/fconv/fconv.py +0 -0
  210. /package/karnel/tools/{dev → utils}/filecheck/filecheck.py +0 -0
  211. /package/karnel/tools/{dev → utils}/notes/notes.py +0 -0
  212. /package/karnel/tools/{dev → utils}/passman/passman.py +0 -0
  213. /package/karnel/tools/{dev → utils}/splash/splash.py +0 -0
  214. /package/karnel/tools/{dev → utils}/treex/treex.py +0 -0
  215. /package/karnel/tools/{dev → utils}/websites/websites.py +0 -0
@@ -31,7 +31,7 @@ karnel_main() {
31
31
  log_error "Command not found: $cmd"
32
32
  echo
33
33
  karnel_help
34
- exit 1
34
+ return 1
35
35
  fi
36
36
 
37
37
  local command_file="$KARNEL_PATH/cli/commands/$cmd.sh"
@@ -44,7 +44,7 @@ karnel_main() {
44
44
  log_error "Command not found: $cmd"
45
45
  echo
46
46
  karnel_help
47
- exit 1
47
+ return 1
48
48
  fi
49
49
  }
50
50
 
@@ -57,29 +57,33 @@ karnel_help() {
57
57
  separator_section "Available Commands"
58
58
  echo
59
59
  printf " ${D_CYAN}%-12s${NC} %s\n" "--version" "Show current version"
60
- printf " ${D_CYAN}%-12s${NC} %s\n" "brain" "Second brain — save and search memories"
61
60
  printf " ${D_CYAN}%-12s${NC} %s\n" "backup" "Backup all Termux configs + tools"
62
- printf " ${D_CYAN}%-12s${NC} %s\n" "restore" "Restore from a backup"
63
- printf " ${D_CYAN}%-12s${NC} %s\n" "search" "Search tools and memories"
61
+ printf " ${D_CYAN}%-12s${NC} %s\n" "brain" "Second brain — save, search, and query memories"
64
62
  printf " ${D_CYAN}%-12s${NC} %s\n" "cleanup" "Clean caches, logs, and temp files"
63
+ printf " ${D_CYAN}%-12s${NC} %s\n" "deploy" "Deploy projects to Vercel, Railway, Netlify"
64
+ printf " ${D_CYAN}%-12s${NC} %s\n" "doctor" "Run diagnostics (termux/code)"
65
+ printf " ${D_CYAN}%-12s${NC} %s\n" "doctor termux" "Full Termux environment diagnostics"
66
+ printf " ${D_CYAN}%-12s${NC} %s\n" "doctor code" "Analyze project code structure"
65
67
  printf " ${D_CYAN}%-12s${NC} %s\n" "env" "Manage environment variables"
68
+ printf " ${D_CYAN}%-12s${NC} %s\n" "help" "Show this help screen"
69
+ printf " ${D_CYAN}%-12s${NC} %s\n" "ia" "AI agent manager — sessions, install, routes"
70
+ printf " ${D_CYAN}%-12s${NC} %s\n" "init" "Scaffold projects (Next, React, Nest, etc.)"
66
71
  printf " ${D_CYAN}%-12s${NC} %s\n" "install" "Install modules and packages"
67
- printf " ${D_CYAN}%-12s${NC} %s\n" "show" "Show tool documentation"
68
- printf " ${D_CYAN}%-12s${NC} %s\n" "update" "Update modules or framework"
69
- printf " ${D_CYAN}%-12s${NC} %s\n" "uninstall" "Remove installed modules"
70
- printf " ${D_CYAN}%-12s${NC} %s\n" "reinstall" "Uninstall + install modules"
71
- printf " ${D_CYAN}%-12s${NC} %s\n" "open" "Open documentation in browser"
72
- printf " ${D_CYAN}%-12s${NC} %s\n" "list" "List available tools in modules"
72
+ printf " ${D_CYAN}%-12s${NC} %s\n" "list" "List available tools in a module"
73
+ printf " ${D_CYAN}%-12s${NC} %s\n" "open" "Open docs in browser for a module"
73
74
  printf " ${D_CYAN}%-12s${NC} %s\n" "pg" "PostgreSQL database manager"
75
+ printf " ${D_CYAN}%-12s${NC} %s\n" "reinstall" "Uninstall + install a module"
76
+ printf " ${D_CYAN}%-12s${NC} %s\n" "restore" "Restore Termux from a backup"
77
+ printf " ${D_CYAN}%-12s${NC} %s\n" "robin" "Dark Web OSINT tool (Tor + LLM)"
78
+ printf " ${D_CYAN}%-12s${NC} %s\n" "search" "Search across all tools and memories"
79
+ printf " ${D_CYAN}%-12s${NC} %s\n" "show" "Show README/docs for a tool"
80
+ printf " ${D_CYAN}%-12s${NC} %s\n" "start" "Start services (code-server, etc.)"
74
81
  printf " ${D_CYAN}%-12s${NC} %s\n" "status" "Quick system overview"
75
- printf " ${D_CYAN}%-12s${NC} %s\n" "doctor" "Show doctor subcommands"
76
- printf " ${D_CYAN}%-12s${NC} %s\n" "doctor termux" "Full Termux environment diagnostics"
77
- printf " ${D_CYAN}%-12s${NC} %s\n" "doctor code" "Analyze project code structure"
78
- printf " ${D_CYAN}%-12s${NC} %s\n" "upgrade" "Upgrade Karnel framework"
79
- printf " ${D_CYAN}%-12s${NC} %s\n" "init" "Configure existing projects"
80
- printf " ${D_CYAN}%-12s${NC} %s\n" "start" "Start services (editor, etc.)"
82
+ printf " ${D_CYAN}%-12s${NC} %s\n" "uninstall" "Remove installed modules"
83
+ printf " ${D_CYAN}%-12s${NC} %s\n" "update" "Update modules or framework"
84
+ printf " ${D_CYAN}%-12s${NC} %s\n" "upgrade" "Upgrade Karnel framework itself"
85
+ printf " ${D_CYAN}%-12s${NC} %s\n" "version" "Show current version"
81
86
  printf " ${D_CYAN}%-12s${NC} %s\n" "voice" "Speech-to-agent via microphone"
82
- printf " ${D_CYAN}%-12s${NC} %s\n" "ia" "AI agent manager — sessions, install, routes"
83
87
  echo
84
88
  separator_section "Quick Start"
85
89
  echo
@@ -93,17 +97,21 @@ karnel_help() {
93
97
  echo
94
98
  log_info "Install, update, reinstall, uninstall, list, show or open:"
95
99
  echo
96
- printf " ${D_GREEN}%-10s${NC} %s\n" "lang" "Node, Python, Perl, PHP, Rust, C/C++, Go"
97
- printf " ${D_GREEN}%-10s${NC} %s\n" "db" "PostgreSQL, MariaDB, SQLite, MongoDB"
98
100
  printf " ${D_GREEN}%-10s${NC} %s\n" "ai" "OpenCode, Gentle AI, Claude Code, etc."
101
+ printf " ${D_GREEN}%-10s${NC} %s\n" "auto" "Automation Tools (n8n)"
102
+ printf " ${D_GREEN}%-10s${NC} %s\n" "db" "PostgreSQL, MariaDB, SQLite, MongoDB"
103
+ printf " ${D_GREEN}%-10s${NC} %s\n" "deploy" "Vercel, Railway, Netlify CLIs"
104
+ printf " ${D_GREEN}%-10s${NC} %s\n" "dev" "GitHub CLI, wget, curl, fzf, jq, etc."
105
+ printf " ${D_GREEN}%-10s${NC} %s\n" "utils" "File Converter, Notes, QR Code, etc."
99
106
  printf " ${D_GREEN}%-10s${NC} %s\n" "editor" "code-server (VS Code in browser)"
100
- printf " ${D_GREEN}%-10s${NC} %s\n" "dev" "GitHub CLI, wget, curl, fzf, etc."
107
+ printf " ${D_GREEN}%-10s${NC} %s\n" "games" "Buzz, CTF God, Detective, Tamagotchi, etc."
108
+ printf " ${D_GREEN}%-10s${NC} %s\n" "lang" "Node, Python, Perl, PHP, Rust, C/C++, Go"
101
109
  printf " ${D_GREEN}%-10s${NC} %s\n" "npm" "Node.js global npm packages"
110
+ printf " ${D_GREEN}%-10s${NC} %s\n" "osint" "OSINT Tools (Robin — Dark Web + LLM)"
111
+ printf " ${D_GREEN}%-10s${NC} %s\n" "network" "Network tools (Dark Web, DedSec Network)"
102
112
  printf " ${D_GREEN}%-10s${NC} %s\n" "shell" "ZSH + Oh My Zsh + 10 plugins"
103
113
  printf " ${D_GREEN}%-10s${NC} %s\n" "ui" "Font, Cursor, Extra-keys, Banner"
104
- printf " ${D_GREEN}%-10s${NC} %s\n" "auto" "Automation Tools (n8n)"
105
- printf " ${D_GREEN}%-10s${NC} %s\n" "deploy" "Vercel, Railway, Netlify CLIs"
106
- printf " ${D_GREEN}%-10s${NC} %s\n" "games" "Buzz, CTF God, Detective, Tamagotchi, etc."
114
+ printf " ${D_GREEN}%-10s${NC} %s\n" "voice" "Speech-to-agent via microphone"
107
115
 
108
116
  echo
109
117
  separator_section "Help"
@@ -193,9 +201,9 @@ _dialog_yesno() {
193
201
  local title="$1"
194
202
  local prompt="$2"
195
203
  if [[ "$TUI_BIN" == "dialog" ]]; then
196
- dialog --clear --backtitle "Karnel v$KARNEL_VERSION" --title "$title" --yesno "$prompt" 10 60 2>&1 >/dev/tty
204
+ dialog --clear --backtitle "Karnel v$KARNEL_VERSION" --title "$title" --yesno "$prompt" 10 60 >/dev/tty 2>&1
197
205
  else
198
- whiptail --backtitle "Karnel v$KARNEL_VERSION" --title "$title" --yesno "$prompt" 10 60 2>&1 >/dev/tty
206
+ whiptail --backtitle "Karnel v$KARNEL_VERSION" --title "$title" --yesno "$prompt" 10 60 >/dev/tty 2>&1
199
207
  fi
200
208
  return $?
201
209
  }
@@ -223,6 +231,7 @@ _tui_main_menu() {
223
231
  if [[ $exit_status -ne 0 ]] || [[ "$choice" == "exit" ]] || [[ -z "$choice" ]]; then
224
232
  clear
225
233
  source "$KARNEL_PATH/utils/banner.sh"
234
+ render_banner
226
235
  break
227
236
  fi
228
237
 
@@ -236,49 +245,49 @@ _tui_main_menu() {
236
245
  clear
237
246
  karnel_main "voice"
238
247
  echo
239
- read -p "Press Enter to return to menu..." temp
248
+ read -r -p "Press Enter to return to menu..." temp
240
249
  ;;
241
250
  ia)
242
251
  clear
243
252
  karnel_main "ia"
244
253
  echo
245
- read -p "Press Enter to return to menu..." temp
254
+ read -r -p "Press Enter to return to menu..." temp
246
255
  ;;
247
256
  doctor)
248
257
  clear
249
258
  karnel_main "doctor"
250
259
  echo
251
- read -p "Press Enter to return to menu..." temp
260
+ read -r -p "Press Enter to return to menu..." temp
252
261
  ;;
253
262
  cleanup)
254
263
  clear
255
264
  karnel_main "cleanup"
256
265
  echo
257
- read -p "Press Enter to return to menu..." temp
266
+ read -r -p "Press Enter to return to menu..." temp
258
267
  ;;
259
268
  status)
260
269
  clear
261
270
  karnel_main "status"
262
271
  echo
263
- read -p "Press Enter to return to menu..." temp
272
+ read -r -p "Press Enter to return to menu..." temp
264
273
  ;;
265
274
  upgrade)
266
275
  clear
267
276
  karnel_main "upgrade"
268
277
  echo
269
- read -p "Press Enter to return to menu..." temp
278
+ read -r -p "Press Enter to return to menu..." temp
270
279
  ;;
271
280
  update)
272
281
  clear
273
282
  karnel_main "update"
274
283
  echo
275
- read -p "Press Enter to return to menu..." temp
284
+ read -r -p "Press Enter to return to menu..." temp
276
285
  ;;
277
286
  help)
278
287
  clear
279
288
  karnel_help
280
289
  echo
281
- read -p "Press Enter to return to menu..." temp
290
+ read -r -p "Press Enter to return to menu..." temp
282
291
  ;;
283
292
  esac
284
293
  done
@@ -306,60 +315,60 @@ _tui_brain_menu() {
306
315
  case "$sub_choice" in
307
316
  ask)
308
317
  local question
309
- question=$(_dialog_input "Brain Ask" "Enter your question for the brain:")
310
- if [[ $? -eq 0 ]] && [[ -n "$question" ]]; then
318
+ question=$(_dialog_input "Brain Ask" "Enter your question for the brain:") || true
319
+ if [[ -n "$question" ]]; then
311
320
  clear
312
321
  karnel_main "brain" "ask" "$question"
313
322
  echo
314
- read -p "Press Enter to return..." temp
323
+ read -r -p "Press Enter to return..." temp
315
324
  fi
316
325
  ;;
317
326
  save)
318
327
  clear
319
328
  karnel_main "brain" "save"
320
329
  echo
321
- read -p "Press Enter to return..." temp
330
+ read -r -p "Press Enter to return..." temp
322
331
  ;;
323
332
  search)
324
333
  local query
325
334
  query=$(_dialog_input "Search Memories" "Enter search query:")
326
- if [[ $? -eq 0 ]] && [[ -n "$query" ]]; then
335
+ if [[ -n "$query" ]]; then
327
336
  clear
328
337
  karnel_main "brain" "search" "$query"
329
338
  echo
330
- read -p "Press Enter to return..." temp
339
+ read -r -p "Press Enter to return..." temp
331
340
  fi
332
341
  ;;
333
342
  list)
334
343
  clear
335
344
  karnel_main "brain" "list"
336
345
  echo
337
- read -p "Press Enter to return..." temp
346
+ read -r -p "Press Enter to return..." temp
338
347
  ;;
339
348
  init)
340
349
  clear
341
350
  karnel_main "brain" "init"
342
351
  echo
343
- read -p "Press Enter to return..." temp
352
+ read -r -p "Press Enter to return..." temp
344
353
  ;;
345
354
  graph)
346
355
  clear
347
356
  karnel_main "brain" "graph"
348
357
  echo
349
- read -p "Press Enter to return..." temp
358
+ read -r -p "Press Enter to return..." temp
350
359
  ;;
351
360
  sync)
352
361
  clear
353
362
  karnel_main "brain" "sync"
354
363
  echo
355
- read -p "Press Enter to return..." temp
364
+ read -r -p "Press Enter to return..." temp
356
365
  ;;
357
366
  reset)
358
367
  if _dialog_yesno "Reset Brain" "WARNING: This will delete ALL stored memories. Are you sure?"; then
359
368
  clear
360
369
  karnel_main "brain" "reset"
361
370
  echo
362
- read -p "Press Enter to return..." temp
371
+ read -r -p "Press Enter to return..." temp
363
372
  fi
364
373
  ;;
365
374
  esac
@@ -385,19 +394,19 @@ _tui_env_menu() {
385
394
  clear
386
395
  karnel_main "env" "set"
387
396
  echo
388
- read -p "Press Enter to return..." temp
397
+ read -r -p "Press Enter to return..." temp
389
398
  ;;
390
399
  unset)
391
400
  clear
392
401
  karnel_main "env" "unset"
393
402
  echo
394
- read -p "Press Enter to return..." temp
403
+ read -r -p "Press Enter to return..." temp
395
404
  ;;
396
405
  list)
397
406
  clear
398
407
  karnel_main "env" "ls"
399
408
  echo
400
- read -p "Press Enter to return..." temp
409
+ read -r -p "Press Enter to return..." temp
401
410
  ;;
402
411
  esac
403
412
  done
@@ -408,14 +417,20 @@ _tui_install_menu() {
408
417
  local target
409
418
  target=$(_dialog_menu "Install Modules" "Select target module to install:" \
410
419
  "ai" "AI Tools (OpenCode, Claude, Ollama, etc.)" \
420
+ "auto" "Automation Tools (n8n)" \
411
421
  "db" "Databases (PostgreSQL, MariaDB, SQLite, MongoDB)" \
412
- "lang" "Programming Languages (Node, Python, Go, Rust, etc.)" \
413
- "editor" "Code Editor (code-server)" \
422
+ "deploy" "Deploy CLIs (Vercel, Railway, Netlify)" \
414
423
  "dev" "Development Tools (GitHub CLI, fzf, bat, etc.)" \
424
+ "editor" "Code Editor (code-server)" \
425
+ "games" "Games (Buzz, CTF God, Detective, etc.)" \
426
+ "lang" "Programming Languages (Node, Python, Go, Rust, etc.)" \
415
427
  "npm" "Node.js Global npm Packages" \
428
+ "osint" "OSINT Tools (Robin — Dark Web + LLM)" \
429
+ "network" "Network Tools (Dark Web, DedSec Network)" \
430
+ "utils" "Utility Scripts (Fconv, Notes, QR Code)" \
416
431
  "shell" "ZSH + Oh My Zsh + Plugins" \
417
432
  "ui" "Termux UI (font, cursor, extra-keys, banner)" \
418
- "auto" "Automation Tools (n8n)" \
433
+ "voice" "Speech-to-Agent via microphone" \
419
434
  "back" "Back to Main Menu")
420
435
 
421
436
  local exit_status=$?
@@ -424,7 +439,7 @@ _tui_install_menu() {
424
439
  fi
425
440
 
426
441
  case "$target" in
427
- ai|db|lang|dev|shell|ui)
442
+ ai|db|lang|dev|utils|network|shell|ui)
428
443
  _tui_install_checklist "$target"
429
444
  ;;
430
445
  *)
@@ -432,7 +447,7 @@ _tui_install_menu() {
432
447
  clear
433
448
  karnel_main "install" "$target"
434
449
  echo
435
- read -p "Press Enter to return..." temp
450
+ read -r -p "Press Enter to return..." temp
436
451
  fi
437
452
  ;;
438
453
  esac
@@ -446,6 +461,7 @@ _tui_install_checklist() {
446
461
  case "$target" in
447
462
  lang)
448
463
  opts=(
464
+ "bun" "Bun (JS Runtime)" OFF
449
465
  "nodejs" "Node.js LTS" OFF
450
466
  "python" "Python" OFF
451
467
  "perl" "Perl" OFF
@@ -524,6 +540,14 @@ _tui_install_checklist() {
524
540
  "snyk" "Snyk" OFF
525
541
  "httptmux" "Httptmux" OFF
526
542
  "zork" "Zork" OFF
543
+ "fconv" "File Converter" OFF
544
+ "filecheck" "File Checker" OFF
545
+ "websites" "Websites Creator" OFF
546
+ "notes" "Smart Notes" OFF
547
+ "treex" "Tree Explorer" OFF
548
+ "passman" "Password Master" OFF
549
+ "applaunch" "App Launcher" OFF
550
+ "splash" "Loading Screen" OFF
527
551
  )
528
552
  ;;
529
553
  shell)
@@ -542,6 +566,27 @@ _tui_install_checklist() {
542
566
  "banner" "Startup banner" OFF
543
567
  )
544
568
  ;;
569
+ utils)
570
+ opts=(
571
+ "fconv" "File Converter" OFF
572
+ "filecheck" "File Checker" OFF
573
+ "websites" "Websites Creator" OFF
574
+ "notes" "Smart Notes" OFF
575
+ "treex" "Tree Explorer" OFF
576
+ "passman" "Password Master" OFF
577
+ "applaunch" "App Launcher" OFF
578
+ "splash" "Loading Screen" OFF
579
+ "httptmux" "HTTP API Client" OFF
580
+ "zork" "Zork Adventure Games" OFF
581
+ "qrcode" "QR Code Generator" OFF
582
+ )
583
+ ;;
584
+ network)
585
+ opts=(
586
+ "dark" "Dark Web OSINT" OFF
587
+ "dedsec-network" "DedSec Network Toolkit" OFF
588
+ )
589
+ ;;
545
590
  esac
546
591
 
547
592
  local selections
@@ -563,7 +608,7 @@ _tui_install_checklist() {
563
608
  log_info "Running: karnel install $target ${clean_selections[*]}"
564
609
  karnel_main "install" "$target" "${clean_selections[@]}"
565
610
  echo
566
- read -p "Press Enter to return..." temp
611
+ read -r -p "Press Enter to return..." temp
567
612
  fi
568
613
  fi
569
614
  }
@@ -595,51 +640,50 @@ _tui_pg_menu() {
595
640
  clear
596
641
  karnel_main "pg" "$sub_choice"
597
642
  echo
598
- read -p "Press Enter to return..." temp
643
+ read -r -p "Press Enter to return..." temp
599
644
  ;;
600
645
  create)
601
646
  local db_name
602
- db_name=$(_dialog_input "Create Database" "Enter new database name:")
603
- if [[ $? -eq 0 ]] && [[ -n "$db_name" ]]; then
647
+ db_name=$(_dialog_input "Create Database" "Enter database name to create:") || true
648
+ if [[ -n "$db_name" ]]; then
604
649
  clear
605
650
  karnel_main "pg" "create" "$db_name"
606
651
  echo
607
- read -p "Press Enter to return..." temp
652
+ read -r -p "Press Enter to return..." temp
608
653
  fi
609
654
  ;;
610
655
  drop)
611
656
  local db_name
612
- db_name=$(_dialog_input "Drop Database" "Enter database name to drop:")
613
- if [[ $? -eq 0 ]] && [[ -n "$db_name" ]]; then
657
+ db_name=$(_dialog_input "Drop Database" "Enter database name to drop:") || true
658
+ if [[ -n "$db_name" ]]; then
614
659
  if _dialog_yesno "Drop Database" "WARNING: This will permanently delete database '$db_name'. Are you sure?"; then
615
660
  clear
616
661
  karnel_main "pg" "drop" "$db_name"
617
662
  echo
618
- read -p "Press Enter to return..." temp
663
+ read -r -p "Press Enter to return..." temp
619
664
  fi
620
665
  fi
621
666
  ;;
622
667
  backup)
623
668
  local db_name
624
- db_name=$(_dialog_input "Backup Database" "Enter database name to backup (leave empty for interactive):")
625
- if [[ $? -eq 0 ]]; then
669
+ if db_name=$(_dialog_input "Backup Database" "Enter database name to backup (leave empty for interactive):"); then
626
670
  clear
627
671
  karnel_main "pg" "backup" "$db_name"
628
672
  echo
629
- read -p "Press Enter to return..." temp
673
+ read -r -p "Press Enter to return..." temp
630
674
  fi
631
675
  ;;
632
676
  restore)
633
677
  clear
634
678
  karnel_main "pg" "restore"
635
679
  echo
636
- read -p "Press Enter to return..." temp
680
+ read -r -p "Press Enter to return..." temp
637
681
  ;;
638
682
  shell)
639
683
  clear
640
684
  karnel_main "pg" "shell"
641
685
  echo
642
- read -p "Press Enter to return..." temp
686
+ read -r -p "Press Enter to return..." temp
643
687
  ;;
644
688
  esac
645
689
  done
@@ -666,13 +710,14 @@ _tui_init_menu() {
666
710
  clear
667
711
  karnel_main "init" "$sub_choice"
668
712
  echo
669
- read -p "Press Enter to return..." temp
713
+ read -r -p "Press Enter to return..." temp
670
714
  done
671
715
  }
672
716
 
673
717
  karnel_fallback_tui() {
674
718
  clear
675
719
  source "$KARNEL_PATH/utils/banner.sh"
720
+ render_banner
676
721
  while true; do
677
722
  echo
678
723
  box "◈ KARNEL TUI MENU ◈"
@@ -693,7 +738,7 @@ karnel_fallback_tui() {
693
738
  echo
694
739
 
695
740
  local choice
696
- read -p " Enter choice (1-11): " choice
741
+ read -r -p " Enter choice (1-11): " choice
697
742
 
698
743
  case "$choice" in
699
744
  1) karnel_main "brain" ;;
@@ -710,8 +755,9 @@ karnel_fallback_tui() {
710
755
  *) log_warn "Invalid option. Please try again." ;;
711
756
  esac
712
757
  echo
713
- read -p " Press Enter to return to menu..." temp
758
+ read -r -p " Press Enter to return to menu..." temp
714
759
  clear
715
760
  source "$KARNEL_PATH/utils/banner.sh"
761
+ render_banner
716
762
  done
717
763
  }
@@ -82,8 +82,13 @@ uninstall_ai() {
82
82
 
83
83
  log_info "Uninstalling AI tools..."
84
84
 
85
- _uninstall_ai_tools_wrapper
86
- log_success "AI tools uninstalled"
85
+ local rc=0
86
+ _uninstall_ai_tools_wrapper || rc=$?
87
+ if [ "$rc" -eq 0 ]; then
88
+ log_success "AI tools uninstalled"
89
+ else
90
+ log_warn "AI tools uninstalled with $rc failure(s)"
91
+ fi
87
92
  }
88
93
 
89
94
  _uninstall_ai_tools_wrapper() {
@@ -99,8 +104,13 @@ update_ai() {
99
104
 
100
105
  log_info "Updating AI tools..."
101
106
 
102
- _update_ai_tools_wrapper
103
- log_success "AI tools updated"
107
+ local rc=0
108
+ _update_ai_tools_wrapper || rc=$?
109
+ if [ "$rc" -eq 0 ]; then
110
+ log_success "AI tools updated"
111
+ else
112
+ log_warn "AI tools updated with $rc failure(s)"
113
+ fi
104
114
  }
105
115
 
106
116
  _update_ai_tools_wrapper() {
@@ -117,8 +127,9 @@ reinstall_ai() {
117
127
  log_info "Reinstalling AI tools..."
118
128
  echo
119
129
 
130
+ local rc=0
120
131
  import "@/tools/ai/all"
121
- reinstall_all_ai_tools
132
+ reinstall_all_ai_tools || rc=$?
122
133
  echo
123
134
  log_info "Reinstalled tools:"
124
135
  echo
@@ -130,6 +141,10 @@ reinstall_ai() {
130
141
  done
131
142
  echo
132
143
 
133
- log_success "AI tools reinstalled successfully"
144
+ if [ "$rc" -eq 0 ]; then
145
+ log_success "AI tools reinstalled successfully"
146
+ else
147
+ log_warn "AI tools reinstalled with $rc failure(s)"
148
+ fi
134
149
  echo
135
150
  }
@@ -29,6 +29,10 @@ _install_deploy_wrapper() {
29
29
  }
30
30
 
31
31
  uninstall_deploy() {
32
+ if ! command -v vercel &>/dev/null && ! command -v railway &>/dev/null && ! command -v netlify &>/dev/null; then
33
+ log_info "Deploy CLIs are not installed"
34
+ return 0
35
+ fi
32
36
  separator
33
37
  box "Uninstalling Deploy CLIs"
34
38
  separator
@@ -24,28 +24,7 @@ install_dev() {
24
24
  fi
25
25
  separator
26
26
  echo
27
- list_item "GitHub CLI"
28
- list_item "Wget"
29
- list_item "Curl"
30
- list_item "LSD (ls replacement)"
31
- list_item "Bat (cat replacement)"
32
- list_item "Proot (chroot alternative)"
33
- list_item "Ncurses Utils"
34
- list_item "Tmate (terminal sharing)"
35
- list_item "Cloudflared (Cloudflare Tunnel)"
36
- list_item "Translate Shell"
37
- list_item "html2text (HTML to text converter)"
38
- list_item "jq (JSON processor)"
39
- list_item "bc (calculator)"
40
- list_item "Tree (directory listing)"
41
- list_item "Fzf (fuzzy finder)"
42
- list_item "ImageMagick (image manipulation)"
43
- list_item "Shfmt (shell script formatter)"
44
- list_item "Make (build automation)"
45
- list_item "Udocker (container management)"
46
- list_item "Snyk (security scanner)"
47
- list_item "httptmux (interactive API client)"
48
- list_item "Zork (text adventure games I, II, III)"
27
+ _show_dev_summary
49
28
  echo
50
29
  }
51
30
 
@@ -122,33 +101,27 @@ reinstall_dev() {
122
101
  fi
123
102
  separator
124
103
  echo
125
- list_item "GitHub CLI"
126
- list_item "Wget"
127
- list_item "Curl"
128
- list_item "LSD (ls replacement)"
129
- list_item "Bat (cat replacement)"
130
- list_item "Proot (chroot alternative)"
131
- list_item "Ncurses Utils"
132
- list_item "Tmate (terminal sharing)"
133
- list_item "Cloudflared (Cloudflare Tunnel)"
134
- list_item "Translate Shell"
135
- list_item "html2text (HTML to text converter)"
136
- list_item "jq (JSON processor)"
137
- list_item "bc (calculator)"
138
- list_item "Tree (directory listing)"
139
- list_item "Fzf (fuzzy finder)"
140
- list_item "ImageMagick (image manipulation)"
141
- list_item "Shfmt (shell script formatter)"
142
- list_item "Make (build automation)"
143
- list_item "Udocker (container management)"
144
- list_item "Snyk (security scanner)"
145
- list_item "httptmux (interactive API client)"
146
- list_item "Zork (text adventure games I, II, III)"
147
- echo
104
+ _show_dev_summary
105
+ echo
148
106
  }
149
107
 
150
108
  _reinstall_dev_wrapper() {
151
109
  import "@/tools/dev/all"
152
110
  reinstall_all_dev
153
111
  return $?
154
- }
112
+ }
113
+
114
+ _show_dev_summary() {
115
+ local idx=0
116
+ for tool in "${TOOLS_PACKAGES[@]}"; do
117
+ local display="${TOOLS_DISPLAY[$idx]:-$tool}"
118
+ local result="${_INSTALL_RESULTS[$tool]:-}"
119
+ case "$result" in
120
+ 0) list_item_check success "$display" ;;
121
+ 2) list_item_check pending "$display" ;;
122
+ 1) list_item_check fail "$display" ;;
123
+ *) list_item "$display" ;;
124
+ esac
125
+ ((idx++))
126
+ done
127
+ }