Простой чат с нейросетями прямо в терминале.
Спрашиваете — получаете ответ. При необходимости программа может выполнить команды на вашем компьютере (только после вашего согласия).
| Версия | 1.0.41 |
| Для кого | Linux и Termux (Android) |
| Сервис по умолчанию | 302.ai |
| Исходный код | sw_chat.cpp |
| Установщик | install.sh |
Обычные чаты открываются в браузере. sw_chat работает в терминале:
- быстро и без лишнего интерфейса;
- удобно на слабых компьютерах и удалённых серверах;
- можно прикреплять файлы, вести несколько диалогов, считать расход токенов;
- по желанию — просить модель помочь с командами в системе (осторожно!).
| Возможность | Простыми словами |
|---|---|
| Диалог с моделью | Как в ChatGPT, но в консоли |
| Красивый текст | Заголовки, списки, таблицы, блоки кода |
| Несколько моделей | Claude, GPT, DeepSeek, Grok и др. (зависит от ключа) |
| Файлы | «Посмотри этот файл и объясни» |
| История | Диалоги сохраняются между запусками |
| Несколько сессий | Разные темы в разных «чатах» |
| Команды из ответа | Модель предлагает — вы подтверждаете y / n |
| Обновление | Команда /update внутри программы |
Важно про безопасность
Команды на компьютере не запускаются сами, пока вы не включите опасный режим/autorun.
По умолчанию программа всегда спросит: выполнить или нет.
Скрипт install.sh сам поставит зависимости, скачает исходник с GitHub, соберёт программу и положит её в ~/.local/bin:
curl -fsSL https://raw.githubusercontent.com/swarik/Chat-Assist/main/install.sh | bash
Что произойдёт:
- определятся пакеты вашей системы (apt / dnf / pacman / zypper);
- при необходимости установятся
g++,curl, readline, libcurl; - скачается заголовок
nlohmann/json; - скачается
sw_chat.cppиз репозитория; - программа соберётся (
-Os, с-lpthread) и установится в~/.local/bin/sw_chat; - при необходимости подскажет, как добавить
~/.local/binвPATH; - проверит API-ключ 302.ai (или подскажет, куда его положить).
Параметры установщика (если скачали install.sh или клонировали репозиторий):
| Команда | Зачем |
|---|---|
bash install.sh |
Обычная установка с GitHub |
bash install.sh --local |
Собрать из ./sw_chat.cpp рядом со скриптом (без скачивания) |
bash install.sh --skip-deps |
Не ставить пакеты через sudo (если всё уже есть) |
bash install.sh --help |
Краткая справка |
Примеры:
git clone https://github.com/swarik/Chat-Assist.git
cd Chat-Assist
bash install.sh --local
bash install.sh --skip-deps
Если ставили через
curl … | bash, ввод ключа с клавиатуры может быть недоступен
(stdin занят pipe). Это нормально — ключ можно добавить сразу после установки (см. ниже).
sudo apt-get install -y g++ libreadline-dev libcurl4-openssl-dev curl
mkdir -p ~/.local/include/nlohmann
curl -fsSL https://raw.githubusercontent.com/nlohmann/json/v3.11.3/single_include/nlohmann/json.hpp \
-o ~/.local/include/nlohmann/json.hpp
curl -fsSL https://raw.githubusercontent.com/swarik/Chat-Assist/main/sw_chat.cpp -o sw_chat.cpp
g++ -std=c++17 -Os -I"$HOME/.local/include" -o sw_chat sw_chat.cpp \
-lreadline -lcurl -lpthread
mkdir -p ~/.local/bin
cp sw_chat ~/.local/bin/
Если команда sw_chat «не находится»:
~/.local/bin/sw_chat
export PATH="$HOME/.local/bin:$PATH"
- Зарегистрируйтесь на 302.ai и получите ключ.
- Сохраните его:
mkdir -p ~/.config
echo "sk-ВАШ-КЛЮЧ" > ~/.config/302_key
chmod 600 ~/.config/302_key
Или через переменную окружения (имя начинается с цифры — так и задумано):
export 302_API_KEY="sk-ВАШ-КЛЮЧ"
Ключ — как пароль: никому не показывайте и не публикуйте в GitHub.
Установщик ищет ключ в таком порядке:
- переменная
302_API_KEY; - файл
~/.config/302_key; - если пусто и есть живой терминал — предложит вставить ключ;
- если установка шла через pipe — просто напечатает подсказку.
sw_chat
или полным путём:
~/.local/bin/sw_chat
Напишите вопрос и нажмите Enter (ещё раз Enter — отправить).
Справка внутри программы: /help
На телефоне/планшете в Termux установщик определяется сам (или флаг --termux).
pkg update
curl -fsSL https://raw.githubusercontent.com/swarik/Chat-Assist/main/install.sh | bash
Из клона репозитория:
bash install.sh --local
bash install.sh --termux --local
| Termux | Обычный Linux | |
|---|---|---|
| Пакеты | pkg install без sudo |
apt/dnf/pacman/zypper (+ sudo) |
| Компилятор | clang++ (или g++) |
g++ / clang++ |
| Куда ставится | $PREFIX/bin/sw_chat |
~/.local/bin/sw_chat |
| Ключ API | ~/.config/302_key |
то же |
| PATH | обычно уже настроен | может дописаться в ~/.bashrc |
Пакеты в Termux: clang, make, curl, libcurl, readline, openssl, ca-certificates (и по возможности nlohmann-json).
Замечания для Android
- Нужен интернет (Wi‑Fi или мобильные данные) для запросов к API.
- Если ругается на SSL:
pkg install ca-certificates. - Первая сборка на слабом телефоне может занять несколько минут.
- Доступ к файлам телефона (опционально):
termux-setup-storage. - Запуск:
sw_chatили$PREFIX/bin/sw_chat.
sw_chat
| Хотите… | Сделайте… |
|---|---|
| Отправить сообщение | Пустой Enter или строка // |
| Написать несколько строк | Просто пишите; пустая строка в тексте — символ . |
| Прервать долгий ответ | Ctrl+C |
| Выйти | /exit |
sw_chat "Что такое DNS простыми словами?"
echo "Кратко объясни HTTP" | sw_chat
Если нужно ещё и выполнять команды из ответа модели:
echo "Покажи свободное место на диске" | sw_chat --exec
Введите их прямо в чате (начинаются с /).
| Команда | Что делает |
|---|---|
/help |
Короткая шпаргалка |
/help all |
Полный список команд |
/model |
Выбрать нейросеть |
/models |
Список моделей |
/file путь |
Положить файл в разговор |
/clear |
Начать диалог с нуля |
/exit |
Выйти |
| Команда | Что делает |
|---|---|
/temp 0.7 |
«Креативность» ответов (обычно 0–2) |
/maxtokens 4096 |
Насколько длинным может быть ответ |
/apibase |
Адрес API (по умолчанию 302.ai) |
/compact |
Тихий режим — меньше подсказок на экране |
/about |
Версия и пути к настройкам |
| Команда | Что делает |
|---|---|
/history on |
Запоминать диалог |
/history off |
Не сохранять |
/save / /load |
Сохранить / загрузить вручную |
/new работа |
Новый чат с именем |
/list |
Все сохранённые чаты |
/switch дом |
Переключиться на другой чат |
/search слово |
Найти в истории |
/export md |
Выгрузить диалог в файл |
| Команда | Что делает |
|---|---|
/tokens |
Сколько токенов ушло |
/cost |
Примерная стоимость в $ |
/cost live |
То же, с попыткой обновить цены |
/balance |
Есть ли ключ, какой сервер, счётчики |
| Команда | Что делает |
|---|---|
| (по умолчанию) | Спрашивает y — да, n — нет, a — да для всех блоков сразу |
/autorun |
Опасно: выполнять без спроса |
/nores |
Не показывать вывод команд на экране (в историю всё равно попадёт) |
/models
/models deepseek
/models p2
/models refresh
/model 3
/model deepseek-chat
- фильтр — часть имени, например
deepseekилиgpt; - p2 — вторая страница списка (на слабых ПК список режется на части);
- refresh — скачать свежий список с сервера.
Иногда в ответе есть блок кода «для терминала». Программа:
- покажет команду;
- спросит, выполнять ли;
- при
yзапустит и покажет результат; - отправит результат обратно модели (можно продолжить цепочку до 7 шагов).
В результат всегда добавляется код выхода, например [exit: 0] — «всё прошло нормально».
Не подтверждайте команды, которых не понимаете
(особенно удаление файлов, смена паролей, установка пакетов «вслепую»).
| Файл / папка | Зачем |
|---|---|
~/.config/302_key |
Ваш секретный ключ |
~/.config/sw_chat/config.json |
Модель, температура, api_base и др. |
~/.config/sw_chat/sessions/ |
Сохранённые диалоги |
~/.local/bin/sw_chat |
Установленная программа |
~/.local/include/nlohmann/json.hpp |
Библиотека JSON (нужна при сборке) |
~/tmp/system_prompt.txt |
Ваши правила для модели (необязательно) |
Свой «характер» ассистента можно задать так:
nano ~/tmp/system_prompt.txt
Пример содержимого:
Отвечай по-русски, коротко и по делу.
Если даёшь команды для терминала — объясняй, что они делают.
Программа рассчитана и на скромное железо (в т.ч. старый 32-bit Linux и ~200+ МБ RAM):
- установщик и ручная сборка используют
-Os; - не скармливайте гигантские файлы (
/fileограничен ~200 КБ); - список моделей листайте страницами:
/models p2; - не включайте
/autorun«на всякий случай».
Вариант 1 — из самой программы:
/update
Скачает новую версию, покажет краткий preview и после согласия пересоберёт себя.
Вариант 2 — снова запустить установщик:
curl -fsSL https://raw.githubusercontent.com/swarik/Chat-Assist/main/install.sh | bash
или из клона:
bash install.sh --local
Установщик постарается поставить это сам. Если ставите вручную:
- компилятор
g++(C++17) curl- библиотеки:
libreadline,libcurl - заголовок nlohmann/json (скрипт ставит v3.11.3)
- утилита
timeout(обычно уже есть в Linux) - линковка:
-lreadline -lcurl -lpthread
Подходит: Ubuntu, Debian, Fedora, Arch, openSUSE.
Не запускается / не найден sw_chat
Полный путь: ~/.local/bin/sw_chat. Добавьте в PATH: export PATH="$HOME/.local/bin:$PATH".
Установщик обычно прописывает это в ~/.bashrc (без дублей) — откройте новый терминал.
Пишет, что нет ключа
Проверьте файл ~/.config/302_key или переменную 302_API_KEY (через printenv 302_API_KEY).
Установка через curl|bash не спросила ключ
Так и должно быть: stdin занят pipe. Положите ключ в ~/.config/302_key вручную.
Ошибка компиляции / pthread
Нужна линковка -lpthread (в актуальном install.sh уже есть). Убедитесь, что стоят dev-пакеты readline и curl.
Ставится ли на Android?
Да, в приложении Termux: pkg update, затем тот же install.sh (или bash install.sh --termux). Бинарник: $PREFIX/bin/sw_chat.
Ответ пустой или ошибка сети
Проверьте интернет, ключ и баланс на 302.ai. Команда /about покажет базовые настройки.
Слишком дорого / длинный диалог
/clear — обнулить переписку; /cost — оценка; смените модель через /model.
Как сменить сервер API?
/apibase https://api.302.ai (нужен совместимый с OpenAI Chat Completions API).
Удобнее выбор модели: AND-фильтр /models claude sonnet, OR gpt|o1, /model N из последнего списка, интерактивное /model, cap 800, tab по подстроке.
Понятнее результаты команд, удобнее список моделей, /apibase, оценка размера контекста, /cost live, --exec, короткая и полная справка.
Лимиты на файлы, безопаснее история и экспорт, аккуратнее autorun, правки сессий.
Поддержка Termux (--termux, pkg, $PREFIX/bin). Репозиторий swarik/Chat-Assist, ключ 302.ai, сборка -Os -lpthread, pin nlohmann v3.11.3, --local / --skip-deps, без дублей PATH, корректная работа через curl|bash.
- Репозиторий: swarik/Chat-Assist
- Ключи и модели: 302.ai
- Установщик:
install.sh
Сделано для тех, кто любит терминал. Спрашивайте — думайте — подтверждайте.