Ludmila AI TUI
Терминальный клиент для OpenAI-совместимых API LLM. Написан на Go с использованием Bubble Tea.
Возможности
- Поддержка нескольких OpenAI-совместимых провайдеров одновременно
- Потоковый вывод ответов (streaming)
- Управление сессиями (создание, переключение, удаление, автосохранение)
- Выбор модели из списка доступных через интерфейс
- Markdown-рендеринг: жирный, курсив,
код, заголовки, блоки кода - Навигация по истории сообщений
- Выделение и копирование текста мышью
- Visual mode для выделения текста клавиатурой
- Настраиваемая цветовая тема
- Анимированный индикатор ожидания ответа
Установка
go install ./cmd/ludmila-ai-tui
Или соберите из исходников:
git clone <repo-url>
cd ludmila-ai-tui
go build -o ludmila-ai-tui
Конфигурация
Файл: ~/.config/ludmila-ai-tui/config.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/<name>.json и укажите "theme": "<name>" в конфиге.
Использование
| Клавиша | Действие |
|---|---|
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
Description
Languages
Go
100%