JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 55
  • Score
    100M100P100Q56084F

Package Exports

  • istok-code-cli

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 login

Headless-вход для серверов, 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 verify

Code 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 --pipe

GitHub 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 login

CLI сообщает о доступном обновлении при каждом запуске. Применить:

istok-code update

Принудительное обновление при заблокированной версии:

sudo npm install -g istok-code-cli@latest