ollama-code

Ollama Code CLI - Полное руководство по использованию

Мощный терминальный ИИ-ассистент для кодинга с интерактивным и неинтерактивным режимами, системой плагинов и мультиязычной поддержкой.

Содержание

  1. Обзор
  2. Установка
  3. Быстрый старт
  4. Интерактивный режим
  5. Неинтерактивный режим
  6. Справочник команд
  7. Конфигурация
  8. Темы
  9. Плагины и расширения
  10. Субагенты
  11. MCP интеграция
  12. Горячие клавиши
  13. Устранение неполадок

Обзор

Ollama Code CLI (@ollama-code/ollama-code) — терминальный ИИ-ассистент для кодинга, предоставляющий интеллектуальную генерацию кода, манипуляцию файлами и выполнение команд оболочки через локальные LLM модели посредством Ollama.

Основные возможности

Возможность Описание
Интерактивный чат Разговор с ИИ в реальном времени в терминале
Неинтерактивный режим Скриптуемое, pipe-ориентированное выполнение
Система инструментов 30+ встроенных инструментов для файлов, кода и shell
Система плагинов Расширяемость через пользовательские плагины и MCP серверы
Субагенты Создание специализированных ИИ-агентов для сложных задач
Мультиязычность Поддержка русского, английского, китайского UI
Темы 15+ встроенных цветовых тем
Vim режим Vim-стиль навигации и редактирования
Управление сессиями Возобновление предыдущих разговоров
Режим песочницы Безопасная среда выполнения

Технологический стек


Установка

Предварительные требования

Установка через npm

# Глобальная установка
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

Мастер настройки:

  1. Запросит URL сервера Ollama (по умолчанию: http://localhost:11434)
  2. Позволит выбрать модель по умолчанию
  3. Сохранит конфигурацию в ~/.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 для поиска по истории

Slash-команды

Доступ к командам через /:

Команда Описание
/help Показать доступные команды
/model Сменить модель
/theme Изменить цветовую тему
/clear Очистить разговор
/compress Сжать контекст
/export Экспортировать разговор
/memory Управление памятью
/mcp Управление MCP серверами
/agents Управление субагентами
/settings Открыть настройки
/quit Выйти из приложения

At-команды

Используйте @ для быстрых действий:

Команда Описание
@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

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 сервер"

Git операции

# Через промпт
"Закоммить эти изменения с сообщением 'Добавить функцию'"

"Создай новую ветку 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/             # Пользовательские плагины

Основная конфигурация (config.json)

{
  "baseUrl": "http://localhost:11434",
  "model": "llama3.2",
  "embeddingModel": "nomic-embed-text",
  "sessionId": "session-abc123"
}

Пользовательские настройки (settings.json)

{
  "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

MCP интеграция

Model Context Protocol (MCP) позволяет интеграцию с внешними инструментами и сервисами.

Управление MCP серверами

# Список MCP серверов
/mcp list

# Добавить MCP сервер
/mcp add <имя> <команда>

# Удалить MCP сервер
/mcp remove <имя>

# Показать статус MCP
/mcp status

Добавление MCP серверов

# Добавить 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

MCP серверы настраиваются в settings:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/путь"],
      "env": {}
    }
  }
}

OAuth аутентификация

Для 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 режима

Когда Vim режим включён:

Сочетание Действие
Esc Нормальный режим
i Режим вставки
:w Сохранить
:q Выйти
j/k Навигация по истории
/ Поиск

Навигация в диалогах

Сочетание Действие
Tab Следующий элемент
Shift+Tab Предыдущий элемент
Enter Подтвердить
Escape Отменить
Стрелки Навигация по списку

Устранение неполадок

Частые проблемы

Ошибка подключения к Ollama

Симптомы: “Невозможно подключиться к серверу Ollama”

Решения:

  1. Проверьте, что Ollama работает:
    curl http://localhost:11434/api/tags
    
  2. Проверьте переменную окружения OLLAMA_HOST
  3. Убедитесь в правильности URL в конфигурации

Модель не найдена

Симптомы: “Модель не найдена: llama3.2”

Решения:

  1. Список доступных моделей:
    ollama list
    
  2. Загрузите модель:
    ollama pull llama3.2
    
  3. Переключитесь на доступную модель:
    /model <доступная-модель>
    

Проблемы с памятью

Симптомы: Медленная работа, падения

Решения:

  1. Сожмите контекст:
    /compress
    
  2. Очистите сессию:
    /clear
    
  3. Увеличьте память Node:
    NODE_OPTIONS="--max-old-space-size=4096" ollama
    

Проблемы с отображением в терминале

Симптомы: Искажённый вывод, пропущенные символы

Решения:

  1. Сброс терминала:
    reset
    
  2. Проверьте совместимость терминала
  3. Используйте простую тему:
    /theme default
    

Debug режим

Включите debug логирование:

# Через флаг
ollama --debug

# Через переменную окружения
OLLAMA_CODE_DEBUG=1 ollama

Debug логи сохраняются в:

~/.ollama-code/logs/session-<id>.log

Получение помощи

  1. Встроенная справка: /help
  2. Документация: https://github.com/ollama-code/ollama-code/docs
  3. Проблемы: https://github.com/ollama-code/ollama-code/issues

Лицензия

Apache License 2.0