Установка
Ядро — один бинарь, инструменты — отдельные программы рядом с ним. Установщик для Windows или сборка из исходников; ключ и адрес провайдера задаются после.
Что нужно
| платформа | чем ставится | что нужно заранее |
|---|---|---|
| Windows x64 | установщик -setup.exe | ничего, права администратора не нужны |
| Linux, macOS | сборка из исходников | Rust stable и cargo |
| провайдер | любой OpenAI-совместимый /chat/completions | адрес, имя модели, ключ |
Из установщика (Windows)
Установка per-user, без UAC, в %LOCALAPPDATA%\snens:
| путь | что |
|---|---|
snens.exe | ядро: цикл, HTTP/API, статика клиента |
snens-desktop.exe | окно (Tauri) |
tools\ | инструменты: read, edit, write, grep, fetch, search, shot, view, web, desk, agent, audit, memory |
web\ | собранный веб-клиент |
Данные и конфиг живут отдельно (%APPDATA%\snens): установка их не создаёт, обновление и удаление их не трогают. Каталог bin\ со ссылками на инструменты — тоже в данных, а не в установке: бандл только для чтения.
Обновление — тот же -setup.exe поверх: ядро, инструменты (включая плагин памяти) и клиент едут одним пакетом, отдельного канала для ядра нет. Перед запуском инсталлятора приложение лучше закрыть пунктом «Выход» в трее — иначе ядро держит файлы.
Артефакты релизов: /releases/.
Из исходников
git clone https://git.svuvi.ch/svuvich/snens && cd snens
cargo build --release --workspace
--workspace не для полноты: ядро и все инструменты собираются одной командой. Бинарь ядра — target/release/snens (snens.exe на Windows), его место — в PATH.
Инструменты после сборки должны лежать там, откуда их берёт реестр: snens build копирует target/release/<имя> в tools/<имя>/<имя>. Без аргументов — всё, с аргументами — только названные:
snens build # весь workspace
snens build read # один инструмент: линковка остальных не нужна
Каталог инструментов выбирается так: tools/ рядом с бинарником ядра, если он там есть (так кладёт установщик), иначе <данные>/tools. Переопределяется ключом tools_dir.
Проверка
snens tools # что ядро реально видит; пусто — каталог не тот
snens selftest # один ход на фейковой модели с фейковым инструментом
snens selftest проверяет реестр, контракт --help, argv, stdin, PATH и проекцию контекста, печатает selftest ok: …. Только unix: на Windows он отказывается честно — там эквивалент cargo test --workspace.
Куда что кладётся
| что | unix | Windows |
|---|---|---|
| данные, сессии | ~/.local/share/snens | %APPDATA%\snens |
| конфиг | ~/.config/snens/config.toml | %APPDATA%\snens\config.toml |
| ключи | ~/.config/snens/.env | %APPDATA%\snens\.env |
Переопределяется окружением: SNENS_DATA_DIR, SNENS_CONFIG_DIR, SNENS_CONFIG (путь к файлу целиком). Отдельный инстанс — это свои каталоги, а не вторая сборка.
Дальше: первый запуск, провайдеры.