# Ludmila AI TUI Терминальный клиент для OpenAI-совместимых API LLM. Написан на Go с использованием [Bubble Tea](https://github.com/charmbracelet/bubbletea). ## Возможности - Поддержка нескольких OpenAI-совместимых провайдеров одновременно - Потоковый вывод ответов (streaming) - Управление сессиями (создание, переключение, удаление, автосохранение) - Выбор модели из списка доступных через интерфейс - Markdown-рендеринг: **жирный**, *курсив*, `код`, заголовки, блоки кода - Навигация по истории сообщений - Выделение и копирование текста мышью - Visual mode для выделения текста клавиатурой - Настраиваемая цветовая тема - Анимированный индикатор ожидания ответа ## Установка ```bash go install ./cmd/ludmila-ai-tui ``` Или соберите из исходников: ```bash git clone cd ludmila-ai-tui go build -o ludmila-ai-tui ``` ## Конфигурация Файл: `~/.config/ludmila-ai-tui/config.json` ```json { "theme": "system", "default_provider": "openai", "providers": { "openai": { "name": "OpenAI", "base_url": "https://api.openai.com", "api_key": "$OPENAI_API_KEY", "type": "openai-compat" }, "local": { "name": "Local (Ollama)", "base_url": "http://localhost:11434", "type": "openai-compat" } } } ``` - `api_key` можно указать напрямую или через переменную окружения (`$NAME`) - Провайдеров может быть любое количество - Модели загружаются автоматически через эндпоинт `/api/tags` при запуске ### Темы По умолчанию используется системная тема. Чтобы добавить кастомную, создайте `~/.config/ludmila-ai-tui/themes/.json` и укажите `"theme": ""` в конфиге. ## Использование | Клавиша | Действие | |---|---| | `Enter` | Отправить сообщение | | `Ctrl+O` | Выбрать модель | | `Ctrl+S` | Список сессий | | `Ctrl+N` | Новая сессия | | `Ctrl+W` | Закрыть текущую сессию | | `Ctrl+V` | Visual mode (выделение текста) | | `Ctrl+C` | Выход | | `Esc` | Отменить streaming / закрыть диалог | | `↑` / `↓` | История сообщений | | `PgUp` / `PgDn` | Прокрутка | | Мышь | Выделение и копирование в буфер обмена | В visual mode: - `j`/`k` — перемещение курсора - `v` — начать/закончить выделение - `Enter` — скопировать выделенное ## Хранилище Сессии сохраняются в `~/.local/share/ludmila-ai-tui/sessions/`. Каждая сессия — отдельный JSON-файл. Удаление помечает сессию как удалённую (флаг `deleted`), файл не стирается. ## Лицензия MIT