Перейти к содержанию

Windows

Portable-бандл для Windows поставляется как zip для x64. Установка — per-user: без административных прав, без службы Windows и без записи в системные каталоги. Автозапуск — опционально, через Task Scheduler.

Поддерживаемые системы

Версия Архитектура Артефакт
Windows 10 x64 synth-<version>-win-x64.zip
Windows 11 x64 synth-<version>-win-x64.zip

Поддерживаются только standalone и hybrid режимы. Managed-развёртывание (backend + UI в Kubernetes) выполняется на Linux — см. Контейнеры и Helm.

Проверка разрядности в PowerShell:

[Environment]::Is64BitOperatingSystem
$env:PROCESSOR_ARCHITECTURE

Ожидается True и AMD64.

Распаковка и проверка

Get-FileHash .\synth-<version>-win-x64.zip -Algorithm SHA256

Сверьте хеш с SHA256SUMS — подробно в Проверке SHA256. Затем распакуйте в пользовательский каталог:

# Распакуйте в рабочий каталог (не в Program Files): из него запускается install.ps1.
Expand-Archive -Path .\synth-<version>-win-x64.zip `
  -DestinationPath "$env:LOCALAPPDATA\Programs" -Force
cd "$env:LOCALAPPDATA\Programs\synth-<version>-win-x64"

Верхнеуровневый каталог в архиве

В архиве есть каталог synth-<version>-win-x64 — это корень бандла. Установщик копирует его в %LOCALAPPDATA%\Programs\Synth\<version>; вручную раскладывать файлы не нужно.

Запуск после установки:

& "$env:LOCALAPPDATA\Programs\Synth\bin\synth.cmd" --version
& "$env:LOCALAPPDATA\Programs\Synth\bin\synth.cmd" serve --home "$env:LOCALAPPDATA\Synth"

Сервер слушает 127.0.0.1:4300. Если ключ не задан, он будет создан в каталоге данных и напечатан при старте. Ключ вводится в интерфейсе.

Установка

В бандл входит install.ps1 — запускайте его от своего пользователя, без «Запуска от имени администратора»:

powershell -ExecutionPolicy Bypass -File .\install.ps1
# автозапуск при входе (Scheduled Task, не служба):
powershell -ExecutionPolicy Bypass -File .\install.ps1 -Autostart

Установщик раскладывает приложение в %LOCALAPPDATA%\Programs\Synth\<version> (+ junction current), данные — в %LOCALAPPDATA%\Synth, launcher — в %LOCALAPPDATA%\Programs\Synth\bin\synth.cmd. Если установщик не используется, достаточно распаковать архив и запускать bin\synth.cmd из корня бандла — приложение не требует регистрации в системе.

Никакой службы Windows

Synth не устанавливает службу (LocalSystem/NetworkService) и не требует записи в Program Files, ProgramData или реестр HKLM. Всё живёт в профиле пользователя. Это ограничивает запуск до входа пользователя в систему — для серверного сценария используйте Linux.

Git for Windows

Git for Windows не входит в бандл. Скачайте офлайн-инсталлятор на машине с доступом к сети и перенесите его в контур:

Установите Git per-user (без admin), затем перезапустите Synth, чтобы git попал в PATH:

git --version

Матрица возможностей

Возможность Без Git for Windows С Git for Windows
Интерфейс, чат, сессии Работает Работает
Файлы: чтение/запись, grep_files, glob Работает (rg входит в бандл) Работает
execute_shell Деградирует: нет POSIX-shell Работает через shell из Git for Windows
Git-инструменты (git_status, git_commit, git_push, …) Недоступны Работают
Клонирование репозиториев Недоступно Работает
LLM-провайдер Зависит от сети/endpoint Зависит от сети/endpoint

Что именно деградирует

Речь не о падении приложения: Synth продолжает работать, а недоступные инструменты исключаются из вызова с пояснением. Подробнее о детекте зависимостей — в разделе Диагностика.

Автозапуск через Task Scheduler

Служба Windows не используется. Автозапуск — задача «At log on» в контексте текущего пользователя:

$start = "$env:LOCALAPPDATA\Programs\Synth\<version>\start-synth.ps1"

$action  = New-ScheduledTaskAction -Execute "powershell.exe" `
  -Argument "-NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -File `"$start`""
$trigger = New-ScheduledTaskTrigger -AtLogOn

Register-ScheduledTask -TaskName "Synth" `
  -Action $action -Trigger $trigger `
  -Description "Synth (per-user)" -RunLevel Limited

Задача запускается при входе пользователя и не требует административных прав. Проверка:

Get-ScheduledTask -TaskName "Synth" | Get-ScheduledTaskInfo

Удаление автозапуска:

Unregister-ScheduledTask -TaskName "Synth" -Confirm:$false

Запуск без автозапуска

Для разового запуска достаточно ярлыка или команды synth.cmd serve. Автозапуск — удобство, а не требование.

Пути

Что Путь (пример) Как изменить
Установка %LOCALAPPDATA%\Programs\Synth\<version> -Prefix при установке
Launcher %LOCALAPPDATA%\Programs\Synth\bin\synth.cmd -Prefix
Home (конфиг и данные) %LOCALAPPDATA%\Synth -DataDir / --home / SYNTH_HOME
Данные %LOCALAPPDATA%\Synth\data --data-dir / SYNTH_DATA_DIR
Секреты %LOCALAPPDATA%\Synth\data\secrets внутри каталога данных
Логи %LOCALAPPDATA%\Synth\logs start-synth.ps1

Точная раскладка указана в manifest.json и install.json; пути выше — дефолты установщика.

SmartScreen

Файлы не подписаны, поэтому SmartScreen может показать «Windows protected your PC». Проверьте SHA256. В управляемом парке используйте allowlist WDAC/AppLocker по хешу; локальное одобрение запуска — только если это разрешено политикой организации.

Не отключайте защиту глобально

Не отключайте SmartScreen, Defender и не добавляйте весь каталог в исключения. Подробнее — Проверка SHA256.

Обновление и удаление

  • Обновление — остановить процесс, распаковать новую версию в новый каталог, выполнить synth migrate --yes, запустить. synth update в офлайне не работает — Эксплуатация.
  • Удаление — uninstall.ps1 из установленного каталога (%LOCALAPPDATA%\Programs\Synth\<version>) — данные сохраняются; -Purge удаляет данные. Либо synth uninstall --purge --yes. Необратимо.

Что дальше