Author SHA1 Message Date
arka-catalog-bot 895e1d116d chore(catalog): refresh 2026-10-09 2026-10-10 02:00:01 +03:00
arka-catalog-bot 2164ae776d chore(catalog): refresh 2026-10-08 2026-10-09 02:00:02 +03:00
arka-catalog-bot 0d3da375de chore(catalog): refresh 2026-10-07 2026-10-08 02:00:02 +03:00
arka-catalog-bot 5e1657904c chore(catalog): refresh 2026-10-06 2026-10-07 02:00:01 +03:00
arka-ops e640293f68 docs: bump public distro to 2026.10.7 2026-10-06 06:53:24 +00:00
arka-catalog-bot a17db8e395 chore(catalog): refresh 2026-10-05 2026-10-06 02:00:01 +03:00
ixoblakp eafb3b317d docs(multica): bump installer docs to 0.6.2-arka (available-model filter) 2026-10-05 09:03:38 +00:00
arka-catalog-bot 28b50aa0a1 chore(catalog): refresh 2026-10-04 2026-10-05 02:00:02 +03:00
ixoblakp 7144d7d703 feat(multica): publish fork Multica CLI installers (agent-arka support)
- multica/install.sh (Linux/macOS/WSL): downloads the fork-built multica
  CLI (0.6.1-arka, agent-arka runtime support) from arka/public releases,
  verifies SHA256, installs to /usr/local/bin or ~/.local/bin, PATH.
- multica/install.ps1 (Windows): same, installs to ~/.multica/bin.
- multica/README.md + root README table entry.
- Release multica-v0.6.1-arka hosts multica-cli-* tarballs/zip + checksums.
2026-10-04 15:21:02 +00:00
arka-catalog-bot 83731e3b50 chore(catalog): refresh 2026-10-03 2026-10-04 02:00:01 +03:00
arka-ops 091959e796 docs: bump public distro to 2026.10.5 2026-10-03 18:32:59 +00:00
arka-catalog-bot b0a33ad8b3 chore(catalog): refresh 2026-10-02 2026-10-03 02:00:02 +03:00
arka-ops 9bfc49c0dc docs: bump public distro to 2026.10.4 2026-10-02 12:41:10 +00:00
arka-ops dd7d62105a docs: bump public distro to 2026.10.3 2026-10-02 05:55:43 +00:00
arka-catalog-bot 297e85f632 chore(catalog): refresh 2026-10-01 2026-10-02 02:00:01 +03:00
arka-admin 6f3df355f3 docs: add Apple Silicon DMG to platforms table 2026-10-01 16:10:31 +03:00
arka-admin a7d9595984 docs: bump public distro to 2026.10.2 2026-10-01 12:30:20 +03:00
arka-admin 61ed068e37 docs: remove source-build section (source not public) 2026-10-01 11:53:44 +03:00
arka-catalog-bot 0f02e79398 chore(catalog): refresh 2026-09-30 2026-10-01 02:00:02 +03:00
ixoblakp 05141af8fe feat(install): handle updates — stop old daemon, back up, install new version
- detect installed version via --version; skip when already up to date
- stop the running daemon and keep agent-arka.previous rollback copy on upgrade/downgrade
2026-10-01 00:04:56 +03:00
ixoblakp 57e627bad0 fix(install): friendly bash guard instead of cryptic pipefail error under sh 2026-09-30 23:54:48 +03:00
arka-catalog-bot 5f838b7146 chore(catalog): refresh 2026-09-29 2026-09-30 02:00:01 +03:00
arka-catalog-bot 66c9938867 chore(catalog): refresh 2026-09-28 2026-09-29 02:00:02 +03:00
arka-catalog-bot 1d0fb30915 chore(catalog): refresh 2026-09-27 2026-09-28 02:00:01 +03:00
arka-catalog-bot e333963f0f chore(catalog): refresh 2026-09-26 2026-09-27 02:00:02 +03:00
arka-catalog-bot 8e4677d96d chore(catalog): refresh 2026-09-25 2026-09-26 02:00:02 +03:00
arka-catalog-bot 78f590667d chore(catalog): refresh 2026-09-24 2026-09-25 02:00:02 +03:00
arka-catalog-bot 7390c0b8e6 chore(catalog): refresh 2026-09-23 2026-09-24 02:00:02 +03:00
ixoblakp e68f3b7c6c docs: fix arka API key format (bare token, no sk- prefix) 2026-09-23 16:06:07 +03:00
arka-catalog-bot 22c9b7d36a chore(catalog): refresh 2026-09-22 2026-09-23 02:00:02 +03:00
arka-catalog-bot bc4f2e2293 chore(catalog): refresh 2026-09-21 2026-09-22 02:00:01 +03:00
arka-catalog-bot 75a21ac33b chore(catalog): refresh 2026-09-20 2026-09-21 02:00:02 +03:00
arka-catalog-bot 4223e7079d chore(catalog): refresh 2026-09-19 2026-09-20 02:00:01 +03:00
arka-catalog-bot a53a238b30 chore(catalog): refresh 2026-09-18 2026-09-19 02:00:01 +03:00
arka-catalog-bot 75601493bd chore(catalog): refresh 2026-09-17 2026-09-18 02:00:02 +03:00
arka-catalog-bot 8915650074 chore(catalog): refresh 2026-09-16 2026-09-17 02:00:02 +03:00
arka-catalog-bot 92b51b0e86 chore(catalog): refresh 2026-09-15 2026-09-16 02:00:02 +03:00
arka-catalog-bot ab225264bf chore(catalog): refresh 2026-09-14 2026-09-15 02:00:02 +03:00
arka-catalog-bot b7e235dab1 chore(catalog): refresh 2026-09-13 2026-09-14 02:00:02 +03:00
arka-catalog-bot dd2a9b8a3c chore(catalog): refresh 2026-09-12 2026-09-13 02:00:02 +03:00
arka-catalog-bot 6e4f2a831d chore(catalog): refresh 2026-09-11 2026-09-12 02:00:02 +03:00
ixoblakp a0d66325c9 docs: note pc162 Armbian aarch64 uses the linux-aarch64 installer
The PocketClaw host is sunxi64 Ubuntu 24.04; curl install.sh already selects that tarball.
2026-09-11 08:31:22 +03:00
ixoblakp 088de74389 docs: add Windows NSIS download for Agent Arka 2026.9.1
Point anonymous users at Agent Arka_*_x64-setup.exe on the public release, and keep the Linux/WSL curl installer as the web-dashboard path.
2026-09-11 07:12:10 +03:00
arka-catalog-bot 8d5b68125a chore(catalog): refresh 2026-09-10 2026-09-11 02:00:01 +03:00
arka-catalog-bot 28124fcfd6 chore(catalog): refresh 2026-09-09 2026-09-10 02:00:02 +03:00
arka-catalog-bot 150af949c5 chore(catalog): refresh 2026-09-08 2026-09-09 02:00:02 +03:00
arka-catalog-bot df3b0435cd chore(catalog): refresh 2026-09-07 2026-09-08 02:00:02 +03:00
arka-catalog-bot 034dcf4609 chore(catalog): refresh 2026-09-06 2026-09-07 02:00:01 +03:00
arka-catalog-bot 4cd800ce08 chore(catalog): refresh 2026-09-05 2026-09-06 02:00:01 +03:00
arka-catalog-bot f3b3fc6b6f chore(catalog): refresh 2026-09-04 2026-09-05 02:00:02 +03:00
arka-catalog-bot c762e152aa chore(catalog): refresh 2026-09-03 2026-09-04 02:00:02 +03:00
ixoblakp 23c2841119 fix(agent-arka): do not trip set -u in the installer EXIT trap 2026-09-03 10:03:35 +03:00
7 changed files with 583 additions and 109 deletions

