Это Go версия умного Linux Shell агента, который преобразует запросы на естественном языке в команды Linux с использованием локальной LLM модели через Ollama.
- 🤖 Преобразование естественного языка в команды Linux
 - 🎯 Выбор модели из доступных в Ollama при старте
 - 📚 Контекстная память (последние 30 команд)
 - ⚡ Интерактивный режим с подтверждением выполнения
 - 🔄 Смена модели во время работы
 - 🔒 Безопасное выполнение с запросом разрешения
 
- Go 1.21+
 - Ollama с любой установленной моделью (программа покажет список доступных)
 
# Установка Ollama (если не установлен)
curl -fsSL https://ollama.ai/install.sh | sh
# Загрузка рекомендуемых моделей
ollama pull qwen2.5-coder:3b    # Быстрая модель для кода
ollama pull llama3.2:3b         # Универсальная модель
ollama pull codellama:7b        # Более мощная модель для кода
# Запуск Ollama сервера
ollama serve# Компиляция и запуск
go run main.go
# Или через Make
make run# Сборка
make build
./shell-agent
# Или напрямую через Go
go build -o shell-agent main.go
./shell-agent# Установка в /usr/local/bin (требует sudo)
make install
# После установки можно запускать из любой директории
shell-agentmake uninstallmake help          # Показать все доступные команды
make build         # Собрать проект
make run           # Собрать и запустить
make clean         # Очистить собранные файлы
make test          # Запустить тесты
make fmt           # Форматировать код
make vet           # Проверить код
make deps          # Обновить зависимости
make build-all     # Собрать для всех платформ
make install       # Установить в систему
make uninstall     # Удалить из системыПри первом запуске программа покажет список доступных моделей:
🔍 Получаю список доступных моделей...
📋 Доступные модели:
============================================================
1. qwen2.5-coder:3b (1.9 GB)
2. llama3.2:3b (2.0 GB)
3. codellama:7b (3.8 GB)
============================================================
Выберите модель (1-3): 1
✅ Выбрана модель: qwen2.5-coder:3b
После выбора модели вводите запросы на естественном языке:
👤 Ваш запрос: покажи файлы в текущей папке
💡 Предлагаемая команда: ls -la
❓ Выполнить эту команду? (да/нет/d/n): да
- "покажи файлы в текущей папке"
 - "кто я в системе"
 - "информация о системе"
 - "создай файл test.txt"
 - "покажи содержимое файла" (после создания)
 - "сколько свободной памяти"
 - "найди все .go файлы"
 
история- показать историю выполненных командочистить историю- очистить контекстсменить модель- выбрать другую модель без перезапускаexit- выход из программы
- ShellAgent - основная структура агента
 - CommandHistory - история выполненных команд
 - Ollama API клиент - интеграция с LLM и управление моделями
 - Model selector - выбор и смена моделей
 - Shell executor - безопасное выполнение команд
 
- Все команды требуют подтверждения пользователя
 - Таймаут выполнения команд (60 секунд)
 - Ограничение истории команд (30 последних)
 - Изолированное выполнение через bash -c
 - Проверка доступности Ollama при запуске
 
По умолчанию используется:
- Ollama URL: 
http://localhost:11434 - Модель: выбирается пользователем из доступных
 - Таймаут: 60 секунд
 - Максимум истории: 30 команд
 
Для изменения параметров отредактируйте константы в NewShellAgent().
- qwen2.5-coder:3b - быстрая и эффективная для команд Linux
 - llama3.2:3b - универсальная модель с хорошим пониманием
 - codellama:7b - более мощная для сложных задач (требует больше ресурсов)
 
# Проверьте, запущен ли Ollama
curl http://localhost:11434/api/tags
# Если не отвечает, запустите сервер
ollama serve# Установите хотя бы одну модель
ollama pull qwen2.5-coder:3b