omni-catalyst 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +1137 -0
- package/core/bin/core +85 -0
- package/core/bin/omni +21 -0
- package/core/cli/commands/--version.sh +8 -0
- package/core/cli/commands/brain.sh +1549 -0
- package/core/cli/commands/doctor.sh +834 -0
- package/core/cli/commands/env.sh +226 -0
- package/core/cli/commands/init.sh +1266 -0
- package/core/cli/commands/install.sh +759 -0
- package/core/cli/commands/list.sh +397 -0
- package/core/cli/commands/open.sh +71 -0
- package/core/cli/commands/pg.sh +761 -0
- package/core/cli/commands/reinstall.sh +694 -0
- package/core/cli/commands/show.sh +90 -0
- package/core/cli/commands/uninstall.sh +700 -0
- package/core/cli/commands/update.sh +754 -0
- package/core/cli/commands/voice.sh +170 -0
- package/core/cli/core.sh +82 -0
- package/core/cli/omni.sh +634 -0
- package/core/modules/ai.sh +152 -0
- package/core/modules/auto.sh +90 -0
- package/core/modules/db.sh +94 -0
- package/core/modules/deploy.sh +50 -0
- package/core/modules/dev.sh +126 -0
- package/core/modules/editor.sh +101 -0
- package/core/modules/lang.sh +100 -0
- package/core/modules/npm.sh +122 -0
- package/core/modules/shell.sh +312 -0
- package/core/modules/ui.sh +115 -0
- package/core/tools/ai/all.sh +63 -0
- package/core/tools/ai/antigravity-cli/README.md +45 -0
- package/core/tools/ai/antigravity-cli/bin/agy +28 -0
- package/core/tools/ai/antigravity-cli/helper/agy_helper.c +39 -0
- package/core/tools/ai/antigravity-cli/install.sh +469 -0
- package/core/tools/ai/claude-code/README.md +45 -0
- package/core/tools/ai/claude-code/bin/claude +29 -0
- package/core/tools/ai/claude-code/helper/claude_helper.c +42 -0
- package/core/tools/ai/claude-code/install.sh +278 -0
- package/core/tools/ai/codegraph/README.md +43 -0
- package/core/tools/ai/codegraph/bin/codegraph +3 -0
- package/core/tools/ai/codegraph/install.sh +149 -0
- package/core/tools/ai/codex/README.md +44 -0
- package/core/tools/ai/codex/install.sh +104 -0
- package/core/tools/ai/command-code/README.md +62 -0
- package/core/tools/ai/command-code/install.sh +136 -0
- package/core/tools/ai/engram/README.md +44 -0
- package/core/tools/ai/engram/install.sh +127 -0
- package/core/tools/ai/freebuff/README.md +52 -0
- package/core/tools/ai/freebuff/bin/freebuff +28 -0
- package/core/tools/ai/freebuff/helper/freebuff_helper.c +47 -0
- package/core/tools/ai/freebuff/install.sh +301 -0
- package/core/tools/ai/gemini-cli/README.md +46 -0
- package/core/tools/ai/gemini-cli/install.sh +111 -0
- package/core/tools/ai/gentle-ai/README.md +42 -0
- package/core/tools/ai/gentle-ai/install.sh +253 -0
- package/core/tools/ai/gentle-ai/termux-patches.go +256 -0
- package/core/tools/ai/gga/README.md +49 -0
- package/core/tools/ai/gga/install.sh +134 -0
- package/core/tools/ai/hermes-agent/README.md +50 -0
- package/core/tools/ai/hermes-agent/install.sh +80 -0
- package/core/tools/ai/heygen/README.md +24 -0
- package/core/tools/ai/heygen/install.sh +126 -0
- package/core/tools/ai/kilocode-cli/README.md +45 -0
- package/core/tools/ai/kilocode-cli/bin/kilocode +21 -0
- package/core/tools/ai/kilocode-cli/helper/kilocode_helper.c +47 -0
- package/core/tools/ai/kilocode-cli/install.sh +179 -0
- package/core/tools/ai/kimchi-code/README.md +8 -0
- package/core/tools/ai/kimchi-code/install.sh +120 -0
- package/core/tools/ai/kimi-code/README.md +45 -0
- package/core/tools/ai/kimi-code/install.sh +111 -0
- package/core/tools/ai/kiro-cli/README.md +23 -0
- package/core/tools/ai/kiro-cli/install.sh +127 -0
- package/core/tools/ai/mimocode/README.md +43 -0
- package/core/tools/ai/mimocode/bin/mimo +28 -0
- package/core/tools/ai/mimocode/helper/mimocode_helper.c +47 -0
- package/core/tools/ai/mimocode/install.sh +287 -0
- package/core/tools/ai/minimax-cli/README.md +45 -0
- package/core/tools/ai/minimax-cli/install.sh +111 -0
- package/core/tools/ai/mistral-vibe/README.md +46 -0
- package/core/tools/ai/mistral-vibe/install.sh +119 -0
- package/core/tools/ai/odysseus/README.md +35 -0
- package/core/tools/ai/odysseus/install.sh +163 -0
- package/core/tools/ai/ollama/README.md +44 -0
- package/core/tools/ai/ollama/install.sh +78 -0
- package/core/tools/ai/openclaude/README.md +46 -0
- package/core/tools/ai/openclaude/install.sh +110 -0
- package/core/tools/ai/openclaw/README.md +47 -0
- package/core/tools/ai/openclaw/install.sh +112 -0
- package/core/tools/ai/opencode/README.md +51 -0
- package/core/tools/ai/opencode/bin/opencode +28 -0
- package/core/tools/ai/opencode/helper/opencode_helper.c +57 -0
- package/core/tools/ai/opencode/install.sh +290 -0
- package/core/tools/ai/pi/README.md +46 -0
- package/core/tools/ai/pi/install.sh +104 -0
- package/core/tools/ai/qwen-code/README.md +45 -0
- package/core/tools/ai/qwen-code/install.sh +111 -0
- package/core/tools/ai/seedance/README.md +22 -0
- package/core/tools/ai/seedance/install.sh +134 -0
- package/core/tools/ai/veo3/README.md +36 -0
- package/core/tools/ai/veo3/install.sh +151 -0
- package/core/tools/auto/all.sh +57 -0
- package/core/tools/auto/n8n/README.md +47 -0
- package/core/tools/auto/n8n/install.sh +102 -0
- package/core/tools/db/all.sh +60 -0
- package/core/tools/db/mariadb/README.md +43 -0
- package/core/tools/db/mariadb/install.sh +65 -0
- package/core/tools/db/mongodb/README.md +42 -0
- package/core/tools/db/mongodb/install.sh +73 -0
- package/core/tools/db/postgresql/README.md +45 -0
- package/core/tools/db/postgresql/install.sh +65 -0
- package/core/tools/db/sqlite/README.md +44 -0
- package/core/tools/db/sqlite/install.sh +65 -0
- package/core/tools/deploy/all.sh +39 -0
- package/core/tools/deploy/netlify/install.sh +41 -0
- package/core/tools/deploy/railway/install.sh +47 -0
- package/core/tools/deploy/vercel/install.sh +43 -0
- package/core/tools/dev/all.sh +75 -0
- package/core/tools/dev/bat/README.md +44 -0
- package/core/tools/dev/bat/install.sh +82 -0
- package/core/tools/dev/bc/README.md +44 -0
- package/core/tools/dev/bc/install.sh +82 -0
- package/core/tools/dev/cloudflared/README.md +43 -0
- package/core/tools/dev/cloudflared/install.sh +82 -0
- package/core/tools/dev/curl/README.md +43 -0
- package/core/tools/dev/curl/install.sh +82 -0
- package/core/tools/dev/fzf/README.md +44 -0
- package/core/tools/dev/fzf/install.sh +82 -0
- package/core/tools/dev/gh/README.md +43 -0
- package/core/tools/dev/gh/install.sh +82 -0
- package/core/tools/dev/html2text/README.md +44 -0
- package/core/tools/dev/html2text/install.sh +82 -0
- package/core/tools/dev/imagemagick/README.md +44 -0
- package/core/tools/dev/imagemagick/install.sh +82 -0
- package/core/tools/dev/jq/README.md +44 -0
- package/core/tools/dev/jq/install.sh +82 -0
- package/core/tools/dev/lsd/README.md +44 -0
- package/core/tools/dev/lsd/install.sh +82 -0
- package/core/tools/dev/make/README.md +44 -0
- package/core/tools/dev/make/install.sh +82 -0
- package/core/tools/dev/ncurses/README.md +42 -0
- package/core/tools/dev/ncurses/install.sh +82 -0
- package/core/tools/dev/proot/README.md +43 -0
- package/core/tools/dev/proot/install.sh +82 -0
- package/core/tools/dev/shfmt/README.md +44 -0
- package/core/tools/dev/shfmt/install.sh +82 -0
- package/core/tools/dev/tmate/README.md +44 -0
- package/core/tools/dev/tmate/install.sh +82 -0
- package/core/tools/dev/translate/README.md +44 -0
- package/core/tools/dev/translate/install.sh +82 -0
- package/core/tools/dev/tree/README.md +44 -0
- package/core/tools/dev/tree/install.sh +82 -0
- package/core/tools/dev/udocker/README.md +44 -0
- package/core/tools/dev/udocker/install.sh +82 -0
- package/core/tools/dev/wget/README.md +44 -0
- package/core/tools/dev/wget/install.sh +82 -0
- package/core/tools/editor/all.sh +58 -0
- package/core/tools/editor/neovim/README.md +43 -0
- package/core/tools/editor/neovim/install.sh +66 -0
- package/core/tools/editor/nvchad/README.md +45 -0
- package/core/tools/editor/nvchad/install.sh +110 -0
- package/core/tools/lang/all.sh +63 -0
- package/core/tools/lang/clang/README.md +43 -0
- package/core/tools/lang/clang/install.sh +79 -0
- package/core/tools/lang/golang/README.md +43 -0
- package/core/tools/lang/golang/install.sh +79 -0
- package/core/tools/lang/nodejs/README.md +43 -0
- package/core/tools/lang/nodejs/install.sh +79 -0
- package/core/tools/lang/perl/README.md +43 -0
- package/core/tools/lang/perl/install.sh +79 -0
- package/core/tools/lang/php/README.md +43 -0
- package/core/tools/lang/php/install.sh +79 -0
- package/core/tools/lang/python/README.md +43 -0
- package/core/tools/lang/python/install.sh +79 -0
- package/core/tools/lang/rust/README.md +43 -0
- package/core/tools/lang/rust/install.sh +79 -0
- package/core/tools/npm/all.sh +67 -0
- package/core/tools/npm/live-server/README.md +43 -0
- package/core/tools/npm/live-server/install.sh +95 -0
- package/core/tools/npm/localtunnel/README.md +43 -0
- package/core/tools/npm/localtunnel/install.sh +111 -0
- package/core/tools/npm/markserv/README.md +43 -0
- package/core/tools/npm/markserv/install.sh +94 -0
- package/core/tools/npm/ncu/README.md +43 -0
- package/core/tools/npm/ncu/install.sh +94 -0
- package/core/tools/npm/nestjs/README.md +43 -0
- package/core/tools/npm/nestjs/install.sh +94 -0
- package/core/tools/npm/ngrok/README.md +44 -0
- package/core/tools/npm/ngrok/install.sh +94 -0
- package/core/tools/npm/prettier/README.md +43 -0
- package/core/tools/npm/prettier/install.sh +94 -0
- package/core/tools/npm/psqlformat/README.md +43 -0
- package/core/tools/npm/psqlformat/install.sh +94 -0
- package/core/tools/npm/turbopack/README.md +8 -0
- package/core/tools/npm/turbopack/install.sh +41 -0
- package/core/tools/npm/typescript/README.md +43 -0
- package/core/tools/npm/typescript/install.sh +94 -0
- package/core/tools/npm/vercel/README.md +43 -0
- package/core/tools/npm/vercel/install.sh +94 -0
- package/core/tools/shell/all.sh +67 -0
- package/core/tools/shell/better-npm/README.md +43 -0
- package/core/tools/shell/better-npm/install.sh +85 -0
- package/core/tools/shell/fzf-tab/README.md +44 -0
- package/core/tools/shell/fzf-tab/install.sh +85 -0
- package/core/tools/shell/history-substring/README.md +43 -0
- package/core/tools/shell/history-substring/install.sh +85 -0
- package/core/tools/shell/powerlevel10k/README.md +43 -0
- package/core/tools/shell/powerlevel10k/install.sh +85 -0
- package/core/tools/shell/you-should-use/README.md +43 -0
- package/core/tools/shell/you-should-use/install.sh +85 -0
- package/core/tools/shell/zsh-autopair/README.md +44 -0
- package/core/tools/shell/zsh-autopair/install.sh +85 -0
- package/core/tools/shell/zsh-autosuggestions/README.md +43 -0
- package/core/tools/shell/zsh-autosuggestions/install.sh +85 -0
- package/core/tools/shell/zsh-completions/README.md +43 -0
- package/core/tools/shell/zsh-completions/install.sh +85 -0
- package/core/tools/shell/zsh-defer/README.md +43 -0
- package/core/tools/shell/zsh-defer/install.sh +85 -0
- package/core/tools/shell/zsh-syntax-highlighting/README.md +43 -0
- package/core/tools/shell/zsh-syntax-highlighting/install.sh +72 -0
- package/core/tools/ui/all.sh +61 -0
- package/core/tools/ui/banner/README.md +42 -0
- package/core/tools/ui/banner/install.sh +151 -0
- package/core/tools/ui/cursor/README.md +42 -0
- package/core/tools/ui/cursor/install.sh +58 -0
- package/core/tools/ui/extra-keys/README.md +43 -0
- package/core/tools/ui/extra-keys/install.sh +62 -0
- package/core/tools/ui/font/README.md +43 -0
- package/core/tools/ui/font/install.sh +63 -0
- package/core/utils/banner.sh +519 -0
- package/core/utils/bootstrap.sh +25 -0
- package/core/utils/colors.sh +31 -0
- package/core/utils/dialogrc +30 -0
- package/core/utils/env.sh +53 -0
- package/core/utils/log.sh +598 -0
- package/install.sh +272 -0
- package/package.json +43 -0
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
import "@/utils/log"
|
|
4
|
+
import "@/utils/colors"
|
|
5
|
+
|
|
6
|
+
LOG_FILE="$OMNI_CACHE/install_ai.log"
|
|
7
|
+
ODYSSEUS_DATA_DIR="$HOME/.local/share/omni-data/odysseus"
|
|
8
|
+
|
|
9
|
+
_odysseus_dependencies() {
|
|
10
|
+
loading "Installing dependencies" _odysseus_dependencies_impl
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
_odysseus_dependencies_impl() {
|
|
14
|
+
declare -A DEPS=(
|
|
15
|
+
["git"]="git"
|
|
16
|
+
["curl"]="curl"
|
|
17
|
+
["proot-distro"]="proot-distro"
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
local pkg_name bin_name
|
|
21
|
+
for pkg_name in "${!DEPS[@]}"; do
|
|
22
|
+
bin_name="${DEPS[$pkg_name]}"
|
|
23
|
+
if ! command -v "$bin_name" &>/dev/null; then
|
|
24
|
+
if ! pkg install "$pkg_name" -y &>>"$LOG_FILE"; then
|
|
25
|
+
log_error "Failed to install $pkg_name"
|
|
26
|
+
return 1
|
|
27
|
+
fi
|
|
28
|
+
fi
|
|
29
|
+
done
|
|
30
|
+
|
|
31
|
+
return 0
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
_odysseus_detect_ubuntu_root() {
|
|
35
|
+
local root
|
|
36
|
+
root="$(find /data/data/com.termux -maxdepth 10 -type d \
|
|
37
|
+
-name "rootfs" -path "*/containers/ubuntu/*" 2>/dev/null | head -1)"
|
|
38
|
+
|
|
39
|
+
if [ -z "$root" ]; then
|
|
40
|
+
root="$(find /data/data/com.termux -maxdepth 10 -type d \
|
|
41
|
+
-name "ubuntu" -path "*/installed-rootfs/*" 2>/dev/null | head -1)"
|
|
42
|
+
fi
|
|
43
|
+
|
|
44
|
+
echo "$root"
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
_odysseus_proot_ubuntu() {
|
|
48
|
+
proot-distro login \
|
|
49
|
+
--shared-tmp \
|
|
50
|
+
ubuntu \
|
|
51
|
+
-- "$@"
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
_install_odysseus_impl() {
|
|
55
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
56
|
+
|
|
57
|
+
if ! command -v proot-distro &>/dev/null; then
|
|
58
|
+
pkg install proot-distro -y &>>"$LOG_FILE"
|
|
59
|
+
fi
|
|
60
|
+
|
|
61
|
+
if [ ! -d "$(_odysseus_detect_ubuntu_root)" ]; then
|
|
62
|
+
proot-distro install ubuntu:24.04 &>>"$LOG_FILE"
|
|
63
|
+
fi
|
|
64
|
+
|
|
65
|
+
_odysseus_proot_ubuntu /bin/bash -c '
|
|
66
|
+
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
|
67
|
+
export DEBIAN_FRONTEND=noninteractive
|
|
68
|
+
|
|
69
|
+
apt-get update -qq && apt-get upgrade -y -qq && apt-get install -y -qq curl git python3-pip
|
|
70
|
+
|
|
71
|
+
python3 -m pip install --break-system-packages \
|
|
72
|
+
fastapi uvicorn python-multipart python-dotenv httpx pydantic pydantic-settings \
|
|
73
|
+
mcp bcrypt sqlalchemy aiosqlite jinja2 aiofiles python-dateutil \
|
|
74
|
+
pyotp qrcode croniter pypdf beautifulsoup4 charset-normalizer \
|
|
75
|
+
numpy chromadb-client fastembed youtube-transcript-api markdown \
|
|
76
|
+
nh3 icalendar caldav pytest pytest-asyncio
|
|
77
|
+
' &>>"$LOG_FILE"
|
|
78
|
+
|
|
79
|
+
_odysseus_proot_ubuntu /bin/bash -c '
|
|
80
|
+
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
|
81
|
+
|
|
82
|
+
if [ ! -d /root/odysseus ]; then
|
|
83
|
+
git clone --depth 1 https://github.com/pewdiepie-archdaemon/odysseus.git /root/odysseus
|
|
84
|
+
fi
|
|
85
|
+
|
|
86
|
+
cd /root/odysseus
|
|
87
|
+
if [ -f requirements.txt ]; then
|
|
88
|
+
python3 -m pip install --break-system-packages -r requirements.txt 2>&1
|
|
89
|
+
fi
|
|
90
|
+
' &>>"$LOG_FILE"
|
|
91
|
+
|
|
92
|
+
local ubuntu_root
|
|
93
|
+
ubuntu_root="$(_odysseus_detect_ubuntu_root)"
|
|
94
|
+
|
|
95
|
+
if [ -z "$ubuntu_root" ]; then
|
|
96
|
+
log_error "Ubuntu rootfs not found"
|
|
97
|
+
return 1
|
|
98
|
+
fi
|
|
99
|
+
|
|
100
|
+
local wrapper_path="$PREFIX/bin/odysseus"
|
|
101
|
+
cat > "$wrapper_path" << WRAPPER
|
|
102
|
+
#!$PREFIX/bin/bash
|
|
103
|
+
exec proot-distro login --shared-tmp ubuntu -- bash -c 'cd /root/odysseus && exec python3 app.py "\$@"' bash "\$@"
|
|
104
|
+
WRAPPER
|
|
105
|
+
chmod +x "$wrapper_path"
|
|
106
|
+
|
|
107
|
+
log_success "Odysseus installed (proot-distro)"
|
|
108
|
+
echo
|
|
109
|
+
log_info "Start with: ${D_CYAN}odysseus${NC}"
|
|
110
|
+
log_info "Web UI at: ${D_CYAN}http://localhost:7000${NC}"
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
install_odysseus() {
|
|
114
|
+
if command -v odysseus &>/dev/null || [ -d "$ODYSSEUS_DATA_DIR/repo" ]; then
|
|
115
|
+
log_info "Odysseus is already installed"
|
|
116
|
+
return 2
|
|
117
|
+
fi
|
|
118
|
+
|
|
119
|
+
log_info "Installing Odysseus..."
|
|
120
|
+
|
|
121
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
122
|
+
|
|
123
|
+
_odysseus_dependencies || return 1
|
|
124
|
+
|
|
125
|
+
log_info "Installing via proot-distro Ubuntu (Docker not available on Termux)..."
|
|
126
|
+
_install_odysseus_impl
|
|
127
|
+
|
|
128
|
+
log_success "Odysseus installed successfully"
|
|
129
|
+
return 0
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
uninstall_odysseus() {
|
|
133
|
+
log_info "Uninstalling Odysseus..."
|
|
134
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
135
|
+
|
|
136
|
+
if [ -f "$PREFIX/bin/odysseus" ]; then
|
|
137
|
+
rm -f "$PREFIX/bin/odysseus"
|
|
138
|
+
fi
|
|
139
|
+
|
|
140
|
+
if [ -d "$ODYSSEUS_DATA_DIR" ]; then
|
|
141
|
+
rm -rf "$ODYSSEUS_DATA_DIR"
|
|
142
|
+
fi
|
|
143
|
+
|
|
144
|
+
log_success "Odysseus uninstalled"
|
|
145
|
+
return 0
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
update_odysseus() {
|
|
149
|
+
log_info "Updating Odysseus..."
|
|
150
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
151
|
+
|
|
152
|
+
_odysseus_proot_ubuntu /bin/bash -c '
|
|
153
|
+
cd /root/odysseus && git pull
|
|
154
|
+
' &>>"$LOG_FILE" && log_success "Odysseus updated" || {
|
|
155
|
+
log_error "Failed to update Odysseus"
|
|
156
|
+
return 1
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
reinstall_odysseus() {
|
|
161
|
+
uninstall_odysseus
|
|
162
|
+
install_odysseus
|
|
163
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Ollama
|
|
2
|
+
|
|
3
|
+
Run open-source LLMs locally on Termux
|
|
4
|
+
|
|
5
|
+
**Package:** ollama
|
|
6
|
+
**Author:** israel676767
|
|
7
|
+
**Repository:** https://github.com/israel676767/omni
|
|
8
|
+
**Official:** https://ollama.com
|
|
9
|
+
**Type:** Local LLM runtime (pkg)
|
|
10
|
+
**License:** MIT
|
|
11
|
+
|
|
12
|
+
## Description
|
|
13
|
+
|
|
14
|
+
Ollama allows you to run open-source LLMs locally on Termux. It supports a wide range of models including Llama, Mistral, Gemma, Qwen, DeepSeek, and many more. All processing is done locally with no data sent to external servers.
|
|
15
|
+
|
|
16
|
+
## Dependencies
|
|
17
|
+
|
|
18
|
+
- Installed via pkg (termux package)
|
|
19
|
+
|
|
20
|
+
## Install
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
core install ai --ollama
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Uninstall
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
core uninstall ai --ollama
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Update
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
core update ai --ollama
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Notes
|
|
39
|
+
|
|
40
|
+
- Runs entirely locally on your device
|
|
41
|
+
- Supports models from Ollama library
|
|
42
|
+
- Command: `ollama`
|
|
43
|
+
- Model storage: `~/.ollama/`
|
|
44
|
+
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
import "@/utils/log"
|
|
4
|
+
|
|
5
|
+
LOG_FILE="$OMNI_CACHE/install_ai.log"
|
|
6
|
+
|
|
7
|
+
_install_ollama_pkg() {
|
|
8
|
+
loading "Installing Ollama" _install_ollama_pkg_impl
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
_install_ollama_pkg_impl() {
|
|
12
|
+
if ! pkg install ollama -y &>>"$LOG_FILE"; then
|
|
13
|
+
log_error "Failed to install Ollama"
|
|
14
|
+
return 1
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
return 0
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
install_ollama() {
|
|
21
|
+
if command -v ollama &>/dev/null; then
|
|
22
|
+
log_info "Ollama is already installed"
|
|
23
|
+
return 2
|
|
24
|
+
fi
|
|
25
|
+
log_info "Installing Ollama..."
|
|
26
|
+
|
|
27
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
28
|
+
|
|
29
|
+
_install_ollama_pkg || return 1
|
|
30
|
+
|
|
31
|
+
log_success "Ollama installed"
|
|
32
|
+
return 0
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
uninstall_ollama() {
|
|
36
|
+
if ! command -v ollama &>/dev/null; then
|
|
37
|
+
log_info "Ollama is not installed"
|
|
38
|
+
return 2
|
|
39
|
+
fi
|
|
40
|
+
log_info "Uninstalling Ollama..."
|
|
41
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
42
|
+
|
|
43
|
+
loading "Removing Ollama" _uninstall_ollama_impl
|
|
44
|
+
|
|
45
|
+
log_success "Ollama uninstalled"
|
|
46
|
+
return 0
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
_uninstall_ollama_impl() {
|
|
50
|
+
if ! pkg uninstall ollama -y &>>"$LOG_FILE"; then
|
|
51
|
+
log_error "Failed to uninstall Ollama"
|
|
52
|
+
return 1
|
|
53
|
+
fi
|
|
54
|
+
return 0
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
update_ollama() {
|
|
58
|
+
log_info "Updating Ollama..."
|
|
59
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
60
|
+
|
|
61
|
+
loading "Updating Ollama" _update_ollama_impl
|
|
62
|
+
|
|
63
|
+
log_success "Ollama updated"
|
|
64
|
+
return 0
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
_update_ollama_impl() {
|
|
68
|
+
if ! pkg upgrade ollama -y &>>"$LOG_FILE"; then
|
|
69
|
+
log_error "Failed to update Ollama"
|
|
70
|
+
return 1
|
|
71
|
+
fi
|
|
72
|
+
return 0
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
reinstall_ollama() {
|
|
76
|
+
uninstall_ollama
|
|
77
|
+
install_ollama
|
|
78
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# OpenClaude
|
|
2
|
+
|
|
3
|
+
Open source Claude Code alternative
|
|
4
|
+
|
|
5
|
+
**Package:** @gitlawb/openclaude
|
|
6
|
+
**Author:** israel676767
|
|
7
|
+
**Repository:** https://github.com/israel676767/omni
|
|
8
|
+
**Official:** https://github.com/gitlawb/openclaude
|
|
9
|
+
**Type:** AI client (npm global package)
|
|
10
|
+
**License:** MIT
|
|
11
|
+
|
|
12
|
+
## Description
|
|
13
|
+
|
|
14
|
+
OpenClaude is an open source Claude Code alternative. It provides a CLI interface for code generation, analysis, and AI assistance.
|
|
15
|
+
|
|
16
|
+
## Dependencies
|
|
17
|
+
|
|
18
|
+
- Node.js LTS (nodejs-lts)
|
|
19
|
+
- npm
|
|
20
|
+
- git, ripgrep
|
|
21
|
+
|
|
22
|
+
## Install
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
core install ai --openclaude
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Uninstall
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
core uninstall ai --openclaude
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Update
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
core update ai --openclaude
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Notes
|
|
41
|
+
|
|
42
|
+
- Installed as a global npm package: `@gitlawb/openclaude`
|
|
43
|
+
- Command: `openclaude`
|
|
44
|
+
- Requires an Anthropic API key
|
|
45
|
+
- Environment variable: `ANTHROPIC_API_KEY`
|
|
46
|
+
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
import "@/utils/log"
|
|
4
|
+
|
|
5
|
+
LOG_FILE="$OMNI_CACHE/install_ai.log"
|
|
6
|
+
|
|
7
|
+
_openclaude_dependencies() {
|
|
8
|
+
loading "Installing dependencies" _openclaude_dependencies_impl
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
_openclaude_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_openclaude_npm() {
|
|
33
|
+
loading "Installing OpenClaude" _install_openclaude_npm_impl
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
_install_openclaude_npm_impl() {
|
|
37
|
+
export GYP_DEFINES="android_ndk_path=''"
|
|
38
|
+
export ANDROID_API_LEVEL=24
|
|
39
|
+
|
|
40
|
+
if ! npm install -g @gitlawb/openclaude &>>"$LOG_FILE"; then
|
|
41
|
+
log_error "Failed to install OpenClaude"
|
|
42
|
+
return 1
|
|
43
|
+
fi
|
|
44
|
+
|
|
45
|
+
return 0
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
install_openclaude() {
|
|
49
|
+
if command -v openclaude &>/dev/null; then
|
|
50
|
+
log_info "OpenClaude is already installed"
|
|
51
|
+
return 2
|
|
52
|
+
fi
|
|
53
|
+
log_info "Installing OpenClaude..."
|
|
54
|
+
|
|
55
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
56
|
+
|
|
57
|
+
_openclaude_dependencies || return 1
|
|
58
|
+
_install_openclaude_npm || return 1
|
|
59
|
+
|
|
60
|
+
log_success "OpenClaude installed"
|
|
61
|
+
return 0
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
uninstall_openclaude() {
|
|
65
|
+
if ! command -v openclaude &>/dev/null; then
|
|
66
|
+
log_info "OpenClaude is not installed"
|
|
67
|
+
return 2
|
|
68
|
+
fi
|
|
69
|
+
log_info "Uninstalling OpenClaude..."
|
|
70
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
71
|
+
|
|
72
|
+
loading "Removing OpenClaude" _uninstall_openclaude_impl
|
|
73
|
+
|
|
74
|
+
log_success "OpenClaude uninstalled"
|
|
75
|
+
return 0
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
_uninstall_openclaude_impl() {
|
|
79
|
+
if ! npm uninstall -g @gitlawb/openclaude &>>"$LOG_FILE"; then
|
|
80
|
+
log_error "Failed to uninstall OpenClaude"
|
|
81
|
+
return 1
|
|
82
|
+
fi
|
|
83
|
+
return 0
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
update_openclaude() {
|
|
87
|
+
log_info "Updating OpenClaude..."
|
|
88
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
89
|
+
|
|
90
|
+
loading "Updating OpenClaude" _update_openclaude_impl
|
|
91
|
+
|
|
92
|
+
log_success "OpenClaude updated"
|
|
93
|
+
return 0
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
_update_openclaude_impl() {
|
|
97
|
+
export GYP_DEFINES="android_ndk_path=''"
|
|
98
|
+
export ANDROID_API_LEVEL=24
|
|
99
|
+
|
|
100
|
+
if ! npm update -g @gitlawb/openclaude &>>"$LOG_FILE"; then
|
|
101
|
+
log_error "Failed to update OpenClaude"
|
|
102
|
+
return 1
|
|
103
|
+
fi
|
|
104
|
+
return 0
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
reinstall_openclaude() {
|
|
108
|
+
uninstall_openclaude
|
|
109
|
+
install_openclaude
|
|
110
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# OpenClaw
|
|
2
|
+
|
|
3
|
+
Personal AI Assistant
|
|
4
|
+
|
|
5
|
+
**Package:** openclaw
|
|
6
|
+
**Author:** israel676767
|
|
7
|
+
**Repository:** https://github.com/israel676767/omni
|
|
8
|
+
**Official:** https://github.com/openclaw/openclaw
|
|
9
|
+
**Type:** AI assistant aggregator (npm global package)
|
|
10
|
+
**License:** MIT
|
|
11
|
+
|
|
12
|
+
## Description
|
|
13
|
+
|
|
14
|
+
OpenClaw is a Personal AI Assistant. It provides a unified interface for interacting with AI services from your terminal.
|
|
15
|
+
|
|
16
|
+
## Dependencies
|
|
17
|
+
|
|
18
|
+
- Node.js LTS (nodejs-lts)
|
|
19
|
+
- npm
|
|
20
|
+
- git, ripgrep
|
|
21
|
+
- Additional npm packages: @larksuiteoapi/node-sdk, nostr-tools, @slack/web-api, @whiskeysockets/baileys
|
|
22
|
+
|
|
23
|
+
## Install
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
core install ai --openclaw
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Uninstall
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
core uninstall ai --openclaw
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Update
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
core update ai --openclaw
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Notes
|
|
42
|
+
|
|
43
|
+
- Installed as a global npm package: `openclaw`
|
|
44
|
+
- Command: `openclaw`
|
|
45
|
+
- Installs companion SDK packages for multi-platform support
|
|
46
|
+
- Requires configuration for each platform
|
|
47
|
+
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
import "@/utils/log"
|
|
4
|
+
|
|
5
|
+
LOG_FILE="$OMNI_CACHE/install_ai.log"
|
|
6
|
+
|
|
7
|
+
_openclaw_dependencies() {
|
|
8
|
+
loading "Installing dependencies" _openclaw_dependencies_impl
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
_openclaw_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_openclaw_npm() {
|
|
33
|
+
loading "Installing OpenClaw and dependencies" _install_openclaw_npm_impl
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
_install_openclaw_npm_impl() {
|
|
37
|
+
export GYP_DEFINES="android_ndk_path=''"
|
|
38
|
+
export ANDROID_API_LEVEL=24
|
|
39
|
+
|
|
40
|
+
npm install -g @larksuiteoapi/node-sdk nostr-tools @slack/web-api @whiskeysockets/baileys &>>"$LOG_FILE"
|
|
41
|
+
|
|
42
|
+
if ! npm install -g openclaw@latest &>>"$LOG_FILE"; then
|
|
43
|
+
log_error "Failed to install OpenClaw"
|
|
44
|
+
return 1
|
|
45
|
+
fi
|
|
46
|
+
|
|
47
|
+
return 0
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
install_openclaw() {
|
|
51
|
+
if command -v openclaw &>/dev/null; then
|
|
52
|
+
log_info "OpenClaw is already installed"
|
|
53
|
+
return 2
|
|
54
|
+
fi
|
|
55
|
+
log_info "Installing OpenClaw..."
|
|
56
|
+
|
|
57
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
58
|
+
|
|
59
|
+
_openclaw_dependencies || return 1
|
|
60
|
+
_install_openclaw_npm || return 1
|
|
61
|
+
|
|
62
|
+
log_success "OpenClaw installed"
|
|
63
|
+
return 0
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
uninstall_openclaw() {
|
|
67
|
+
if ! command -v openclaw &>/dev/null; then
|
|
68
|
+
log_info "OpenClaw is not installed"
|
|
69
|
+
return 2
|
|
70
|
+
fi
|
|
71
|
+
log_info "Uninstalling OpenClaw..."
|
|
72
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
73
|
+
|
|
74
|
+
loading "Removing OpenClaw" _uninstall_openclaw_impl
|
|
75
|
+
|
|
76
|
+
log_success "OpenClaw uninstalled"
|
|
77
|
+
return 0
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
_uninstall_openclaw_impl() {
|
|
81
|
+
if ! npm uninstall -g openclaw @larksuiteoapi/node-sdk nostr-tools @slack/web-api @whiskeysockets/baileys &>>"$LOG_FILE"; then
|
|
82
|
+
log_error "Failed to uninstall OpenClaw"
|
|
83
|
+
return 1
|
|
84
|
+
fi
|
|
85
|
+
return 0
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
update_openclaw() {
|
|
89
|
+
log_info "Updating OpenClaw..."
|
|
90
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
91
|
+
|
|
92
|
+
loading "Updating OpenClaw" _update_openclaw_impl
|
|
93
|
+
|
|
94
|
+
log_success "OpenClaw updated"
|
|
95
|
+
return 0
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
_update_openclaw_impl() {
|
|
99
|
+
export GYP_DEFINES="android_ndk_path=''"
|
|
100
|
+
export ANDROID_API_LEVEL=24
|
|
101
|
+
|
|
102
|
+
if ! npm update -g openclaw @larksuiteoapi/node-sdk nostr-tools @slack/web-api @whiskeysockets/baileys &>>"$LOG_FILE"; then
|
|
103
|
+
log_error "Failed to update OpenClaw"
|
|
104
|
+
return 1
|
|
105
|
+
fi
|
|
106
|
+
return 0
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
reinstall_openclaw() {
|
|
110
|
+
uninstall_openclaw
|
|
111
|
+
install_openclaw
|
|
112
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# OpenCode
|
|
2
|
+
|
|
3
|
+
Open-source agent that helps you write code in your terminal
|
|
4
|
+
|
|
5
|
+
**Package:** opencode
|
|
6
|
+
**Author:** israel676767
|
|
7
|
+
**Repository:** https://github.com/israel676767/omni
|
|
8
|
+
**Official:** https://github.com/anomalyco/opencode
|
|
9
|
+
**Type:** AI coding agent (Binary + glibc bootstrapper)
|
|
10
|
+
**License:** MIT
|
|
11
|
+
|
|
12
|
+
## Description
|
|
13
|
+
|
|
14
|
+
OpenCode is an AI-powered coding agent developed by anomalyco that operates directly in your terminal. It provides intelligent code completion, refactoring suggestions, and natural language code generation. Omni Catalyst offers two installation methods: native with glibc support for best performance, or via proot-distro Ubuntu container for maximum compatibility.
|
|
15
|
+
|
|
16
|
+
## Dependencies
|
|
17
|
+
|
|
18
|
+
- **Native mode:** glibc-repo, glibc, clang, git, ripgrep, python, jq, nodejs-lts, curl, tar
|
|
19
|
+
- **Proot mode:** proot-distro, curl, ca-certificates
|
|
20
|
+
|
|
21
|
+
## Install
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
core install ai --opencode
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
You will be prompted to choose:
|
|
28
|
+
|
|
29
|
+
1. **Native (recommended)** — Compiles a glibc bootstrapper and downloads the latest OpenCode binary from GitHub releases
|
|
30
|
+
2. **Proot-distro (alternative)** — Runs OpenCode inside an Ubuntu proot-distro container
|
|
31
|
+
|
|
32
|
+
## Uninstall
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
core uninstall ai --opencode
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Update
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
core update ai --opencode
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Notes
|
|
45
|
+
|
|
46
|
+
- **Native mode** requires `glibc-repo`, `glibc`, `clang`, and other dependencies (installed automatically)
|
|
47
|
+
- The native binary is stored in `~/.local/share/omni-data/opencode/`
|
|
48
|
+
- A small C bootstrapper (`opencode_helper.c`) handles ELF loading via the glibc dynamic linker
|
|
49
|
+
- **Proot mode** uses `proot-distro ubuntu` and installs via the official opencode.ai installer
|
|
50
|
+
- Data directory: `~/.local/share/omni-data/opencode/`
|
|
51
|
+
|
|
@@ -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/.opencode:/root/.opencode" \
|
|
26
|
+
--work-dir $PWD \
|
|
27
|
+
ubuntu \
|
|
28
|
+
-- /root/.opencode/bin/opencode "$@"
|