AI-ассистент для VS Code с агентным циклом, 20+ инструментами, системой подагентов и поддержкой любого OpenAI-совместимого LLM API.
Автор: gmrx Лицензия: Доступ только по личному соглашению с автором.
- Агентный цикл — модель сама выбирает инструменты, анализирует проект, пишет и редактирует код.
- 20+ инструментов — чтение, запись, поиск, grep, символы, зависимости, shell, semantic search, web search/fetch.
- Подагенты — параллельное и последовательное выполнение задач (explore, shell, generalPurpose).
- Авто-контекст — при первом сообщении автоматически сканирует структуру проекта, файлы и стек.
- SCM-интеграция — изменения файлов отображаются в Source Control с возможностью Accept/Reject поштучно или все сразу.
- Checkpoints — снимки состояния перед каждым запросом; откат и отмена отката.
- Diff — unified diff в карточках файлов + inline-декорации в редакторе (зелёные/красные).
- Mermaid-диаграммы — рендеринг в SVG, переключение source/diagram, полноэкранный режим с зумом.
- Markdown — подсветка кода (highlight.js), таблицы, ссылки, кнопка копирования для блоков кода.
- Shell с подтверждением — команды выполняются только после одобрения пользователем; опасные паттерны блокируются.
- Quick tags — быстрые подсказки для начала диалога + LLM-генерируемые follow-up предложения.
| Инструмент | Описание |
|---|---|
scan_structure |
Структура верхнего уровня проекта |
list_files |
Дерево файлов (с фильтром по пути) |
glob |
Поиск файлов по glob-паттерну |
detect_stack |
Определение языков, фреймворков, точек входа |
grep |
Regex-поиск по файлам с контекстом |
read_file |
Чтение файла (smart summary для больших файлов) |
read_file_range |
Чтение диапазона строк |
str_replace |
Точная замена строки в файле |
write_file |
Создание / перезапись файла |
delete_file |
Удаление файла |
edit_notebook |
Редактирование ячеек Jupyter |
extract_symbols |
Символы документа (функции, классы, типы) |
workspace_symbols |
Поиск символов по всему workspace |
dependencies |
Граф импортов и зависимости пакетов |
read_lints |
Диагностика линтера / компилятора |
semantic_search |
Семантический поиск через embeddings + rerank |
web_search |
Поиск в интернете (DuckDuckGo) |
web_fetch |
Загрузка и извлечение текста с URL |
shell |
Выполнение shell-команды (с подтверждением) |
subagent |
Запуск подагента (одиночный или batch) |
final_answer |
Завершение анализа и выдача ответа |
npm install
npm run buildОткройте папку проекта в VS Code и нажмите F5 — запустится новое окно с загруженным расширением.
npm run packageСоздаст .vsix файл для установки через Extensions: Install from VSIX.
Откройте чат-панель (иконка в Activity Bar) → вкладка Settings, или через Settings → AI Assistant.
| Параметр | Обязательный | Описание |
|---|---|---|
aiAssistant.apiBaseUrl |
да | URL endpoint (например, https://api.openai.com/v1/chat/completions) |
aiAssistant.apiKey |
да | API-ключ |
aiAssistant.model |
да | Имя модели (например, gpt-4.1-mini) |
aiAssistant.embeddingsModel |
нет | Модель эмбеддингов (для semantic search) |
aiAssistant.rerankModel |
нет | Модель rerank (для переупорядочивания результатов) |
Кнопка Test Connection проверяет соединение и загружает список доступных моделей.
- Откройте панель Coder в Activity Bar.
- Введите сообщение и нажмите
Enter(Shift+Enter— новая строка). - Агент автоматически исследует проект, выбирает инструменты и отвечает.
- Используйте quick tags для быстрого старта или follow-up предложения после ответа.
- Изменения файлов отображаются в карточках с diff.
- Accept / Reject — поштучно для каждого файла.
- Accept All / Reject All — массовые действия.
- Все изменения также видны в Source Control (
AI Agent).
- Перед каждым запросом создаётся снимок состояния файлов.
- Revert — откат к любому checkpoint.
- Undo revert — отмена отката.
Когда агент хочет выполнить команду, появляется карточка подтверждения. Команду можно отредактировать перед запуском.
| Команда | Описание |
|---|---|
AI Assistant: Спросить модель |
Быстрый вопрос — ответ в markdown-документе |
AI Assistant: Настроить |
Мастер настройки API |
src/
├── extension.ts — точка входа, регистрация команд
├── agent/
│ ├── runner.ts — основной цикл агента
│ ├── executor.ts — выполнение инструментов
│ ├── prompt.ts — системный промпт, парсинг JSON
│ ├── tools.ts — описания инструментов для LLM
│ └── checks.ts — проверки монотонности
├── analysis/
│ ├── scanner.ts — сканирование структуры проекта
│ ├── grep.ts — regex-поиск по workspace
│ └── symbols.ts — символы, граф зависимостей
├── core/
│ ├── api.ts — HTTP-запросы к LLM API
│ ├── utils.ts — утилиты (truncate, smartReadFile)
│ ├── constants.ts — лимиты и паттерны
│ └── types.ts — TypeScript-типы
└── ui/
├── provider.ts — webview, SCM, checkpoints, diff
├── webviewTemplate.ts — HTML-шаблон чата
└── markdown.ts — серверный рендеринг markdown
media/
├── chat-app.js — логика UI чата
├── chat-markdown.js — markdown + Mermaid в webview
├── chat.js — UI подагентов
├── webview.css — основные стили
└── webview-extra.css — дополнительные стили
- Совместимость: VS Code ≥ 1.75.0
- Язык: TypeScript → компилируется в
dist/ - Рантайм-зависимости: нет (только VS Code API + Node.js built-in)
- Webview CDN: markdown-it, highlight.js, mermaid
- API: любой OpenAI Chat Completions-совместимый endpoint
- Таймауты: API — 180с, shell — 30с, web_fetch — 15с, web_search — 10с
- Лимиты: файл ≤ 500 КБ, контекст ≤ 100 000 символов, результат инструмента ≤ 8 000 символов