JSPM

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

Istok Code - AI coding assistant for your terminal

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