Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sw_chat

Простой чат с нейросетями прямо в терминале.

Спрашиваете — получаете ответ. При необходимости программа может выполнить команды на вашем компьютере (только после вашего согласия).

Версия 1.0.41
Для кого Linux и Termux (Android)
Сервис по умолчанию 302.ai
Исходный код sw_chat.cpp
Установщик install.sh

Зачем это нужно

Обычные чаты открываются в браузере. sw_chat работает в терминале:

  • быстро и без лишнего интерфейса;
  • удобно на слабых компьютерах и удалённых серверах;
  • можно прикреплять файлы, вести несколько диалогов, считать расход токенов;
  • по желанию — просить модель помочь с командами в системе (осторожно!).

Что умеет

Возможность Простыми словами
Диалог с моделью Как в ChatGPT, но в консоли
Красивый текст Заголовки, списки, таблицы, блоки кода
Несколько моделей Claude, GPT, DeepSeek, Grok и др. (зависит от ключа)
Файлы «Посмотри этот файл и объясни»
История Диалоги сохраняются между запусками
Несколько сессий Разные темы в разных «чатах»
Команды из ответа Модель предлагает — вы подтверждаете y / n
Обновление Команда /update внутри программы

Важно про безопасность
Команды на компьютере не запускаются сами, пока вы не включите опасный режим /autorun.
По умолчанию программа всегда спросит: выполнить или нет.


Быстрый старт

1. Установите

Способ А — одной командой (рекомендуется)

Скрипт install.sh сам поставит зависимости, скачает исходник с GitHub, соберёт программу и положит её в ~/.local/bin:

curl -fsSL https://raw.githubusercontent.com/swarik/Chat-Assist/main/install.sh | bash

Что произойдёт:

  1. определятся пакеты вашей системы (apt / dnf / pacman / zypper);
  2. при необходимости установятся g++, curl, readline, libcurl;
  3. скачается заголовок nlohmann/json;
  4. скачается sw_chat.cpp из репозитория;
  5. программа соберётся (-Os, с -lpthread) и установится в ~/.local/bin/sw_chat;
  6. при необходимости подскажет, как добавить ~/.local/bin в PATH;
  7. проверит 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). Это нормально — ключ можно добавить сразу после установки (см. ниже).

Способ Б — вручную (Ubuntu / Debian)

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"

2. Добавьте API-ключ

  1. Зарегистрируйтесь на 302.ai и получите ключ.
  2. Сохраните его:
mkdir -p ~/.config
echo "sk-ВАШ-КЛЮЧ" > ~/.config/302_key
chmod 600 ~/.config/302_key

Или через переменную окружения (имя начинается с цифры — так и задумано):

export 302_API_KEY="sk-ВАШ-КЛЮЧ"

Ключ — как пароль: никому не показывайте и не публикуйте в GitHub.

Установщик ищет ключ в таком порядке:

  1. переменная 302_API_KEY;
  2. файл ~/.config/302_key;
  3. если пусто и есть живой терминал — предложит вставить ключ;
  4. если установка шла через pipe — просто напечатает подсказку.

3. Запустите

sw_chat

или полным путём:

~/.local/bin/sw_chat

Напишите вопрос и нажмите Enter (ещё раз Enter — отправить).
Справка внутри программы: /help


Termux (Android)

На телефоне/планшете в 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 — скачать свежий список с сервера.

Если модель предлагает команду

Иногда в ответе есть блок кода «для терминала». Программа:

  1. покажет команду;
  2. спросит, выполнять ли;
  3. при y запустит и покажет результат;
  4. отправит результат обратно модели (можно продолжить цепочку до 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).


Что нового (кратко)

1.0.40

Удобнее выбор модели: AND-фильтр /models claude sonnet, OR gpt|o1, /model N из последнего списка, интерактивное /model, cap 800, tab по подстроке.

1.0.39

Понятнее результаты команд, удобнее список моделей, /apibase, оценка размера контекста, /cost live, --exec, короткая и полная справка.

1.0.38

Лимиты на файлы, безопаснее история и экспорт, аккуратнее autorun, правки сессий.

install.sh (актуальный)

Поддержка Termux (--termux, pkg, $PREFIX/bin). Репозиторий swarik/Chat-Assist, ключ 302.ai, сборка -Os -lpthread, pin nlohmann v3.11.3, --local / --skip-deps, без дублей PATH, корректная работа через curl|bash.


Ссылки


Сделано для тех, кто любит терминал. Спрашивайте — думайте — подтверждайте.

Releases

Packages

Contributors

Languages