ludmila-ai-tui/README.md

92 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 <repo-url>
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/<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