Полная справочная документация по всем доступным инструментам в Ollama Code.
Ollama Code поддерживает короткие псевдонимы для частых инструментов. Вы можете использовать их вместо полных имён:
| Псевдоним | Каноническое имя |
|---|---|
run, shell, exec, cmd |
run_shell_command |
read |
read_file |
readmany, read_all, cat |
read_many_files |
write, create |
write_file |
edit, replace |
edit |
grep, search, find |
grep_search |
glob, files |
glob |
ls, list, dir |
list_directory |
todo, todos |
todo_write |
memory, save |
save_memory |
agent, subagent |
task |
websearch, web |
web_search |
webfetch, fetch, url |
web_fetch |
py, python, pip, pytest |
python_dev |
node, npm, yarn, pnpm, bun |
nodejs_dev |
go, golang |
golang_dev |
Читает и возвращает содержимое указанного файла. Поддерживает текстовые файлы, изображения (PNG, JPG, GIF, WEBP, SVG, BMP) и PDF-файлы.
Параметры:
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
absolute_path |
string | Да | Абсолютный путь к файлу для чтения |
offset |
number | Нет | Номер строки (с 0) для начала чтения (для пагинации) |
limit |
number | Нет | Максимальное количество строк для чтения |
Пример:
{
"absolute_path": "/home/user/project/src/index.ts"
}
Для больших файлов:
{
"absolute_path": "/home/user/project/large-file.log",
"offset": 100,
"limit": 50
}
Читает несколько файлов за одну операцию. Эффективнее нескольких вызовов read_file для пакетных операций.
Параметры:
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
paths |
string[] | Да | Массив абсолютных путей к файлам |
offset |
number | Нет | Смещение строк |
limit |
number | Нет | Максимальное количество строк на файл |
Записывает содержимое в файл, создавая его при отсутствии или перезаписывая при наличии. Автоматически создаёт родительские директории.
Параметры:
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
file_path |
string | Да | Абсолютный путь к файлу для записи |
content |
string | Да | Содержимое для записи в файл |
Пример:
{
"file_path": "/home/user/project/src/utils.ts",
"content": "export function greet(name: string): string {\n return `Привет, ${name}!`;\n}"
}
Выполняет поиск и замену в существующих файлах. Требует точного совпадения строк, включая пробелы и отступы.
Параметры:
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
file_path |
string | Да | Абсолютный путь к файлу для редактирования |
old_string |
string | Да | Точный текст для замены (должен совпадать полностью) |
new_string |
string | Да | Текст для замены |
replace_all |
boolean | Нет | Заменить все вхождения (по умолчанию: false) |
Важные замечания:
replace_all: true для замены всех вхожденийПример:
{
"file_path": "/home/user/project/src/app.ts",
"old_string": "function oldName() {\n return 'old';\n}",
"new_string": "function newName() {\n return 'new';\n}"
}
Быстрый поиск файлов по шаблону. Работает с кодовой базой любого размера. Возвращает пути к файлам, отсортированные по времени изменения.
Параметры:
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
pattern |
string | Да | Glob-шаблон (напр., **/*.ts, src/**/*.js) |
path |
string | Нет | Директория для поиска (по умолчанию - корень проекта) |
Примеры:
// Найти все TypeScript файлы
{ "pattern": "**/*.ts" }
// Найти JavaScript файлы в директории src
{ "pattern": "src/**/*.js" }
// Найти все JSON файлы
{ "pattern": "*.json", "path": "/home/user/project/config" }
Поиск паттернов в содержимом файлов с использованием регулярных выражений. По умолчанию регистронезависимый.
Параметры:
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
pattern |
string | Да | Регулярное выражение для поиска |
path |
string | Нет | Директория или файл для поиска |
glob |
string | Нет | Glob-шаблон для фильтрации файлов |
limit |
number | Нет | Максимальное количество совпадающих строк |
Примеры:
// Найти все объявления функций
{ "pattern": "function\\s+\\w+" }
// Найти TODO в TypeScript файлах
{ "pattern": "TODO|FIXME", "glob": "*.ts" }
// Найти импорты в конкретной директории
{ "pattern": "import.*from", "path": "src/components" }
Выводит список файлов и поддиректорий в указанной директории.
Параметры:
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
path |
string | Да | Абсолютный путь к директории |
ignore |
string[] | Нет | Glob-шаблоны для игнорирования |
file_filtering_options |
object | Нет | Опции для gitignore/ollama-codeignore |
Пример:
{
"path": "/home/user/project/src",
"ignore": ["node_modules", "*.test.ts"]
}
Комплексный инструмент для разработки на Python - управление проектами, виртуальными окружениями и выполнение Python-команд.
Параметры:
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
action |
string | Да | Действие для выполнения (см. ниже) |
script |
string | Нет | Путь к Python-скрипту для run |
args |
string[] | Нет | Дополнительные аргументы |
packages |
string[] | Нет | Пакеты для операций pip |
directory |
string | Нет | Рабочая директория |
venv |
string | Нет | Путь к виртуальному окружению |
python_path |
string | Нет | Путь к Python-интерпретатору |
timeout |
number | Нет | Таймаут в миллисекундах (макс. 600000) |
test_pattern |
string | Нет | Шаблон тестов для pytest |
lint_config |
string | Нет | Путь к конфигу линтера |
requirements_file |
string | Нет | Путь к requirements.txt |
command |
string | Нет | Пользовательская команда |
Доступные действия:
| Действие | Описание |
|---|---|
run |
Выполнить Python-скрипт |
test |
Запустить pytest тесты |
lint |
Запустить pylint анализ кода |
format |
Запустить black форматирование |
venv_create |
Создать виртуальное окружение |
venv_activate |
Получить команду активации venv |
pip_install |
Установить пакеты через pip |
pip_list |
Список установленных пакетов |
pip_freeze |
Сгенерировать requirements.txt |
mypy |
Запустить mypy проверку типов |
custom |
Выполнить пользовательскую команду |
Примеры:
// Запустить Python-скрипт
{
"action": "run",
"script": "main.py",
"args": ["--verbose", "input.txt"]
}
// Запустить pytest с паттерном
{
"action": "test",
"test_pattern": "tests/unit/",
"args": ["-k", "test_auth"]
}
// Создать виртуальное окружение
{
"action": "venv_create",
"venv": ".venv"
}
// Установить пакеты
{
"action": "pip_install",
"packages": ["requests", "numpy"],
"venv": ".venv"
}
Инструмент для разработки на Node.js/JavaScript с поддержкой npm, yarn, pnpm и bun. Автоопределение менеджера пакетов по lock-файлам.
Параметры:
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
action |
string | Да | Действие для выполнения |
package_manager |
string | Нет | Менеджер пакетов (npm, yarn, pnpm, bun) |
script |
string | Нет | Путь к скрипту для run |
args |
string[] | Нет | Дополнительные аргументы |
packages |
string[] | Нет | Пакеты для add/remove |
directory |
string | Нет | Рабочая директория |
dev |
boolean | Нет | Добавить как dev-зависимость |
global |
boolean | Нет | Установить глобально |
timeout |
number | Нет | Таймаут в миллисекундах |
script_name |
string | Нет | Имя скрипта из package.json |
command |
string | Нет | Пользовательская команда |
background |
boolean | Нет | Запустить в фоновом режиме |
Доступные действия:
| Действие | Описание |
|---|---|
run |
Выполнить Node.js скрипт |
install |
Установить зависимости |
add |
Добавить пакеты |
remove |
Удалить пакеты |
update |
Обновить пакеты |
run_script |
Запустить скрипт из package.json |
test |
Запустить тесты |
build |
Запустить сборку |
dev |
Запустить dev-сервер |
lint |
Запустить линтер |
exec |
Выполнить npx/yarn dlx команду |
info |
Показать информацию о пакете |
list |
Список установленных пакетов |
outdated |
Проверить устаревшие пакеты |
audit |
Проверка безопасности |
clean |
Удалить node_modules и lock-файлы |
init |
Инициализировать новый проект |
custom |
Выполнить пользовательскую команду |
Примеры:
// Установить зависимости
{ "action": "install" }
// Добавить пакеты
{
"action": "add",
"packages": ["express", "lodash"],
"dev": false
}
// Запустить dev-сервер в фоне
{
"action": "dev",
"background": true,
"package_manager": "bun"
}
// Запустить пользовательскую npx команду
{
"action": "exec",
"command": "create-next-app",
"args": ["my-app", "--typescript"]
}
Инструмент для разработки на Go - управление проектами, модулями и выполнение Go-команд.
Параметры:
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
action |
string | Да | Действие для выполнения |
file |
string | Нет | Путь к Go-файлу |
args |
string[] | Нет | Дополнительные аргументы |
package |
string | Нет | Путь к пакету |
packages |
string[] | Нет | Пакеты для get/install |
directory |
string | Нет | Рабочая директория |
output |
string | Нет | Имя выходного бинарника для build |
timeout |
number | Нет | Таймаут в миллисекундах |
test_pattern |
string | Нет | Шаблон имени теста |
bench_pattern |
string | Нет | Шаблон бенчмарка |
cover_profile |
string | Нет | Файл вывода покрытия |
race |
boolean | Нет | Включить детектор гонок |
verbose |
boolean | Нет | Подробный вывод |
background |
boolean | Нет | Запустить в фоне |
module_name |
string | Нет | Имя модуля для go mod init |
command |
string | Нет | Пользовательская команда |
Доступные действия:
| Действие | Описание |
|---|---|
run |
Запустить Go-файл или пакет |
build |
Собрать Go-программу |
test |
Запустить тесты |
test_cover |
Запустить тесты с покрытием |
test_bench |
Запустить бенчмарки |
fmt |
Форматировать Go-код |
vet |
Запустить go vet |
lint |
Запустить golangci-lint |
mod_init |
Инициализировать go.mod |
mod_tidy |
Упорядочить зависимости |
mod_download |
Скачать зависимости |
mod_verify |
Верифицировать зависимости |
mod_graph |
Показать граф зависимостей |
get |
Добавить зависимость |
install |
Установить Go-утилиту |
list |
Список пакетов |
doc |
Показать документацию |
env |
Показать Go-окружение |
version |
Показать версию Go |
clean |
Очистить кэш сборки |
generate |
Запустить go generate |
custom |
Выполнить пользовательскую команду |
Примеры:
// Запустить Go-файл
{
"action": "run",
"file": "main.go",
"args": ["--config", "config.yaml"]
}
// Запустить тесты с детектором гонок
{
"action": "test",
"race": true,
"verbose": true,
"test_pattern": "TestUser"
}
// Собрать с именем выхода
{
"action": "build",
"output": "myapp",
"package": "./cmd/server"
}
// Инициализировать модуль
{
"action": "mod_init",
"module_name": "github.com/user/myproject"
}
Выполняет команды в терминале. Поддерживает выполнение как на переднем плане, так и в фоновом режиме.
Параметры:
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
command |
string | Да | Команда для выполнения |
description |
string | Нет | Краткое описание команды |
directory |
string | Нет | Рабочая директория |
timeout |
number | Нет | Таймаут в миллисекундах (макс. 600000, по умолчанию 120000) |
is_background |
boolean | Нет | Запустить в фоновом режиме |
Примеры:
// Выполнить git команды
{
"command": "git status && git diff",
"description": "Проверить статус и изменения git"
}
// Запустить dev-сервер в фоне
{
"command": "npm run dev",
"description": "Запустить сервер разработки",
"is_background": true
}
Ищет информацию в интернете. Требует настройки провайдера поиска (Tavily или Google).
Параметры:
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
query |
string | Да | Поисковый запрос |
provider |
string | Нет | Провайдер (tavily, google) |
Пример:
{
"query": "Next.js 15 app router лучшие практики 2024"
}
Получает содержимое по URL и обрабатывает его с помощью ИИ для извлечения релевантной информации.
Параметры:
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
url |
string | Да | URL для получения содержимого |
prompt |
string | Да | Что извлечь или обработать из содержимого |
Пример:
{
"url": "https://react.dev/learn",
"prompt": "Извлечь основные концепции и ключевые выводы из этой страницы документации React"
}
Создаёт и управляет структурированным списком задач для отслеживания прогресса.
Параметры:
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
todos |
array | Да | Массив элементов задач |
Структура элемента задачи:
| Поле | Тип | Описание |
|---|---|---|
id |
string | Уникальный идентификатор |
content |
string | Описание задачи |
status |
string | Одно из: pending, in_progress, completed |
Пример:
{
"todos": [
{ "id": "1", "content": "Создать API endpoints", "status": "completed" },
{ "id": "2", "content": "Добавить аутентификацию", "status": "in_progress" },
{ "id": "3", "content": "Написать тесты", "status": "pending" }
]
}
Делегирует сложные многошаговые задачи специализированным субагентам.
Параметры:
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
subagent_type |
string | Да | Тип субагента |
description |
string | Да | Краткое описание (3-5 слов) |
prompt |
string | Да | Подробные инструкции по задаче |
Пример:
{
"subagent_type": "general-purpose",
"description": "Исследование API",
"prompt": "Исследовать лучшие практики дизайна REST API и предоставить сводку ключевых принципов"
}
Сохраняет информацию в долгосрочную память для использования в будущих сессиях.
Параметры:
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
fact |
string | Да | Факт или информация для запоминания |
scope |
string | Нет | global (все проекты) или project (текущий проект) |
Пример:
{
"fact": "Пользователь предпочитает TypeScript вместо JavaScript для новых проектов",
"scope": "global"
}
Выполняет специализированные навыки для конкретных задач.
Параметры:
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
command |
string | Да | Команда навыка для выполнения |
Пример:
{
"command": "pdf"
}
Интеграция с Language Server Protocol для функций интеллектуального анализа кода.
Параметры:
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
action |
string | Да | Действие LSP для выполнения |
file_path |
string | Да | Путь к файлу |
line |
number | Нет | Номер строки |
character |
number | Нет | Позиция символа |
Выходит из режима планирования и представляет план пользователю для утверждения.
Параметры:
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
plan |
string | Да | План для представления на утверждение |
Пример:
{
"plan": "1. Создать схему базы данных\n2. Реализовать API endpoints\n3. Добавить фронтенд компоненты\n4. Написать тесты"
}
Все инструменты возвращают согласованную структуру ошибки при возникновении проблем:
{
"llmContent": "Подробное сообщение об ошибке для LLM",
"returnDisplay": "Дружелюбное сообщение об ошибке для пользователя",
"error": {
"message": "Детали ошибки",
"type": "код_типа_ошибки"
}
}
Типичные типы ошибок:
| Тип ошибки | Описание |
|---|---|
file_not_found |
Запрошенный файл не существует |
permission_denied |
Недостаточно прав |
invalid_tool_params |
Неверные или отсутствующие параметры |
execution_failed |
Ошибка выполнения инструмента |
timeout |
Превышено время ожидания |
old_string для редактированияglob или grep_search перед чтением для поиска файловglob для поиска файлов по шаблону имениgrep_search для поиска содержимого файловpython_dev, nodejs_dev, golang_dev) вместо сырых shell-командbackground: true для длительных процессовin_progress одновременноИнструменты можно включать/выключать в settings.json:
{
"coreTools": ["read_file", "edit", "run_shell_command"],
"excludeTools": ["web_search"]
}