# nsq 0.2.0: обновляется сам, достаёт до телефона откуда угодно и работает на ваших моделях

> nsq 0.2.0 сам ставит обновления, не прерывая ход агента, открывает страницу для телефона откуда угодно через туннель Cloudflare и запускает агентов на llama.cpp, Ollama, vLLM и других серверах.

- URL: https://neurosquad.ai/ru/blog/nsq-0-2-0/
- Published: 2026-10-09
- Publisher: NeuroSquad (https://neurosquad.ai/)

Вышел **nsq 0.2.0** — открытая терминальная версия NeuroSquad. Первый выпуск был о том, чтобы знать, какой агент вас ждёт. Этот — об остальном дне: nsq теперь сам держит себя в актуальном состоянии, телефон достаёт до агентов, когда вас нет дома, а агенты могут работать на вашем собственном модельном сервере вместо облачного логина.

```
npm i -g neurosquad@latest      # один раз, с 0.1.x; дальше nsq делает это сам
nsq phone on --online           # страница для телефона откуда угодно (экспериментально)
nsq provider add lmstudio --url http://localhost:1234
nsq run claude --provider lmstudio --model qwen/qwen3-coder-30b
```

## Обновляется сам — между ходами

Терминалами агентов владеет демон, поэтому его перезапуск завершает их процессы. Значит, обновление здесь не может быть просто «скачать и перезапустить». nsq делит его на три шага.

- **Проверка.** Раз в шесть часов демон спрашивает реестр npm о пакете `neurosquad` — один запрос его публичных метаданных, с ETag. О вас и вашем компьютере ничего не отправляется: ни идентификаторов, ни токенов, ни статистики.
- **Установка.** Новая версия ставится в фоне тем же способом, каким вы установили nsq: npm в ту же папку, Homebrew или Scoop. При npx, pnpm, yarn и всём остальном nsq только показывает команду. sudo он не использует никогда; если папка npm недоступна для записи, он так и говорит и показывает команду. Homebrew обновляет только nsq, хотя вместе с ним может обновить `node`, если формуле нужна версия новее.
- **Переключение.** Демон перезапускается на новую версию, только когда ничего не потеряется: ни один агент не работает, не ждёт вас и не держит очередь промптов, каждый запущенный агент может продолжить свою сессию, не открыты ни дашборд, ни телефон, и пять минут никто ничего не вводил агентам. Перезапуск — то же самое, что `nsq down` + `nsq up`, поэтому агенты возвращаются в свои сессии.

Перед переключением nsq один раз запускает новую версию и спрашивает у неё номер версии. Если это не удалось, старый демон и все агенты продолжают работать, а дашборд объясняет почему. Сломанный выпуск обойдётся вам строчкой в заголовке, а не агентами.

В дашборде заголовок показывает, что происходит, — `update 0.2.0 → x.y.z`, `installing…`, `updated to x.y.z · U restart`, — а **U** переключает сразу, сначала дождавшись занятых агентов. `nsq update` ставит вручную, `nsq update --check` только проверяет. `nsq config set autoUpdate notify` оставляет новости, но ничего не ставит, `nsq config set autoUpdate false` (или `NSQ_NO_UPDATE=1`) отключает проверку, а в CI и из исходников nsq не проверяет никогда.

## Телефон — не только дома

До сих пор страница для телефона работала в том же Wi-Fi. `nsq phone on --online` делает её доступной откуда угодно через быстрый туннель Cloudflare: без аккаунта, без открытых портов на роутере, с настоящим HTTPS. nsq выводит предупреждение, ссылку с токеном связки и её QR-код.

![Страница nsq на телефоне: «1 needs you», агент reviewer на Codex просит запустить «Bash — mkdir nsq-perm-dir», кнопки Yes, Always и No, агент api-fix на Claude Code закончил](https://neurosquad.ai/blog/nsq-0-2-0/phone-ru.webp)

*Страница для телефона. В онлайне это та же страница, только через туннель. Агенты здесь работают с тестовой моделью по сценарию.*

Любой, у кого есть эта ссылка, сможет управлять вашими агентами, поэтому выход в онлайн — каждый раз осознанный шаг, и его трудно не заметить:

- Сам он не включается никогда. Быстрый туннель при каждом запуске получает новый адрес и после перезапуска не восстанавливается — телефон связывается заново.
- Через туннель обычный `http://` отклоняется, а пять неверных токенов с одного адреса блокируют его на 15 минут.
- В дашборде горит красный значок **ONLINE**, телефоны, пришедшие из интернета, помечены `(internet)`, а **O** выключает онлайн обратно (или `nsq phone off`).
- `--expire 12h` заставляет телефоны связываться заново через двенадцать часов. С аккаунтом Cloudflare именованный туннель даёт один постоянный адрес на вашем домене; его токен хранится в системном хранилище ключей.
- `cloudflared` берётся из вашего `PATH`, иначе nsq скачивает официальный релиз Cloudflare в свою папку и сверяет его с опубликованным sha256-дайджестом — в систему ничего не ставится.

Что умеет телефон, не изменилось: видеть агентов и их экраны, отвечать на запрос разрешения, отправлять промпт, прерывать. Запускать агентов, нажимать произвольные клавиши и читать файлы он по-прежнему не может. Доступ с телефона остаётся **экспериментальным** и выключен по умолчанию.

## Агенты на ваших модельных серверах

Кроме OpenRouter, агент теперь может работать на сервере, который запускаете вы: llama.cpp, Ollama, LM Studio, vLLM, SGLang, Unsloth Studio или любой удалённый API, говорящий на API OpenAI или Messages API Anthropic. Для каждого агента отдельно, не трогая собственные настройки и логины CLI.

```
nsq provider add ollama --url http://localhost:11434
nsq run codex --provider ollama --model qwen3-coder:30b
nsq set api-fix --provider none --model none     # обратно к логину самого CLI
```

- **API выбирать не нужно.** `nsq provider add` сначала проверяет сервер: получает список моделей и находит, какие эндпоинты у него есть. Claude Code предлагается сервер с Anthropic Messages, Codex — с Responses, OpenCode — с chat completions или Messages. Если у сервера есть только chat completions, Codex ходит через маленький локальный шлюз, который переводит для него запросы.
- **Окно контекста передаётся.** Когда список моделей сервера сообщает, с каким контекстом он обслуживает модель, это узнаёт каждый CLI — и длинная сессия сжимается до того, как окно сервера переполнится, а не падает.
- **Ключ не на виду.** Он необязателен, вводится без эха или подаётся через stdin — никогда аргументом командной строки, — хранится в системном хранилище ключей и попадает только в окружение агента. Обычный `http://` разрешён только для этого компьютера и локальной сети, а редиректы не выполняются никогда.
- **Никакого тихого отката.** Если сервера больше нет, агент не запускается, а не уходит на облачный логин CLI.
- **Никаких выдуманных цен.** nsq не может знать, сколько стоит ваш сервер, поэтому его запросы в `nsq cost` показываются «без цены», а не $0.

В дашборде **P** открывает экран провайдеров, в форме нового агента (**c**) появился выбор провайдера, а **m** показывает модели сервера агента. В [руководстве](https://docs.neurosquad.ai/ru/cli/providers) есть таблица локальных серверов и того, какой API отдаёт каждый.

## Ещё с 0.1.0

- **Пуш на телефон через ntfy** (0.1.1): `nsq phone push ntfy` присылает в приложение ntfy «ждёт вас» с вопросом агента — через публичный сервер ntfy.sh или ваш собственный.
- **Исправлен выбор модели OpenRouter** (0.1.2): модель, выбранная клавишей **m**, теперь переводит агента на OpenRouter, и агент перезапускается в той же сессии, как только освободится, — разговор сохраняется.

## Как получить

С 0.1.x обновитесь один раз вручную: `npm i -g neurosquad@latest`, `brew upgrade glmn-ai/neurosquad/neurosquad-cli` или `scoop update neurosquad-cli`, затем `nsq down` и `nsq up` — агенты продолжат свои сессии. Начиная с 0.2.0 nsq заботится об этом сам. Впервые здесь? `npx neurosquad` запускает его без установки. Всё остальное — в [руководстве по nsq](https://docs.neurosquad.ai/ru/cli) и на [его странице](https://neurosquad.ai/ru/cli/); код под лицензией MIT — в [glmn-ai/neurosquad-cli](https://github.com/glmn-ai/neurosquad-cli).
