Мощный терминальный ИИ-ассистент для кодинга с интерактивным и неинтерактивным режимами, системой плагинов и мультиязычной поддержкой.
Ollama Code CLI (@ollama-code/ollama-code) — терминальный ИИ-ассистент для кодинга, предоставляющий интеллектуальную генерацию кода, манипуляцию файлами и выполнение команд оболочки через локальные LLM модели посредством Ollama.
| Возможность | Описание |
|---|---|
| Интерактивный чат | Разговор с ИИ в реальном времени в терминале |
| Неинтерактивный режим | Скриптуемое, pipe-ориентированное выполнение |
| Система инструментов | 30+ встроенных инструментов для файлов, кода и shell |
| Система плагинов | Расширяемость через пользовательские плагины и MCP серверы |
| Субагенты | Создание специализированных ИИ-агентов для сложных задач |
| Мультиязычность | Поддержка русского, английского, китайского UI |
| Темы | 15+ встроенных цветовых тем |
| Vim режим | Vim-стиль навигации и редактирования |
| Управление сессиями | Возобновление предыдущих разговоров |
| Режим песочницы | Безопасная среда выполнения |
# Глобальная установка
npm install -g @ollama-code/ollama-code
# Или запуск напрямую
npx @ollama-code/ollama-code
# Клонирование репозитория
git clone https://github.com/ollama-code/ollama-code.git
cd ollama-code
# Установка зависимостей
pnpm install
# Сборка CLI пакета
cd packages/cli
pnpm build
# Линковка глобально
npm link
При первом запуске Ollama Code проведёт вас через настройку:
ollama
Мастер настройки:
~/.ollama-code/config.jsonЗапуск интерактивной сессии:
# Запуск с моделью по умолчанию
ollama
# Запуск с конкретной моделью
ollama --model llama3.2
# Запуск в конкретной директории
cd /путь/к/проекту && ollama
Обработка одного промпта и выход:
# Один промпт
ollama --prompt "Объясни этот код" < myfile.ts
# Pipe ввод
echo "Какая столица Франции?" | ollama
# С конкретной моделью
ollama --model deepseek-r1 --prompt "Реши эту задачу"
Продолжение предыдущего разговора:
# Показать выбор сессий
ollama --resume
# Возобновить конкретную сессию
ollama --resume session-abc123
Интерактивный режим предоставляет полнофункциональный терминальный UI для общения с ИИ.
┌──────────────────────────────────────────────────────────────────┐
│ Ollama Code v0.11.0 │ model: llama3.2 │ /путь/к/проекту │
├──────────────────────────────────────────────────────────────────┤
│ │
│ User: Напиши функцию сортировки массива │
│ │
│ Assistant: Помогу написать функцию сортировки массива... │
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ function sortArray(arr: number[]): number[] { │ │
│ │ return [...arr].sort((a, b) => a - b); │ │
│ │ } │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
├──────────────────────────────────────────────────────────────────┤
│ > Введите сообщение... (Enter для отправки) │
└──────────────────────────────────────────────────────────────────┘
| Возможность | Описание |
|---|---|
| Многострочный ввод | Shift+Enter для новой строки |
| Навигация по истории | Стрелки вверх/вниз для истории сообщений |
| Автодополнение | Tab для дополнения команд |
| Обратный поиск | Ctrl+R для поиска по истории |
Доступ к командам через /:
| Команда | Описание |
|---|---|
/help |
Показать доступные команды |
/model |
Сменить модель |
/theme |
Изменить цветовую тему |
/clear |
Очистить разговор |
/compress |
Сжать контекст |
/export |
Экспортировать разговор |
/memory |
Управление памятью |
/mcp |
Управление MCP серверами |
/agents |
Управление субагентами |
/settings |
Открыть настройки |
/quit |
Выйти из приложения |
Используйте @ для быстрых действий:
| Команда | Описание |
|---|---|
@file путь/к/файлу |
Включить файл в контекст |
@folder путь/к/директории |
Включить содержимое директории |
@git |
Включить git контекст |
@url https://... |
Включить содержимое URL |
Неинтерактивный режим предназначен для скриптинга и автоматизации.
# Промпт через командную строку
ollama --prompt "Ваш вопрос здесь"
# Pipe из stdin
cat code.ts | ollama --prompt "Проверь этот код"
# Перенаправление файла
ollama --prompt "Проанализируй" < data.txt
# Here document
ollama --prompt "$(cat <<EOF
Проанализируй этот код:
$(cat myfile.ts)
EOF
)"
# Текстовый вывод (по умолчанию)
ollama --prompt "Привет"
# JSON вывод
ollama --prompt "Привет" --output json
# JSONL потоковый
ollama --prompt "Привет" --input-format stream-json
Для продвинутой автоматизации:
# Ввод через stdin
ollama --input-format stream-json
# Отправка контрольных сообщений
echo '{"type":"initialize","config":{}}' | ollama --input-format stream-json
# Получение потокового вывода
{"type":"content","text":"Привет"}
{"type":"tool_call","name":"read_file","args":{}}
{"type":"tool_result","result":"содержимое файла"}
{"type":"done"}
| Код | Описание |
|---|---|
| 0 | Успех |
| 1 | Ошибка |
| 2 | Отменено пользователем |
| 3 | Таймаут |
# Сменить модель
/model llama3.2
# Список доступных моделей
/model list
# Информация о текущей модели
/model info
# Читать файл
@file путь/к/файлу.ts
# Записать файл (через промпт)
"Создай новый файл src/utils.ts с вспомогательными функциями"
# Редактировать файл (через промпт)
"Добавь TypeScript типы в src/api.ts"
# Поиск файлов (через промпт)
"Найди все TypeScript файлы, которые импортируют axios"
Инструменты могут выполнять shell команды:
# Через промпт
"Запусти npm test и покажи результаты"
"Выполни git status"
"Запусти dev сервер"
# Через промпт
"Закоммить эти изменения с сообщением 'Добавить функцию'"
"Создай новую ветку feature/auth"
"Покажи git log последних 5 коммитов"
# Показать память
/memory show
# Обновить память
/memory refresh
# Очистить память
/memory clear
# Экспорт сессии
/export --format json
# Экспорт в markdown
/export --format markdown
# Экспорт в HTML
/export --format html
Конфигурация хранится в ~/.ollama-code/:
~/.ollama-code/
├── config.json # Основная конфигурация
├── settings.json # Пользовательские настройки
├── memory/ # Хранилище памяти
├── sessions/ # История сессий
└── plugins/ # Пользовательские плагины
{
"baseUrl": "http://localhost:11434",
"model": "llama3.2",
"embeddingModel": "nomic-embed-text",
"sessionId": "session-abc123"
}
{
"general": {
"outputLanguage": "ru",
"debugMode": false,
"autoUpdate": true
},
"ui": {
"theme": "ollama-dark",
"hideWindowTitle": false
},
"tools": {
"useRipgrep": true,
"useBuiltinRipgrep": true
},
"security": {
"auth": {
"useExternal": false
}
}
}
| Переменная | Описание | По умолчанию |
|---|---|---|
OLLAMA_HOST |
URL сервера Ollama | localhost:11434 |
OLLAMA_BASE_URL |
Полный URL Ollama | http://localhost:11434 |
OLLAMA_MODEL |
Модель по умолчанию | llama3.2 |
OLLAMA_CODE_DEBUG |
Включить debug режим | false |
OLLAMA_CODE_NO_RELAUNCH |
Отключить авто-перезапуск | false |
ollama [опции]
Опции:
--model <имя> Использовать конкретную модель
--prompt <текст> Неинтерактивный промпт
--resume [сессия] Возобновить сессию
--output <формат> Формат вывода (text|json)
--input-format <формат> Формат ввода (text|stream-json)
--debug Включить debug режим
--no-sandbox Отключить песочницу
--extensions <пути> Загрузить расширения
--help Показать справку
--version Показать версию
Ollama Code включает 15+ встроенных тем для персонализации внешнего вида.
| Тема | Описание |
|---|---|
default |
Стандартная тёмная тема |
ollama-dark |
Тёмная тема Ollama |
ollama-light |
Светлая тема Ollama |
dracula |
Цветовая схема Dracula |
nord |
Цветовая схема Nord |
tokyo-night |
Тема Tokyo Night |
catppuccin |
Catppuccin Mocha |
github-dark |
GitHub Dark |
github-light |
GitHub Light |
atom-one-dark |
Atom One Dark |
ayu |
Ayu Mirage |
ayu-light |
Ayu Light |
xcode |
Тема Xcode |
googlecode |
Тема Google Code |
shades-of-purple |
Фиолетовая тема |
no-color |
Без цветов (монохром) |
# Интерактивно
/theme
# Напрямую
/theme dracula
Добавьте пользовательские темы в настройках:
{
"ui": {
"customThemes": {
"my-theme": {
"colors": {
"primary": "#ff6b6b",
"background": "#1a1a2e",
"text": "#eaeaea"
}
}
}
}
}
Ollama Code поддерживает систему плагинов для расширения функциональности.
| Расположение | Описание |
|---|---|
~/.ollama-code/plugins/ |
Пользовательские плагины |
.ollama-code/plugins/ |
Проектные плагины |
| Встроенные | Core, Dev, File, Search, Shell инструменты |
# Установка из npm
/extensions install @ollama-code/plugin-example
# Установка из локального пути
/extensions link /путь/к/плагину
# Установка из URL
/extensions install https://github.com/user/plugin
# Список установленных
/extensions list
# Включить расширение
/extensions enable my-extension
# Отключить расширение
/extensions disable my-extension
# Обновить расширение
/extensions update my-extension
# Удалить расширение
/extensions uninstall my-extension
Структура плагина:
my-plugin/
├── ollama-extension.json # Манифест плагина
├── index.ts # Точка входа
├── commands/ # Пользовательские команды
│ └── myCommand.ts
├── tools/ # Пользовательские инструменты
│ └── myTool.ts
└── skills/ # ИИ навыки
└── mySkill.md
Манифест (ollama-extension.json):
{
"name": "my-plugin",
"version": "1.0.0",
"description": "Мой пользовательский плагин",
"main": "dist/index.js",
"commands": ["commands/*.js"],
"tools": ["tools/*.js"],
"skills": ["skills/*.md"]
}
Субагенты — специализированные ИИ-агенты, которые могут выполнять сложные многошаговые задачи.
# Открыть менеджер субагентов
/agents
# Создать новый субагент
/agents create
# Посмотреть детали субагента
/agents view <имя>
# Удалить субагент
/agents delete <имя>
| Агент | Описание |
|---|---|
architect |
Проектирование систем и архитектура |
debugger |
Отладка и анализ ошибок |
tester |
Генерация и выполнение тестов |
reviewer |
Ревью кода и качество |
# Через промпт
"Используй агент architect для проектирования системы аутентификации"
"Запусти агент debugger для исправления этой ошибки"
"Пусть агент reviewer проверит этот PR"
Создайте пользовательские субагенты:
# .ollama-code/agents/myAgent.md
# Мой Пользовательский Агент
Ты специализированный агент для [цель].
## Возможности
- Возможность 1
- Возможность 2
## Инструкции
1. Шаг 1
2. Шаг 2
Model Context Protocol (MCP) позволяет интеграцию с внешними инструментами и сервисами.
# Список MCP серверов
/mcp list
# Добавить MCP сервер
/mcp add <имя> <команда>
# Удалить MCP сервер
/mcp remove <имя>
# Показать статус MCP
/mcp status
# Добавить filesystem MCP сервер
/mcp add filesystem npx -y @modelcontextprotocol/server-filesystem /путь/к/директории
# Добавить GitHub MCP сервер
/mcp add github npx -y @modelcontextprotocol/server-github
# Добавить PostgreSQL MCP сервер
/mcp add postgres npx -y @modelcontextprotocol/server-postgres
MCP серверы настраиваются в settings:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/путь"],
"env": {}
}
}
}
Для MCP серверов, требующих OAuth:
# Аутентификация с MCP сервером
/mcp auth <имя-сервера>
# Проверить статус аутентификации
/mcp auth-status <имя-сервера>
| Сочетание | Действие |
|---|---|
Ctrl+C |
Отменить текущую операцию |
Ctrl+D |
Выйти из приложения |
Ctrl+L |
Очистить экран |
Ctrl+R |
Обратный поиск по истории |
Escape |
Отменить/закрыть диалог |
| Сочетание | Действие |
|---|---|
Enter |
Отправить сообщение |
Shift+Enter |
Новая строка |
Up |
Предыдущий элемент истории |
Down |
Следующий элемент истории |
Tab |
Автодополнение |
Ctrl+V |
Вставить из буфера обмена |
Когда Vim режим включён:
| Сочетание | Действие |
|---|---|
Esc |
Нормальный режим |
i |
Режим вставки |
:w |
Сохранить |
:q |
Выйти |
j/k |
Навигация по истории |
/ |
Поиск |
| Сочетание | Действие |
|---|---|
Tab |
Следующий элемент |
Shift+Tab |
Предыдущий элемент |
Enter |
Подтвердить |
Escape |
Отменить |
Стрелки |
Навигация по списку |
Симптомы: “Невозможно подключиться к серверу Ollama”
Решения:
curl http://localhost:11434/api/tags
OLLAMA_HOSTСимптомы: “Модель не найдена: llama3.2”
Решения:
ollama list
ollama pull llama3.2
/model <доступная-модель>
Симптомы: Медленная работа, падения
Решения:
/compress
/clear
NODE_OPTIONS="--max-old-space-size=4096" ollama
Симптомы: Искажённый вывод, пропущенные символы
Решения:
reset
/theme default
Включите debug логирование:
# Через флаг
ollama --debug
# Через переменную окружения
OLLAMA_CODE_DEBUG=1 ollama
Debug логи сохраняются в:
~/.ollama-code/logs/session-<id>.log
/helpApache License 2.0