No files matched your search

+18
View File
@@ -10,6 +10,7 @@
|-------|-----|
| [`agent-arka/`](agent-arka/) | Agent Arka: демон + **веб-дашборд** (`http://127.0.0.1:4545`), установщик и пакеты |
| [`opencode/`](opencode/) | Провайдер OpenCode **Arka-AI**: установщик, плагин, skill, каталог чат-моделей |
| [`multica/`](multica/) | **Multica fork CLI**: daemon c поддержкой agent-arka, установщик |
Agent Arka (веб-интерфейс), Linux / WSL:
@@ -17,6 +18,9 @@ Agent Arka (веб-интерфейс), Linux / WSL:
curl -fsSL https://git.arka-ai.ru/arka/public/raw/branch/main/agent-arka/install.sh | bash
```
Agent Arka (Windows desktop): скачайте `Agent Arka_*_x64-setup.exe` из [релизов](https://git.arka-ai.ru/arka/public/releases/tag/agent-arka-v2026.9.1).
Установщик не подписан — SmartScreen → «Подробнее» → «Выполнить в любом случае».
Подробности: [agent-arka/README.md](agent-arka/README.md).
OpenCode, macOS / Linux / WSL:
@@ -32,3 +36,17 @@ irm https://git.arka-ai.ru/arka/public/raw/branch/main/opencode/install-arka-pro
```
Подробности: [opencode/README.md](opencode/README.md) — Windows, Desktop, установка из чата OpenCode.
Multica fork CLI, macOS / Linux / WSL:
```bash
curl -fsSL https://git.arka-ai.ru/arka/public/raw/branch/main/multica/install.sh | bash
```
Multica fork CLI, Windows (PowerShell):
```powershell
irm https://git.arka-ai.ru/arka/public/raw/branch/main/multica/install.ps1 | iex
```
Подробности: [multica/README.md](multica/README.md).
+34 -21
View File
@@ -1,10 +1,11 @@
# Agent Arka — дистрибутив с веб-интерфейсом
# Agent Arka — дистрибутив с веб-интерфейсом и Windows desktop
Ставит CLI `agent-arka`, поднимает демон и открывает **веб-дашборд** на `http://127.0.0.1:4545`. Это не приложение Tauri (Dock / NSIS); это агент с браузерным UI.
На Linux / WSL ставит CLI `agent-arka`, поднимает демон и открывает **веб-дашборд** на `http://127.0.0.1:4545`.
На Windows — отдельный установщик NSIS (`Agent Arka_*_x64-setup.exe`): то же ядро и дашборд внутри окна Tauri.
Исходники приватны: [`arka/agent-arka`](https://git.arka-ai.ru/arka/agent-arka). Сборки и этот установщик публичные, без токена.
Версия пакета: **2026.9.1**.
Версия пакета: **2026.10.7**.
## Установка (Linux / WSL)
@@ -26,7 +27,7 @@ curl -fsSL https://git.arka-ai.ru/arka/public/raw/branch/main/agent-arka/install
```bash
curl -fsSL https://git.arka-ai.ru/arka/public/raw/branch/main/agent-arka/install.sh \
| AGENT_ARKA_VERSION=2026.9.1 bash
| AGENT_ARKA_VERSION=2026.10.7 bash
```
Не стартовать демон:
@@ -37,6 +38,8 @@ curl -fsSL https://git.arka-ai.ru/arka/public/raw/branch/main/agent-arka/install
agent-arka start
```
На **pc162** (Armbian aarch64, PocketClaw) та же команда: установщик сам берёт `linux-aarch64`.
## Что нужно
- `curl`, `tar`, `sha256sum` (Linux) или `shasum` (macOS)
@@ -45,19 +48,33 @@ agent-arka start
- Ключ API для моделей: [arka-ai.ru → API keys](https://arka-ai.ru). Один раз показывается секрет. В `~/.agent-arka/secrets.env` (или `~/.librefang/secrets.env`):
```
ARKA_API_KEY=sk-...
ARKA_API_KEY=ABCDEFGHIJKLMNOPQRSTUVWXYZ234567ABCDEFGHIJKL
```
Ключ — голый токен: заглавные A–Z и 0–9, ~40 символов, без префикса `sk-`.
После правки `secrets.env` перезапуск: `agent-arka restart`.
## Windows (desktop)
Скачайте `Agent Arka_*_x64-setup.exe` с [страницы релиза](https://git.arka-ai.ru/arka/public/releases/tag/agent-arka-v2026.10.7).
- Установщик **не подписан**. SmartScreen: «Подробнее» → «Выполнить в любом случае».
- При первой установке нужен интернет: подтягивается WebView2 Evergreen, если его ещё нет.
- Демон слушает `http://127.0.0.1:4545` внутри приложения.
Альтернатива на Windows — WSL (`wsl --install`) и команда Linux выше.
## Платформы
| Архив | Для кого |
|-------|----------|
| `agent-arka-*-linux-x86_64.tar.gz` | Linux / WSL, x86_64 (glibc ≥ 2.35) |
| `agent-arka-*-linux-aarch64.tar.gz` | Linux aarch64 (Orange Pi, PC162, Ampere; glibc ≥ 2.35) |
| `agent-arka-*-linux-aarch64.tar.gz` | Linux aarch64 — Armbian / pc162 (PocketClaw, sunxi64), Orange Pi, Ampere (glibc ≥ 2.35) |
| `Agent Arka_*_x64-setup.exe` | Windows 10/11 x64, desktop (NSIS) |
| `Agent Arka_*_aarch64.dmg` | macOS Apple Silicon (arm64), desktop |
macOS и Windows native в этом релизе **нет** (установщик на Darwin честно завершится с ошибкой скачивания). На Mac — Desktop DMG, когда он опубликован; на Windows — WSL (`wsl --install`) и команда Linux выше.
macOS — только Apple Silicon (arm64), в виде `Agent Arka_*_aarch64.dmg`. Интел (x86_64) версии нет. Установщик на Darwin из tarball завершится ошибкой скачивания — используйте DMG.
## Команды после установки
@@ -81,21 +98,11 @@ agent-arka doctor
Пароль вкладки Password — аварийный (`dashboard_user = operator`). Init печатает его один раз.
## Сборка из исходников (если нет пакета под вашу OS)
Репозиторий приватный. У кого есть доступ:
```bash
cargo install --git ssh://git@git.arka-ai.ru:4001/arka/agent-arka.git librefang-cli --bin agent-arka
agent-arka init --quick
agent-arka start
```
---
# Agent Arka — web UI distribution
# Agent Arka — web UI and Windows desktop
Installs the `agent-arka` CLI, starts the daemon, and serves the **browser dashboard** at `http://127.0.0.1:4545`. This is not the Tauri desktop app.
On Linux / WSL this installs the `agent-arka` CLI, starts the daemon, and serves the **browser dashboard** at `http://127.0.0.1:4545`.
```bash
curl -fsSL https://git.arka-ai.ru/arka/public/raw/branch/main/agent-arka/install.sh | bash
@@ -103,8 +110,14 @@ curl -fsSL https://git.arka-ai.ru/arka/public/raw/branch/main/agent-arka/install
Then open [http://127.0.0.1:4545](http://127.0.0.1:4545) and use **Arka AI** to sign in.
Pin a version with `AGENT_ARKA_VERSION=2026.9.1`. Skip autostart with `AGENT_ARKA_AUTO_START=0`.
On **pc162** (Armbian aarch64, PocketClaw) the same command fetches `linux-aarch64`.
On Windows, download `Agent Arka_*_x64-setup.exe` from <https://git.arka-ai.ru/arka/public/releases/tag/agent-arka-v2026.10.7>.
The installer is unsigned: SmartScreen → More info → Run anyway.
First install needs network for the WebView2 Evergreen bootstrapper.
Pin a version with `AGENT_ARKA_VERSION=2026.10.7`. Skip autostart with `AGENT_ARKA_AUTO_START=0`.
Put `ARKA_API_KEY` in `~/.agent-arka/secrets.env` (or `~/.librefang/secrets.env` if that home already exists). Create a key at [arka-ai.ru](https://arka-ai.ru).
Releases (tarballs + `SHA256SUMS`): <https://git.arka-ai.ru/arka/public/releases>
Releases (Linux tarballs, Windows NSIS, `SHA256SUMS`): <https://git.arka-ai.ru/arka/public/releases>
+61 -13
View File
@@ -11,6 +11,14 @@
# AGENT_ARKA_INIT 1 to run `agent-arka init --quick` when no config.toml exists (default: 1)
# LIBREFANG_* names for the same keys still work.
# Fail with a clear hint when piped into POSIX `sh` (dash) — this script needs
# bash (pipefail, [[ ]], indirect expansion). `curl … | bash`, not `| sh`.
if [ -z "${BASH_VERSION:-}" ]; then
echo "Agent Arka installer needs bash. Run:" >&2
echo " curl -fsSL https://git.arka-ai.ru/arka/public/raw/branch/main/agent-arka/install.sh | bash" >&2
exit 1
fi
set -euo pipefail
PUBLIC_API="${AGENT_ARKA_PUBLIC_API:-https://git.arka-ai.ru/api/v1}"
@@ -33,6 +41,10 @@ ok() { printf '%s✓%s %s\n' "$C_GREEN" "$C_RESET" "$*"; }
warn() { printf '%s⚠%s %s\n' "$C_YELLOW" "$C_RESET" "$*"; }
die() { printf '%s✗%s %s\n' "$C_RED" "$C_RESET" "$*" >&2; exit 1; }
_aa_tmp=""
cleanup() { [[ -n "${_aa_tmp:-}" ]] && rm -rf "$_aa_tmp"; }
trap cleanup EXIT
brand_env() {
local suffix="$1"
local new_name="AGENT_ARKA_${suffix}"
@@ -70,7 +82,7 @@ detect_platform() {
linux) PLATFORM="linux-${arch}" ;;
darwin) PLATFORM="darwin-${arch}" ;;
mingw*|msys*|cygwin*)
die "On Windows use WSL, then this installer, or wait for the Desktop NSIS build. PowerShell: wsl --install"
die "This curl installer is for Linux/WSL. On Windows download Agent Arka_*_x64-setup.exe from https://git.arka-ai.ru/arka/public/releases/tag/agent-arka-v2026.9.1 (SmartScreen: More info → Run anyway). Or install WSL and re-run: wsl --install"
;;
*) die "Unsupported OS: $os" ;;
esac
@@ -145,6 +157,19 @@ ensure_path() {
warn "Added ${bindir} to PATH in ${rc} (open a new shell, or: source ${rc})"
}
# Normalize a CalVer "YYYY.M.D" into a single sortable integer (YYYYMMDD pads).
ver_cmp_key() {
printf '%s' "$1" | awk -F. '{ printf "%04d%02d%02d", $1, $2, $3 }' 2>/dev/null || printf '%s' 0
}
# Installed version, or empty when there is no binary/detectable version.
installed_version() {
local bin="$1" out
[[ -x "$bin" ]] || return 1
out=$("$bin" --version 2>/dev/null | head -n 1) || return 1
printf '%s\n' "$out" | grep -oE '[0-9]{4}\.[0-9]+(\.[0-9]+)?' | tail -n 1
}
main() {
printf '%s\n' "${C_BOLD}Agent Arka${C_RESET} — web dashboard installer"
command -v curl >/dev/null 2>&1 || die "curl is required"
@@ -171,31 +196,54 @@ main() {
info "Latest: ${version}"
fi
# Update handling: detect an existing install and skip / stop / back it up.
local existing
existing=$(installed_version "${bindir}/agent-arka" 2>/dev/null || true)
if [[ -n "$existing" ]]; then
local ek tk
ek=$(ver_cmp_key "$existing")
tk=$(ver_cmp_key "$version")
if [[ "$ek" == "$tk" ]]; then
info "Already up to date: agent-arka ${existing} (target ${version})"
ensure_path "$bindir"
return 0
fi
if [[ "$ek" -gt "$tk" ]]; then
warn "Downgrading ${existing} -> ${version}"
else
info "Upgrading ${existing} -> ${version}"
fi
# Bring the running daemon down before replacing the binary.
if AGENT_ARKA_HOME="${HOME_DIR}" LIBREFANG_HOME="${HOME_DIR}" "${bindir}/agent-arka" stop >/dev/null 2>&1; then
ok "Stopped running agent-arka ${existing}"
fi
# Keep a rollback copy of the current binary.
cp -f "${bindir}/agent-arka" "${bindir}/agent-arka.previous" 2>/dev/null || true
fi
local tag="${TAG_PREFIX}${version}"
local asset="agent-arka-${version}-${PLATFORM}.tar.gz"
local url="${PUBLIC_DL}/${tag}/${asset}"
local sums_url="${PUBLIC_DL}/${tag}/SHA256SUMS"
local tmp
tmp=$(mktemp -d)
trap 'rm -rf "$tmp"' EXIT
_aa_tmp=$(mktemp -d)
info "Downloading ${asset}"
if ! curl -fL --retry 3 -o "${tmp}/${asset}" "$url"; then
if ! curl -fsSL --retry 3 -o "${_aa_tmp}/${asset}" "$url"; then
die "No package for ${PLATFORM} in ${tag}. See https://git.arka-ai.ru/arka/public/releases"
fi
curl -fsSL -o "${tmp}/SHA256SUMS" "$sums_url" || die "Missing SHA256SUMS for ${tag}"
curl -fsSL -o "${_aa_tmp}/SHA256SUMS" "$sums_url" || die "Missing SHA256SUMS for ${tag}"
local expected actual
expected=$(grep -E "[[:space:]]${asset}\$" "${tmp}/SHA256SUMS" | awk '{print $1}' | head -n 1)
expected=$(grep -E "[[:space:]]${asset}\$" "${_aa_tmp}/SHA256SUMS" | awk '{print $1}' | head -n 1)
[[ -n "$expected" ]] || die "SHA256SUMS has no entry for ${asset}"
actual=$(sha256_file "${tmp}/${asset}")
actual=$(sha256_file "${_aa_tmp}/${asset}")
[[ "$expected" == "$actual" ]] || die "SHA256 mismatch for ${asset} (got ${actual}, want ${expected})"
ok "Checksum ok"
tar -xzf "${tmp}/${asset}" -C "$tmp"
[[ -f "${tmp}/agent-arka" ]] || die "Archive did not contain agent-arka"
chmod 755 "${tmp}/agent-arka"
"${tmp}/agent-arka" --version >/dev/null || die "Downloaded binary failed to run on this host"
cp -f "${tmp}/agent-arka" "${bindir}/agent-arka"
tar -xzf "${_aa_tmp}/${asset}" -C "$_aa_tmp"
[[ -f "${_aa_tmp}/agent-arka" ]] || die "Archive did not contain agent-arka"
chmod 755 "${_aa_tmp}/agent-arka"
"${_aa_tmp}/agent-arka" --version >/dev/null || die "Downloaded binary failed to run on this host"
cp -f "${_aa_tmp}/agent-arka" "${bindir}/agent-arka"
ln -sfn agent-arka "${bindir}/librefang"
ok "Installed ${bindir}/agent-arka ($("${bindir}/agent-arka" --version 2>/dev/null | head -n 1))"
+59
View File
@@ -0,0 +1,59 @@
# Multica fork CLI (Arka)
Кастомный билд CLI Multica от Arka: поддержка **agent-arka** runtime (провайдер
`agent-arka` на `plan.arka-ai.ru`), Arka SSO, русская локализация. Скачивается
из публичных релизов этого репозитория; токен не нужен.
## Установка
macOS / Linux / WSL:
```bash
curl -fsSL https://git.arka-ai.ru/arka/public/raw/branch/main/multica/install.sh | bash
```
Windows (PowerShell):
```powershell
irm https://git.arka-ai.ru/arka/public/raw/branch/main/multica/install.ps1 | iex
```
Бинарь ставится в `/usr/local/bin` (или `~/.local/bin`), на Windows — в
`~\.multica\bin`, и добавляется в `PATH`.
## Подключение к серверу
```bash
multica setup self-host \
--server-url https://plan.arka-ai.ru \
--app-url https://plan.arka-ai.ru
```
Команда настроит CLI, откроет браузер для входа и запустит daemon.
## Проверка
```bash
multica version # 0.6.2-arka
multica daemon status # running; агенты включают agent-arka
```
Проверить, что бинарь умеет agent-arka:
```bash
multica daemon probe-runtimes
# provider_summary должен содержать "agent-arka"
```
## Пин версии
```bash
MULTICA_VERSION=0.6.2-arka curl -fsSL .../multica/install.sh | bash
```
## Релизы
Бинари публикуются в [релизах](https://git.arka-ai.ru/arka/public/releases/tag/multica-v0.6.2-arka):
`multica-cli-<version>-linux-{amd64,arm64}.tar.gz`,
`multica-cli-<version>-darwin-{amd64,arm64}.tar.gz`,
`multica-cli-<version>-windows-amd64.zip`, `checksums.txt`.
+133
View File
@@ -0,0 +1,133 @@
# Multica fork CLI — Windows installer
#
# Installs the fork-built `multica.exe` CLI (with agent-arka runtime support,
# Arka SSO, Russian i18n) from arka/public releases.
#
# irm https://git.arka-ai.ru/arka/public/raw/branch/main/multica/install.ps1 | iex
#
# Environment:
# $env:MULTICA_VERSION pin a release (e.g. 0.6.1-arka). Default: newest multica-v* on git.arka-ai.ru/arka/public
$ErrorActionPreference = "Stop"
$PublicApi = if ($env:MULTICA_PUBLIC_API) { $env:MULTICA_PUBLIC_API } else { "https://git.arka-ai.ru/api/v1" }
$PublicDl = if ($env:MULTICA_PUBLIC_DL) { $env:MULTICA_PUBLIC_DL } else { "https://git.arka-ai.ru/arka/public/releases/download" }
$Repo = "arka/public"
$TagPrefix = "multica-v"
$BinDir = Join-Path $env:USERPROFILE ".multica\bin"
function Write-Info { Write-Host "==> $args" -ForegroundColor Cyan }
function Write-Ok { Write-Host "OK $args" -ForegroundColor Green }
function Write-Warn { Write-Host "WARN $args" -ForegroundColor Yellow }
function Write-Fail { Write-Host "FAIL $args" -ForegroundColor Red; exit 1 }
function Get-WindowsCliArch {
$arch = $env:PROCESSOR_ARCHITECTURE
if ($arch -eq "AMD64" -or $arch -eq "x86_64") { return "amd64" }
if ($arch -eq "ARM64") { return "arm64" }
Write-Fail "Unsupported architecture: $arch"
}
function Get-LatestMulticaVersion {
$url = "$PublicApi/repos/$Repo/releases?limit=50"
try {
$releases = Invoke-RestMethod -Uri $url -UseBasicParsing -ErrorAction Stop
} catch {
Write-Fail "Cannot list releases at $url : $_"
}
$tags = $releases | Where-Object { $_.tag_name -like "$TagPrefix*" } | ForEach-Object { $_.tag_name }
if (-not $tags) { Write-Fail "No ${TagPrefix}* releases on $Repo yet" }
$latest = $tags | Sort-Object -Descending | Select-Object -First 1
return $latest.Substring($TagPrefix.Length)
}
function Add-ToUserPath {
param([string]$Dir)
$currentPath = [Environment]::GetEnvironmentVariable("Path", "User")
if ($currentPath -and $currentPath.Split(";") -contains $Dir) { return }
$newPath = if ($currentPath) { "$currentPath;$Dir" } else { $Dir }
[Environment]::SetEnvironmentVariable("Path", $newPath, "User")
if ($env:Path -notlike "*$Dir*") {
$env:Path = "$Dir;$env:Path"
}
Write-Ok "Added $Dir to user PATH"
}
if (-not [Environment]::Is64BitOperatingSystem) {
Write-Fail "Multica requires a 64-bit Windows installation."
}
$arch = Get-WindowsCliArch
$version = if ($env:MULTICA_VERSION) { $env:MULTICA_VERSION.TrimStart("v").TrimStart($TagPrefix) } else { Get-LatestMulticaVersion }
Write-Info "Installing Multica fork CLI ${version} (windows-$arch)..."
$asset = "multica-cli-$version-windows-$arch.zip"
$url = "$PublicDl/$TagPrefix$version/$asset"
$tmpDir = Join-Path ([System.IO.Path]::GetTempPath()) "multica-install"
if (Test-Path $tmpDir) { Remove-Item $tmpDir -Recurse -Force }
New-Item -ItemType Directory -Path $tmpDir | Out-Null
Write-Info "Downloading $url ..."
try {
Invoke-WebRequest -Uri $url -OutFile (Join-Path $tmpDir "multica.zip") -UseBasicParsing
} catch {
Remove-Item $tmpDir -Recurse -Force
Write-Fail "Failed to download CLI binary: $_"
}
# Verify SHA256 checksum
$checksumUrl = "$PublicDl/$TagPrefix$version/checksums.txt"
try {
$checksums = Invoke-WebRequest -Uri $checksumUrl -UseBasicParsing -ErrorAction Stop
$checksumContent = if ($checksums.Content -is [byte[]]) {
[System.Text.Encoding]::UTF8.GetString($checksums.Content)
} else {
[string]$checksums.Content
}
$zipFile = Join-Path $tmpDir "multica.zip"
$actualHash = (Get-FileHash -Path $zipFile -Algorithm SHA256).Hash.ToLower()
$expectedLine = ($checksumContent -split "`r?`n") | Where-Object { $_ -match [regex]::Escape($asset) } | Select-Object -First 1
if ($expectedLine) {
$expectedHash = ($expectedLine -split "\s+")[0].ToLower()
if ($actualHash -ne $expectedHash) {
Remove-Item $tmpDir -Recurse -Force
Write-Fail "Checksum verification failed. Expected: $expectedHash, Got: $actualHash"
}
Write-Ok "Checksum verified"
} else {
Write-Warn "Could not find checksum entry for $asset - skipping verification."
}
} catch {
Write-Warn "Could not download checksums.txt - skipping verification."
}
Expand-Archive -Path (Join-Path $tmpDir "multica.zip") -DestinationPath $tmpDir -Force
if (-not (Test-Path $BinDir)) {
New-Item -ItemType Directory -Path $BinDir -Force | Out-Null
}
$exeSrc = Join-Path $tmpDir "multica.exe"
if (-not (Test-Path $exeSrc)) {
$exeSrc = Get-ChildItem -Path $tmpDir -Filter "multica.exe" -Recurse | Select-Object -First 1 -ExpandProperty FullName
}
if (-not $exeSrc -or -not (Test-Path $exeSrc)) {
Remove-Item $tmpDir -Recurse -Force
Write-Fail "multica.exe not found in downloaded archive."
}
Copy-Item $exeSrc (Join-Path $BinDir "multica.exe") -Force
Remove-Item $tmpDir -Recurse -Force
Add-ToUserPath $BinDir
Write-Ok "Multica CLI installed to $BinDir\multica.exe"
Write-Host ""
Write-Host " Next — connect to your Multica server:"
Write-Host " multica setup self-host"
Write-Host " Or for this instance:"
Write-Host " multica setup self-host --server-url https://plan.arka-ai.ru --app-url https://plan.arka-ai.ru"
Write-Host ""
+175
View File
@@ -0,0 +1,175 @@
#!/usr/bin/env bash
# Multica fork CLI — installer (Linux / macOS / WSL).
#
# Installs the fork-built `multica` CLI (with agent-arka runtime support, Arka
# SSO, Russian i18n) from arka/public releases.
#
# curl -fsSL https://git.arka-ai.ru/arka/public/raw/branch/main/multica/install.sh | bash
#
# Environment:
# MULTICA_VERSION pin a release (e.g. 0.6.1-arka). Default: newest multica-v* on git.arka-ai.ru/arka/public
# MULTICA_BIN_DIR install dir (default: /usr/local/bin, else ~/.local/bin)
# NO_COLOR 1 to disable color output
if [ -z "${BASH_VERSION:-}" ]; then
echo "The Multica installer needs bash. Run:" >&2
echo " curl -fsSL https://git.arka-ai.ru/arka/public/raw/branch/main/multica/install.sh | bash" >&2
exit 1
fi
set -euo pipefail
PUBLIC_API="${MULTICA_PUBLIC_API:-https://git.arka-ai.ru/api/v1}"
PUBLIC_DL="${MULTICA_PUBLIC_DL:-https://git.arka-ai.ru/arka/public/releases/download}"
REPO="arka/public"
TAG_PREFIX="multica-v"
if [[ -t 1 && -z "${NO_COLOR:-}" ]]; then
C_GREEN=$'\033[32m'; C_YELLOW=$'\033[33m'; C_RED=$'\033[31m'; C_BOLD=$'\033[1m'; C_RESET=$'\033[0m'
else
C_GREEN=''; C_YELLOW=''; C_RED=''; C_BOLD=''; C_RESET=''
fi
info() { printf '%s\n' "$*"; }
ok() { printf '%s✓%s %s\n' "$C_GREEN" "$C_RESET" "$*"; }
warn() { printf '%s⚠%s %s\n' "$C_YELLOW" "$C_RESET" "$*"; }
die() { printf '%s✗%s %s\n' "$C_RED" "$C_RESET" "$*" >&2; exit 1; }
_mc_tmp=""
cleanup() { [[ -n "${_mc_tmp:-}" ]] && rm -rf "$_mc_tmp"; }
trap cleanup EXIT
detect_platform() {
local os arch
os=$(uname -s | tr '[:upper:]' '[:lower:]')
arch=$(uname -m)
case "$arch" in
x86_64|amd64) arch="amd64" ;;
aarch64|arm64) arch="arm64" ;;
*) die "Unsupported architecture: $arch" ;;
esac
case "$os" in
linux) PLATFORM="linux-${arch}" ;;
darwin) PLATFORM="darwin-${arch}" ;;
mingw*|msys*|cygwin*)
die "This curl installer is for Linux/macOS/WSL. On Windows run the PowerShell installer instead:"$'\n'" irm https://git.arka-ai.ru/arka/public/raw/branch/main/multica/install.ps1 | iex"
;;
*) die "Unsupported OS: $os" ;;
esac
}
fetch_latest_version() {
local json tags
json=$(curl -fsSL "${PUBLIC_API}/repos/${REPO}/releases?limit=50") || die "Cannot list releases at ${PUBLIC_API}/repos/${REPO}/releases"
tags=$(printf '%s' "$json" | grep -oE '"tag_name":[[:space:]]*"'"${TAG_PREFIX}"'[^"]+"' | sed 's/.*"'"${TAG_PREFIX}"'//;s/"$//' || true)
if [[ -z "$tags" ]]; then
die "No ${TAG_PREFIX}* releases on ${REPO} yet"
fi
printf '%s\n' "$tags" | head -n 1
}
sha256_file() {
if command -v sha256sum >/dev/null 2>&1; then
sha256sum "$1" | awk '{print $1}'
elif command -v shasum >/dev/null 2>&1; then
shasum -a 256 "$1" | awk '{print $1}'
else
die "Need sha256sum or shasum"
fi
}
ensure_path() {
local bindir="$1"
case ":$PATH:" in
*":${bindir}:"*) return 0 ;;
esac
local line="export PATH=\"${bindir}:\$PATH\""
local rc
for rc in "${HOME}/.zprofile" "${HOME}/.zshrc" "${HOME}/.bash_profile" "${HOME}/.bashrc" "${HOME}/.profile"; do
[[ -f "$rc" ]] || continue
if grep -Fqs "$bindir" "$rc"; then
return 0
fi
done
if [[ -n "${SHELL:-}" && "${SHELL}" == *zsh* ]]; then
rc="${HOME}/.zshrc"
else
rc="${HOME}/.bashrc"
[[ -f "$rc" ]] || rc="${HOME}/.profile"
fi
printf '\n# Multica CLI\n%s\n' "$line" >>"$rc"
warn "Added ${bindir} to PATH in ${rc} (open a new shell, or: source ${rc})"
}
main() {
printf '%s\n' "${C_BOLD}Multica${C_RESET} — fork CLI installer (agent-arka support)"
command -v curl >/dev/null 2>&1 || die "curl is required"
command -v tar >/dev/null 2>&1 || die "tar is required"
detect_platform
local version
if [[ -n "${MULTICA_VERSION:-}" ]]; then
version="${MULTICA_VERSION#v}"
version="${version#multica-v}"
info "Using pinned version ${version}"
else
info "Resolving latest Multica release…"
version=$(fetch_latest_version)
info "Latest: ${version}"
fi
local asset="multica-cli-${version}-${PLATFORM}.tar.gz"
local url="${PUBLIC_DL}/${TAG_PREFIX}${version}/${asset}"
_mc_tmp=$(mktemp -d)
info "Downloading ${url} ..."
curl -fsSL "$url" -o "$_mc_tmp/multica.tar.gz" || die "Failed to download ${asset}"
info "Verifying checksum …"
local expected actual
expected=$(curl -fsSL "${PUBLIC_DL}/${TAG_PREFIX}${version}/checksums.txt" | awk -v a="$asset" '$2==a {print $1; exit}' 2>/dev/null || true)
actual=$(sha256_file "$_mc_tmp/multica.tar.gz")
if [[ -n "$expected" ]]; then
if [[ "$expected" != "$actual" ]]; then
die "Checksum mismatch for ${asset}: expected ${expected}, got ${actual}"
fi
ok "Checksum verified"
else
warn "No checksum entry for ${asset}; skipping verification"
fi
tar -xzf "$_mc_tmp/multica.tar.gz" -C "$_mc_tmp" multica || die "Failed to extract multica"
local bindir
if [[ -n "${MULTICA_BIN_DIR:-}" ]]; then
bindir="${MULTICA_BIN_DIR}"
elif [[ -w /usr/local/bin ]]; then
bindir="/usr/local/bin"
elif command -v sudo >/dev/null 2>&1; then
bindir="/usr/local/bin"
else
bindir="${HOME}/.local/bin"
fi
mkdir -p "$bindir"
if [[ ! -w "$bindir" ]]; then
sudo mv "$_mc_tmp/multica" "$bindir/multica" || die "Cannot write to ${bindir}"
else
mv "$_mc_tmp/multica" "$bindir/multica"
fi
chmod +x "$bindir/multica"
ensure_path "$bindir"
ok "Multica CLI ${version} installed to ${bindir}/multica"
rm -rf "$_mc_tmp"; _mc_tmp=""
printf '\n'
printf ' Next — connect to your Multica server:\n'
printf ' multica setup self-host\n'
printf ' Or for this instance:\n'
printf ' multica setup self-host --server-url https://plan.arka-ai.ru --app-url https://plan.arka-ai.ru\n'
printf '\n'
}
main "$@"
+103 -75
View File
@@ -1,14 +1,22 @@
{
"updated_at": "2026-09-02T23:00:02Z",
"updated_at": "2026-10-09T23:00:01Z",
"source": "https://api.arka-ai.ru/v1/models",
"raw_count": 216,
"chat_count": 116,
"raw_count": 230,
"chat_count": 123,
"object": "list",
"data": [
{
"id": "ACE-Step-v1-3.5B",
"object": "model"
},
{
"id": "APUS-OpenJev-v1-4B",
"object": "model"
},
{
"id": "APUS-OpenJev-v1-9B",
"object": "model"
},
{
"id": "Align-DS-V",
"object": "model"
@@ -17,16 +25,20 @@
"id": "AnimeSharp",
"object": "model"
},
{
"id": "Atria-Dawn-Preview",
"object": "model"
},
{
"id": "AutoGLM-Phone-9B-Multilingual",
"object": "model"
},
{
"id": "DeepSeek-Prover-V2-7B",
"id": "Bespoke-Nimble-9B",
"object": "model"
},
{
"id": "DeepSeek-R1",
"id": "DeepSeek-Prover-V2-7B",
"object": "model"
},
{
@@ -45,32 +57,20 @@
"id": "DeepSeek-R1-Distill-Qwen-7B",
"object": "model"
},
{
"id": "DeepSeek-V3",
"object": "model"
},
{
"id": "DeepSeek-V3.2",
"object": "model"
},
{
"id": "DeepSeek-V3_1",
"object": "model"
},
{
"id": "DeepSeek-V3_1-Terminus",
"object": "model"
},
{
"id": "DeepSeek-V4-Pro",
"object": "model"
},
{
"id": "DeepSeek-V4-Pro-0813",
"object": "model"
},
{
"id": "DianJin-R1-32B",
"object": "model"
},
{
"id": "Duix.Heygem",
"id": "Duix-Avatar",
"object": "model"
},
{
@@ -85,10 +85,6 @@
"id": "ERNIE-5.0-Thinking",
"object": "model"
},
{
"id": "ERNIE-X1-Turbo",
"object": "model"
},
{
"id": "Fin-R1",
"object": "model"
@@ -101,30 +97,10 @@
"id": "GLM-4-9B-0414",
"object": "model"
},
{
"id": "GLM-4.6",
"object": "model"
},
{
"id": "GLM-4.7",
"object": "model"
},
{
"id": "GLM-4.7-Flash",
"object": "model"
},
{
"id": "GLM-4_5",
"object": "model"
},
{
"id": "GLM-4_5-Air",
"object": "model"
},
{
"id": "GLM-4_5V",
"object": "model"
},
{
"id": "GLM-5",
"object": "model"
@@ -141,6 +117,14 @@
"id": "GLM-5.3",
"object": "model"
},
{
"id": "GLM-5.3-Flash",
"object": "model"
},
{
"id": "GigaAM-v3",
"object": "model"
},
{
"id": "HY-MT1.5-7B",
"object": "model"
@@ -173,6 +157,14 @@
"id": "InfiniteTalk",
"object": "model"
},
{
"id": "Intern-Decision-4B",
"object": "model"
},
{
"id": "Intern-S2",
"object": "model"
},
{
"id": "InternVL2-8B",
"object": "model"
@@ -225,6 +217,10 @@
"id": "MinerU2.5-Pro",
"object": "model"
},
{
"id": "MiniMax-H3",
"object": "model"
},
{
"id": "MiniMax-M2.1",
"object": "model"
@@ -241,6 +237,10 @@
"id": "MiniMax-M3",
"object": "model"
},
{
"id": "NeoHorse-Jev-4B",
"object": "model"
},
{
"id": "PDF-Extract-Kit-1.0",
"object": "model"
@@ -273,14 +273,6 @@
"id": "Qwen3-0.6B",
"object": "model"
},
{
"id": "Qwen3-14B",
"object": "model"
},
{
"id": "Qwen3-30B-A3B-Instruct-2507",
"object": "model"
},
{
"id": "Qwen3-32B",
"object": "model"
@@ -333,14 +325,6 @@
"id": "Qwen3-VL-32B-Thinking",
"object": "model"
},
{
"id": "Qwen3-VL-4B-Instruct",
"object": "model"
},
{
"id": "Qwen3-VL-8B-Instruct",
"object": "model"
},
{
"id": "Qwen3-VL-8B-Thinking",
"object": "model"
@@ -353,14 +337,6 @@
"id": "Qwen3.5-27B",
"object": "model"
},
{
"id": "Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled",
"object": "model"
},
{
"id": "Qwen3.5-9B",
"object": "model"
},
{
"id": "Qwen3.5-Flash",
"object": "model"
@@ -381,10 +357,6 @@
"id": "Qwen3.6-Flash",
"object": "model"
},
{
"id": "Qwen3.6-Max",
"object": "model"
},
{
"id": "Qwen3.6-Plus",
"object": "model"
@@ -397,6 +369,10 @@
"id": "Qwen3.7-Plus",
"object": "model"
},
{
"id": "Qwen3.8-Omni-Flash",
"object": "model"
},
{
"id": "Qwen3Guard-Gen-0.6B",
"object": "model"
@@ -413,6 +389,10 @@
"id": "SeedVR2-3B",
"object": "model"
},
{
"id": "SemIf-OpenJev-4B",
"object": "model"
},
{
"id": "Sinong1.0-32B",
"object": "model"
@@ -437,6 +417,10 @@
"id": "deepseek-v4-flash-0731",
"object": "model"
},
{
"id": "deepseek-v4.1-flash",
"object": "model"
},
{
"id": "gemma-4-26B-A4B-it",
"object": "model"
@@ -446,7 +430,7 @@
"object": "model"
},
{
"id": "gpt-oss-120b",
"id": "gui-plus-2026-02-26",
"object": "model"
},
{
@@ -461,13 +445,57 @@
"id": "kimi-k3",
"object": "model"
},
{
"id": "laya-multilingual",
"object": "model"
},
{
"id": "nonescape-v0",
"object": "model"
},
{
"id": "qwen-flash",
"object": "model"
},
{
"id": "qwen-max",
"object": "model"
},
{
"id": "qwen-plus-2025-12-01",
"object": "model"
},
{
"id": "qwen3-coder-plus",
"object": "model"
},
{
"id": "qwen3-vl-plus",
"object": "model"
},
{
"id": "qwen3.8-27b",
"object": "model"
},
{
"id": "qwen3.8-flash",
"object": "model"
},
{
"id": "qwen3.8-max",
"object": "model"
},
{
"id": "qwen3.8-max-0902",
"object": "model"
},
{
"id": "tongyi-xiaomi-analysis-flash",
"object": "model"
},
{
"id": "tongyi-xiaomi-analysis-pro",
"object": "model"
}
]
}