AI-помощник для Fish Shell с интеграцией OpenAI API, управлением контекстом диалогов и визуализацией через cowsay/lolcat.
aiFish — интерактивный помощник на базе ChatGPT для терминала. Задавай вопросы, получай ответы с сохранением контекста диалога, и все это с красивыми коровками и цветами!
- Поддержка моделей OpenAI для chat completions (GPT-3.5, GPT-4o, GPT-4.1, GPT-5, o-series)
- Интерактивный выбор модели стрелочками (через fzf)
- Думающая корова перед ответом (через cowthink + lolcat)
- Красивый вывод markdown с подсветкой синтаксиса (через python3-rich)
- Управление контекстом диалогов
- Pipe support для работы с файлами
- Автоматическая установка зависимостей
- Кэширование списка моделей (24 часа)
# Скопировать ai.fish в директорию функций Fish
cp aiFish/ai.fish ~/.config/fish/functions/
# Перезагрузить Fish
exec fishЗависимости устанавливаются автоматически при первом запуске!
- Обязательные: curl, jq
- Опциональные:
- python3-rich - красивый вывод markdown с подсветкой синтаксиса
- cowsay, lolcat - думающая корова с цветами
- fzf - выбор моделей стрелочками
Или установи вручную:
sudo dnf5 install -y curl jq python3-rich cowsay lolcat fzfПолучи API ключ на https://platform.openai.com/api-keys
# Вариант 1: Через переменную Fish (рекомендуется)
set -Ux OPENAI_API_KEY "sk-..."
# Вариант 2: Через мастер настройки
ai --setup
# или
ai setupai "привет!"# Простой запрос
ai "что такое fish shell?"
# Новый диалог (очистка контекста)
ai --new "начнем с чистого листа"
# Запрос без cowsay (для скриптов)
ai --raw "дай список команд"
# Работа с pipe
cat script.fish | ai "объясни что делает этот код"
git diff | ai "сделай код ревью"# Интерактивный выбор модели (стрелочками через fzf)
ai --setmodel
# или
ai setmodel
# Показать текущую модель
ai --current
# или
ai current
# Список всех доступных моделей
ai --models
# или
ai models# Новый диалог (очистка контекста перед запросом)
ai --new "начать заново"
# Очистить контекст
ai --clear
# или
ai clear# Мастер настройки
ai --setup
# или
ai setup
# Справка
ai --help
# или
ai helpai "как найти все .fish файлы в текущей директории?"
ai "объясни команду grep"
ai "напиши скрипт для бэкапа"cat my_script.fish | ai "проверь код на ошибки"
git diff | ai "что изменилось и все ли правильно?"ai "объясни что такое pipes в Linux"
ai "как работает fish shell?"
ai "разница между && и ||"ai --think "напиши алгоритм сортировки на Python"
ai --smart "оптимизируй этот код: $(cat script.py)"ai "как проверить использование диска?"
ai "настроить SSH без пароля"
ai "найти процесс занимающий порт 8080"Файл конфигурации: ~/.config/aiFish/config.json
{
"default_model": "gpt-4o-mini",
"max_context_messages": 20,
"temperature": 0.7,
"show_cost": false,
"auto_save": true,
"aliases": {
"fast": "gpt-3.5-turbo",
"balanced": "gpt-4o-mini",
"smart": "gpt-4o",
"genius": "gpt-4.1",
"think": "o4-mini",
"ultimate": "gpt-5-mini"
}
}default_model- модель по умолчаниюmax_context_messages- максимум сообщений в контексте (20)temperature- креативность ответа (0.0-2.0, дефолт 0.7)show_cost- показывать стоимость запросовauto_save- автосохранение контекста
Примечание: Ограничение max_tokens убрано - каждая модель использует свой максимум (GPT-3.5: 4K, GPT-4o: 16K, GPT-4.1: 128K токенов)
~/.config/aiFish/
├── config.json # Настройки
├── current_context.json # Текущий диалог
├── models_cache.json # Кэш моделей (24ч)
├── contexts/ # Сохраненные диалоги
│ └── *.json
└── history/ # История (опционально)
gpt-3.5-turbo- ~$0.002 за 1K токенов
gpt-4o- мультимодальная, ~$0.005 за 1Kgpt-4o-mini- эффективная, ~$0.00015 за 1K
gpt-4.1- 1M токенов контекст, ~$0.006 за 1K
o4-mini- быстрая, ~$0.0011 за 1Ko3- продвинутая, ~$0.002 за 1K
gpt-5-mini- ~$0.008 за 1Kgpt-5- требует регистрацию
Полный список: ai --models --verbose
Контекст сохраняет историю диалога, что позволяет AI помнить предыдущие сообщения. Лимит - 20 сообщений по умолчанию.
# Начать новую тему
ai --new "новый вопрос"
# Или очистить текущий
ai --clearВыбирай подходящую модель через ai setmodel:
- gpt-3.5-turbo - для простых вопросов (быстро и дешево)
- gpt-4o-mini - оптимально для большинства задач
- gpt-4o - для сложных вопросов
- o4-mini - для математики, кода, логики
- gpt-4.1 - самая умная, большой контекст
# Используй --raw для скриптов
result=$(ai --raw "дай только число")
# Очищай контекст когда не нужен
ai clear# Проверь что ключ установлен
echo $OPENAI_API_KEY
# Установи заново
set -Ux OPENAI_API_KEY "sk-..."Превышен лимит запросов. Подожди или обнови подписку на OpenAI.
sudo dnf5 install -y curl jq python3-rich cowsay lolcat fzfУстанови python3-rich:
sudo dnf5 install -y python3-richQ: Как поменять модель по умолчанию?
ai --setmodel
# или
ai setmodelQ: Как посмотреть доступные модели?
ai --models
# или
ai modelsQ: Почему модель не умеет искать в интернете?
Обычные модели (gpt-4.1, gpt-4o) не имеют доступа к интернету. Используй модели с -search- в названии:
ai --setmodel
# Выбери gpt-4o-search-preview или gpt-5-search-apiQ: Работает ли без интернета? Нет, требуется подключение к OpenAI API.
Q: Можно ли использовать другие API? Пока только OpenAI. Поддержка других провайдеров планируется.
- API ключ хранится в переменной Fish или файле с правами 600
- Все данные локально в
~/.config/aiFish/ - Запросы идут напрямую к OpenAI
- Логи не ведутся
Open source. Используй свободно.
DXVSI