Команды GigaCode CLI
Общая схема команд
В CLI используются три основных типа команд:
| Префикс | Назначение | Когда использовать |
|---|---|---|
/ | Управление сессией, настройками и поведением агента | Сменить режим, посмотреть статистику, открыть помощь |
@ | Добавление файлов и директорий в контекст диалога | Попросить агента проанализировать конкретный файл или папку |
! | Выполнение shell-команд прямо из CLI | Посмотреть git status, список файлов, diff и т.д. |
Слэш-команды /
Слэш-команды управляют самой CLI-сессией: контекстом, режимами, настройками и встроенными сценариями.
Управление сессией и проектом
| Команда | Описание | Пример |
|---|---|---|
/init | Анализирует текущую директорию и создает начальный контекст проекта | /init |
/summary | Генерирует summary проекта по истории диалога | /summary |
/compress | Сжимает историю чата в summary для экономии токенов | /compress |
/resume | Возвращает предыдущую сессию | /resume |
/recap | Показывает краткое напоминание по текущей сессии | /recap |
/restore | Восстанавливает файлы к состоянию до выполнения инструментов | /restore или /restore <ID> |
Интерфейс и рабочее пространство
| Команда | Описание | Пример |
|---|---|---|
/clear | Очищает экран терминала | /clear |
/context | Показывает использование окна контекста | /context |
/context detail | Показывает детализацию контекста по элементам | /context detail |
/theme | Меняет тему оформления CLI | /theme |
/vim | Включает или выключает Vim-режим ввода | /vim |
/directory | Управляет multi-directory workspace | /dir add ./src,./tests |
/editor | Открывает выбор поддерживаемого редактора | /editor |
Язык интерфейса и ответов
| Команда | Описание | Пример |
|---|---|---|
/language | Показывает или меняет языковые настройки | /language |
/language ui <language> | Меняет язык интерфейса | /language ui ru-RU |
/language output <language> | Меняет язык ответов модели | /language output Russian |
Поддерживаемые встроенные UI-языки на странице-источнике:
en-US;ru-RU.
Инструменты, модели и режимы
| Команда | Описание | Пример |
|---|---|---|
/mcp | Показывает настроенные MCP-серверы и инструменты | /mcp, /mcp desc |
/tools | Показывает доступные инструменты текущей сессии | /tools, /tools desc |
/skills | Показывает и запускает доступные skills | /skills, /skills <name> |
/plan | Включает plan mode или выходит из него | /plan, /plan <task>, /plan exit |
/approval-mode | Меняет режим подтверждений для использования инструментов | /approval-mode <mode> --project |
/model | Переключает модель текущей сессии | /model |
/extensions | Показывает активные extensions | /extensions |
/memory | Открывает менеджер памяти | /memory |
Режимы для /approval-mode, перечисленные в источнике:
| Режим | Смысл |
|---|---|
plan | Только анализ, без выполнения |
default | Подтверждение требуется для правок |
auto-edit | Правки подтверждаются автоматически |
Side Question: /btw
/btw позволяет задать быстрый боковой вопрос, не ломая основной поток работы.
| Команда | Описание |
|---|---|
/btw <вопрос> | Задать быстрый side question |
Особенности поведения:
- вопрос отправляется отдельным API-вызовом;
- используется недавний контекст беседы, до 20 последних сообщений;
- ответ показывается над Composer, пока основной диалог остается активным;
- ответ не добавляется в основную историю разговора;
- поддерживается полноценный Markdown.
Горячие клавиши в интерактивном режиме:
| Сочетание | Действие |
|---|---|
Escape | Отмена во время загрузки или скрытие готового ответа |
Space / Enter | Скрыть ответ, если поле ввода пустое |
Ctrl+C / Ctrl+D | Отменить выполняющийся side question |
Режимы выполнения:
| Режим | Поведение |
|---|---|
| Interactive | Ответ показывается над Composer с Markdown-рендерингом |
| Non-interactive | Возвращается текст в формате btw> question\nanswer |
| ACP | Возвращается stream_messages async generator |
Информация, настройки и помощь
| Команда | Описание | Пример |
|---|---|---|
/help | Показывает помощь по доступным командам | /help или /? |
/about | Показывает информацию о версии | /about |
/stats | Показывает статистику текущей сессии | /stats |
/settings | Открывает редактор настроек | /settings |
/auth | Меняет способ аутентификации | /auth |
/bug | Отправляет сообщение о проблеме | /bug Button click unresponsive |
/copy | Копирует последний ответ в буфер обмена | /copy |
/quit | Немедленно завершает работу CLI | /quit или /exit |
Частые shortcuts
| Shortcut | Действие | Примечание |
|---|---|---|
Ctrl/cmd+L | Очистить экран | Аналог /clear |
Ctrl/cmd+T | Переключить описание инструментов | Удобно для MCP/tool management |
Ctrl/cmd+C x2 | Подтвержденный выход | Защита от случайного завершения |
Ctrl/cmd+Z | Undo ввода | Редактирование текста |
Ctrl/cmd+Shift+Z | Redo ввода | Редактирование текста |
Ctrl/cmd+J | Перенос строки | Редактирование текста |
Команды @
@-команды позволяют быстро добавить локальные файлы и директории в контекст диалога.
| Формат | Описание | Пример |
|---|---|---|
@<path-to-file> | Вставляет содержимое файла в контекст | @src/main.py Explain this code |
@<path-to-directory> | Рекурсивно читает текстовые файлы в директории | @docs/ Summarize this folder |
@ | Используется как обычный символ, если обсуждается сам знак @ | @ What is this symbol used for in programming? |
Примечание:
- если в пути есть пробелы, их нужно экранировать, например
@My\ Documents/file.txt.
Команды !
!-команды запускают shell-команды прямо из CLI.
| Формат | Описание | Пример |
|---|---|---|
!<shell command> | Выполняет команду в под-shell | !ls -la, !git status |
! | Переключает CLI в shell-режим | ! → ввести команды → ! для выхода |
Кастомные команды
Кастомные команды позволяют сохранять часто используемые промпты как shortcut-команды.
Общая идея
| Возможность | Описание |
|---|---|
| Namespace через подпапки | Позволяет получать команды с именами через : |
| Глобальные команды | Хранятся в ~/.gigacode/commands/ и доступны во всех проектах |
| Проектные команды | Хранятся в <project>/.gigacode/commands/ и version-controlятся вместе с проектом |
Приоритет:
- проектные команды имеют приоритет над пользовательскими, если имена совпадают.
Правила именования
| Расположение файла | Какой командой станет | Пример вызова |
|---|---|---|
~/.gigacode/commands/test.md | /test | /test Parameter |
<project>/.gigacode/commands/git/commit.md | /git:commit | /git:commit Message |
Правило преобразования:
- разделители пути
/и\превращаются в:.
Рекомендуемый формат: Markdown
Кастомные команды рекомендуется оформлять как Markdown-файлы с опциональным YAML frontmatter:
---
description: Optional description (displayed in /help)
---
Your prompt content here.
Use {{args}} for parameter injection.| Поле | Обязательность | Описание |
|---|---|---|
description | Нет | Описание команды, показывается в /help |
| Тело Markdown | Да | Промпт, отправляемый модели |
Обработка параметров
| Механизм | Синтаксис | Когда полезен | Особенность |
|---|---|---|---|
| Context-aware injection | {{args}} | Нужен точный контроль над параметрами | Автоматическое shell-экранирование |
| Default parameter processing | Без специальной разметки | Простые команды | Параметры просто дописываются в конец |
| Shell command injection | !{command} | Нужно подставить динамический результат | Требуется подтверждение перед выполнением |
| File content injection | @{path} | Нужно встроить содержимое файла | Полезно для стандартов, шаблонов и reference-файлов |
{{args}}
| Сценарий | Пример | Результат |
|---|---|---|
| Прямая подстановка | Fix: {{args}} | Аргументы вставляются в нужное место |
| Использование внутри shell | Search: !{grep {{args}} .} | Аргументы автоматически экранируются |
Поведение по умолчанию
| Ситуация | Что происходит |
|---|---|
| Команда вызвана с параметрами | Параметры добавляются в конец промпта через два перевода строки |
| Команда вызвана без параметров | Отправляется только исходный промпт |
Порядок динамических подстановок:
@{file path}.!{command}.{{args}}.
!{...}: выполнение shell внутри кастомной команды
Порядок работы:
- Команда и параметры разбираются.
- Параметры автоматически экранируются.
- Пользователю показывается подтверждение на выполнение.
- Команда выполняется.
- Результат подставляется в промпт.
Пример:
---
description: Generate Commit message based on staged changes
---
Please generate a Commit message based on the following diff:
```diff
!{git diff --staged}
```@{...}: подстановка файлов
| Тип файла | Статус поддержки | Как обрабатывается |
|---|---|---|
| Текстовые файлы | Полная поддержка | Содержимое вставляется напрямую |
| Изображения / PDF | Поддерживается | Кодируются и добавляются в контекст |
| Бинарные файлы | Ограниченно | Могут быть пропущены или урезаны |
| Директории | Поддерживается | Чтение рекурсивно, с учетом .gitignore |
Пример:
---
description: Code review based on best practices
---
Review {{args}}, reference standards:
@{docs/code-standards.md}Практический пример
Пример создания команды «refactor pure function»:
| Шаг | Действие |
|---|---|
| 1 | mkdir -p ~/.gigacode/commands/refactor |
| 2 | touch ~/.gigacode/commands/refactor/pure.md |
| 3 | Заполнить файл содержимым команды |
| 4 | Проверить на файле через @file.js → /refactor:pure |
Шаблон содержимого:
---
description: Refactor code to pure function
---
Please analyze code in current context, refactor to pure function.
Requirements:
1. Provide refactored code
2. Explain key changes and pure function characteristic implementation
3. Maintain function unchangedПрактики и безопасность
Рекомендации по проектированию команд:
| Практика | Рекомендуется | Не рекомендуется |
|---|---|---|
| Naming | Использовать namespace-структуру | Давать слишком общие имена |
| Parameters | Явно использовать {{args}} | Полагаться на неявное дописывание |
| Errors | Учитывать stderr и ошибки shell | Игнорировать провалы выполнения |
| Organization | Группировать команды по папкам | Складывать все команды в корень |
| Description | Всегда заполнять description | Оставлять команду без пояснения |
Механизмы безопасности:
| Механизм | Что защищает |
|---|---|
| Shell escaping | Снижает риск command injection |
| Execution confirmation | Защищает от случайного запуска shell-команд |
| Error reporting | Помогает понять причину сбоя |