Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (istok-code-cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
istok-code-cli
Istok Code — AI-ассистент для работы с кодом прямо в терминале. Читает репозиторий, понимает его структуру, пишет и правит код, запускает тесты и линтер, объясняет незнакомый код, находит баги и помогает с рефакторингом — без переключения между окнами и без копирования файлов в чат.
Требования
- Node.js 20+
- macOS, Linux или Windows (WSL)
- Активная учётная запись на lk.istok.ai
Установка
npm install -g istok-code-cliПроверить, что всё работает:
istok-code --checkВход
Стандартный вход через браузер:
istok-code loginHeadless-вход для серверов, WSL и SSH без локального браузера:
istok-code login --deviceВход по токену для CI:
echo "$ISTOK_TOKEN" | istok-code login --token-stdinРеальные примеры использования
Объяснить незнакомый код
# Объяснить конкретную функцию с деталями
istok-code --file src/queue/processor.ts "объясни логику обработки очереди и какие у неё побочные эффекты"
# Понять как устроен модуль авторизации
istok-code --file src/middleware/auth.py "опиши, как этот middleware проверяет токен и где он вызывается"Найти баги и проблемы
# Поиск N+1 запросов в конкретном файле
istok-code --file src/db/orders.ts "найди потенциальные N+1 запросы к базе данных"
# Проверить обработку ошибок
istok-code --file src/api/upload.ts "проверь, всегда ли закрываются файловые дескрипторы при ошибке"
# Найти места где исключения проглатываются
istok-code "посмотри обработчики ошибок в src/api/ и укажи где исключения не логируются"Написать тесты
# Тесты для файла с указанием фреймворка
istok-code --file src/utils/date.ts "напиши unit-тесты для всех экспортируемых функций, используй vitest"
# Добавить тесты для крайних случаев по образцу существующих
istok-code --file src/auth/token.ts --file tests/auth/token.test.ts \
"добавь тесты для истёкшего токена и невалидной подписи в том же стиле"После написания тестов сразу проверить результат:
istok-code verify testРефакторинг с проверкой через symbols
# 1. Найти все места использования перед правкой
istok-code symbols fetchUser --refs
# 2. Попросить выполнить переименование
istok-code "переименуй fetchUser в getUser во всём проекте и обнови все вызовы"
# 3. Убедиться что ничего не сломалось
istok-code verifyCode review перед мержем
# Review конкретного файла
istok-code --file src/api/payments.ts "сделай code review: безопасность, обработка ошибок, читаемость"
# Review диффа через pipe
git diff HEAD~1 | istok-code --pipe "проведи review этих изменений и укажи возможные проблемы"Verify и fix loop
Запустить все проверки:
istok-code verifyИли конкретную:
istok-code verify test # только тесты
istok-code verify lint # только линтер
istok-code verify build # только сборкаЕсли проверка упала — войти в интерактивную сессию и использовать /fix. Агент получит контекст последнего падения и исправит точно.
Долгие задачи с продолжением
# Посмотреть список локальных сессий
istok-code --sessions
# Продолжить последнюю сессию
istok-code resume latest
# Продолжить конкретную
istok-code resume <session-id>CLI хранит до 100 последних сессий локально. Автоматически очищает самые старые.
Интерактивный режим
Запустить сессию:
istok-codeЗапустить с начальным запросом:
istok-code "почини failing test в src/billing/ и объясни причину"Slash-команды в сессии
| Команда | Действие |
|---|---|
/plan |
Переключить режим планирования (агент строит план, не трогает файлы) |
/verify |
Запустить проверки проекта |
/fix |
Исправить по контексту последнего упавшего verify |
/symbols <name> |
Найти определение символа |
/project |
Показать как CLI видит текущий проект |
/retry |
Повторить последний ход если он упал из-за сети или ошибки сервера |
/sessions |
Список локальных сессий |
/resume <id|latest> |
Возобновить сессию |
/usage |
Текущий остаток квоты |
/models |
Список моделей и смена модели |
/export |
Экспортировать транскрипт в Markdown |
/export json |
Экспортировать в JSON |
/quit |
Завершить сессию |
Неинтерактивный режим и CI
Одноразовый запрос без сессии:
istok-code run "найди все TODO с меткой CRITICAL в src/"
istok-code run --file ./src/db.ts "найди потенциальные N+1 запросы"JSON-вывод для CI-пайплайнов:
istok-code run --output-format json "запусти тесты и верни статус"Обработка stdin:
cat diff.txt | istok-code --pipe "опиши что изменилось в этом диффе"
echo "объясни функцию main" | istok-code --pipeGitHub Actions
- name: Login
run: echo "${{ secrets.ISTOK_TOKEN }}" | istok-code login --token-stdin
- name: Review diff
run: git diff HEAD~1 | istok-code --pipe "найди возможные проблемы в этом диффе"GitLab CI
script:
- ISTOK_TOKEN="$ISTOK_TOKEN" istok-code login
- istok-code run --output-format json "запусти тесты"Флаги
--file <path> Добавить файл в контекст запроса (можно несколько)
--system <text> Добавить системную инструкцию
--model <id> Выбрать модель для этого запуска
--resume <id|latest> Возобновить прошлую сессию
--sessions Показать список последних сессий
--add-dir <path> Добавить директорию в индекс проекта
--output-format json Вывод в stream-json для CI
--pipe Один раз прочитать stdin и выйти
--check Проверить доступность сервиса и авторизацию
--sandbox Ограничить Bash через ulimit
--auto-stash git stash перед запуском, git stash pop после
-v, --version Показать версию
-h, --help Показать справкуКоманды аккаунта
istok-code status # Статус авторизации
istok-code logout # Удалить локальные учётные данные
istok-code info # Лимиты, подписка, версия CLI
istok-code usage # Использование и остаток квоты
istok-code billing # Подписка и биллинг
istok-code models # Список доступных моделей
istok-code models set <id> # Установить preferred model
istok-code models clear # Сбросить preferred model
istok-code update # Обновить CLI до последней версииБезопасность
- На macOS токены хранятся в Keychain.
- На Linux — через Secret Service (
secret-tool), если доступен. - На Windows — через DPAPI.
- Если защищённое хранилище недоступно, CLI предупреждает и временно использует
~/.istok/config.json.
Troubleshooting
Проверить что сервис доступен и авторизация работает:
istok-code --checkПроблемы с входом:
istok-code logout
istok-code loginCLI сообщает о доступном обновлении при каждом запуске. Применить:
istok-code updateПринудительное обновление при заблокированной версии:
sudo npm install -g istok-code-cli@latest