Недавно решил поэкспериментировать с AI-помощниками в командной строке. Перепробовал кучу разных вариантов — от GitHub Copilot CLI до всяких экзотических решений. Но больше всего понравился Shell-GPT с новой моделью Gemini 2.5 Flash. Поделюсь опытом настройки, потому что с документацией там не всё так просто.
Зачем это вообще нужно?
Честно говоря, поначалу скептически относился к идее AI в терминале. Думал — ну зачем, когда есть man pages и Google? Но оказалось довольно удобно, особенно когда нужно быстро склеить какую-то сложную команду или вспомнить синтаксис ffmpeg (который я постоянно забываю).
Например, недавно нужно было склеить несколько видео и ускорить результат. Вместо того чтобы лазить по Stack Overflow, просто спросил у AI:
- «склей три видео в ffmpeg»
- «ускорь получившееся видео на 20%»
И сразу получил готовые команды. Удобно, особенно когда торопишься.
Почему именно Gemini 2.5 Flash?
Попробовал разные модели. GPT через OpenAI API работает хорошо, но платный. Claude тоже неплохо, но тарифы кусаются. А вот Gemini 2.5 Flash оказался отличным компромиссом:
- Бесплатный (с щедрыми лимитами)
- Быстрый отклик
- Хорошо понимает технические команды
- Свежая модель с актуальными знаниями
Установка Shell-GPT
Сначала ставим сам Shell-GPT. У меня Debian, но на Ubuntu и других дистрибутивах процесс аналогичный:
pip3 install --user shell-gpt
После установки исполняемый файл окажется в ~/.local/bin/sgpt
. Если команда sgpt
не работает, добавьте этот путь в PATH:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
Проверить установку:
sgpt --version
Получение API-ключа Gemini
Идём на Google AI Studio и создаём бесплатный API-ключ. Процедура простая — логинимся через Google аккаунт, жмём «Create API Key», копируем результат.
Важный момент: ключ бесплатный, но есть лимиты по запросам. Для обычного использования в терминале их более чем хватает.
Настройка конфигурации
Тут началось самое интересное. В документации Shell-GPT про Gemini написано не очень понятно, а в интернете полно устаревших инструкций. Пришлось методом проб и ошибок выяснять правильную конфигурацию.
Создаём конфиг:
sgpt --create-config
Файл конфигурации создастся в ~/.config/shell_gpt/.sgptrc
. Открываем его любым редактором:
nano ~/.config/shell_gpt/.sgptrc
И вот тут важно! Многие гайды предлагают использовать USE_LITELLM=true
, но с Gemini это приводит к проблемам с аутентификацией. Рабочая конфигурация выглядит так:
CHAT_CACHE_PATH=/tmp/chat_cache
CACHE_PATH=/tmp/cache
CHAT_CACHE_LENGTH=100
CACHE_LENGTH=100
REQUEST_TIMEOUT=60
DEFAULT_MODEL=gemini-2.5-flash-preview-05-20
DEFAULT_COLOR=magenta
ROLE_STORAGE_PATH=/home/your_username/.config/shell_gpt/roles
DEFAULT_EXECUTE_SHELL_CMD=false
DISABLE_STREAMING=false
CODE_THEME=dracula
OPENAI_FUNCTIONS_PATH=/home/your_username/.config/shell_gpt/functions
OPENAI_USE_FUNCTIONS=true
SHOW_FUNCTIONS_OUTPUT=false
API_BASE_URL=https://generativelanguage.googleapis.com/v1beta
PRETTIFY_MARKDOWN=true
USE_LITELLM=false
SHELL_INTERACTION=true
OS_NAME=auto
SHELL_NAME=auto
OPENAI_API_KEY=ваш_api_ключ_gemini
Ключевые моменты:
DEFAULT_MODEL=gemini-2.5-flash-preview-05-20
— актуальная версия моделиUSE_LITELLM=false
— отключаем LiteLLM, иначе проблемы с авторизациейAPI_BASE_URL=https://generativelanguage.googleapis.com/v1beta
— правильный endpoint для Gemini- В
OPENAI_API_KEY
вставляем ключ от Gemini (да, переменная называется OPENAI_API_KEY, но работает с разными провайдерами)
Проверка работоспособности
Тестируем настройку:
sgpt "test connection"
Если всё настроено правильно, получите ответ от Gemini. У меня с первого раза не заработало — пришлось повозиться с зависимостями Python, но в итоге всё встало.
Основные режимы работы
Обычные запросы
Просто задаёте вопрос:
sgpt "как найти файлы больше 100MB"
Генерация команд
Для генерации shell-команд используйте флаг --shell
:
sgpt --shell "найди все видеофайлы в текущей папке"
Shell-GPT покажет команду и спросит, выполнить ли её.
Режим чата
Очень удобен для последовательного решения задач:
sgpt --repl --shell
В этом режиме можете вести диалог, и контекст сохраняется между вопросами.
Практические примеры использования
За пару недель использования накопилось много полезных сценариев:
Работа с ffmpeg:
sgpt --shell "склей видео file1.mp4 file2.mp4 file3.mp4"
sgpt --shell "ускорь video.mp4 в полтора раза"
Поиск файлов:
sgpt --shell "найди все конфиги nginx"
sgpt --shell "покажи самые большие файлы в /var/log"
Работа с архивами:
sgpt --shell "распакуй archive.tar.gz в папку extracted"
sgpt --shell "создай архив из папки documents"
Системное администрирование:
sgpt --shell "покажи процессы которые используют больше всего памяти"
sgpt --shell "найди открытые порты на этой машине"
Подводные камни и решения
Проблема с зависимостями
Если получаете ошибку «No module named ‘litellm'», установите:
pip3 install --user litellm google-generativeai
Проблемы с аутентификацией
Главная засада — Shell-GPT может пытаться использовать Google Cloud credentials вместо API-ключа AI Studio. Поэтому важно ставить USE_LITELLM=false
и правильный API_BASE_URL
.
Лимиты API
У бесплатной Gemini есть лимиты, но для персонального использования их хватает с головой. Если превысите лимит, просто подождите до следующего дня.
Сравнение с альтернативами
Пробовал разные решения:
GitHub Copilot CLI — работает хорошо, но платный и требует подписку GitHub Copilot.
Warp Terminal — красивый терминал со встроенным AI, но пока только для macOS (хотя обещают Linux версию).
tldr — не AI, но полезная утилита с примерами команд. Работает офлайн.
Shell-GPT с OpenAI — отличное качество ответов, но нужно платить за API.
По соотношению цена/качество Gemini через Shell-GPT оказался оптимальным вариантом.
Итоги
Настройка заняла больше времени чем ожидалось — в основном из-за проблем с документацией и зависимостями. Но результат стоил усилий. Теперь в терминале есть умный помощник, который знает Linux команды лучше меня самого.
Особенно ценю возможность работы в режиме чата — можно пошагово решать сложные задачи, уточнять детали, модифицировать команды. Это намного удобнее чем искать информацию в браузере.
Если у вас есть опыт использования других AI-помощников в терминале, поделитесь в комментариях. Интересно сравнить подходы и узнать о новых решениях.
P.S. Кстати, эту статью я писал не спрашивая у AI про каждое предложение, хотя идею проверить конфигурацию Gemini с Shell-GPT подсказал именно он 😄