Как затащить AI в терминал и не сойти с ума от переключения контекста

04 июл 2026

Это архивный репозиторий и может быть устаревшим.

13,719
1,816
61
11 месяцев

Бывает, сидишь в консоли, правишь конфиг или фиксишь баг в Go, и тут понимаешь: нужен совет нейронки. Начинается классический ритуал. Alt+Tab в браузер, копипаст кода, ожидание ответа, копипаст обратно. Контекст потерян, фокус сбит. Ребята из opencode-ai решили, что хватит это терпеть, и собрали OpenCode — CLI-ассистента, который живет прямо там, где вы пишете код.

Что это вообще такое

OpenCode — это терминальный интерфейс (TUI) для работы с LLM, написанный на Go. Если вы знакомы с библиотеками от Charm (например, Bubble Tea), то сразу узнаете этот стиль: минималистично, быстро и очень отзывчиво. Проект сейчас переезжает под крыло команды Charm и переименовывается в Crush, что само по себе говорит о качестве реализации.

Главная фишка тут не в том, что это «еще один чат в консоли». OpenCode умеет взаимодействовать с вашей файловой системой, выполнять команды и даже подключаться к языковым серверам через LSP.

Пять вещей, которые делают OpenCode полезным

Прямой доступ к файлам и инструментам

В отличие от веб-интерфейса ChatGPT, OpenCode видит ваш проект. У него есть набор инструментов (tools), которые он использует сам, если вы разрешите. Он может сделать grep по исходникам, прочитать содержимое файлов через view или даже наложить патч через edit. Вам не нужно скармливать ему файлы вручную — он найдет их сам по вашему запросу.

Реклама

Поддержка зоопарка моделей

Разработчики не стали ограничиваться одним OpenAI. В конфиге можно прописать ключи для Anthropic (Claude 3.7 Sonnet там залетает на ура), Google Gemini, AWS Bedrock, Groq и даже локальных моделей через LOCAL_ENDPOINT. Если у вас есть подписка на GitHub Copilot, OpenCode умеет использовать и её через экспериментальный провайдер.

Автоматическое сжатие контекста

У всех LLM есть лимит токенов. Когда диалог становится слишком длинным, модель начинает «забывать» начало или просто выдает ошибку. В OpenCode встроена фича autoCompact. Когда использование контекста доходит до 95%, ассистент сам делает саммари текущей сессии, создает новую и переносит туда краткую выжимку. Работа не прерывается, а важные детали остаются под рукой.

Работа с LSP и диагностикой

Это довольно редкая штука для CLI-ассистентов. OpenCode может подключаться к вашему языковому серверу (например, gopls для Go). Это позволяет нейронке получать реальные данные об ошибках компиляции или предупреждениях линтера. Вместо того чтобы гадать, почему код не собирается, ассистент видит конкретный трейс и предлагает фикс.

Кастомные команды на Markdown

Вы можете создавать свои сценарии в обычных .md файлах. Например, создать команду user:review, которая будет прогонять git diff и отправлять его на проверку модели с заранее заданным промптом. Поддерживаются даже аргументы: можно написать $ISSUE_NUMBER в файле, и при запуске терминал спросит у вас конкретное значение.

Как это устроено внутри

Под капотом у OpenCode классический для Go-приложений стек. Cobra отвечает за CLI-часть, SQLite хранит историю всех ваших переписок локально (никаких облачных логов, если не считать сами запросы к провайдерам), а Bubble Tea отрисовывает интерфейс.

Интересно реализована интеграция с MCP (Model Context Protocol). Это открытый протокол, который позволяет подключать к AI внешние инструменты. Если у вас есть специфический сервис для работы с БД или API, вы можете прописать его как MCP-сервер в конфиге, и OpenCode научится с ним общаться.

Кому это пригодится

Если вы проводите в терминале больше времени, чем в браузере, проект точно стоит потыкать. Он особенно хорош для:

  • Быстрого рефакторинга небольших функций.
  • Написания юнит-тестов (когда лень набивать бойлерплейт).
  • Поиска ошибок в логах или трассировках.
  • Автоматизации рутинных правок в куче файлов сразу.

Устанавливается всё одной командой через brew или go install. Единственный нюанс — проект сейчас в активной разработке (early development), поэтому иногда конфиги могут меняться, а фичи — переезжать. Но как инструмент для ежедневной работы "под рукой" он уже вполне пригоден.

Стоит ли пробовать

Если вам нужен просто чат — используйте браузер. Если вам нужен напарник, который может сам заглянуть в соседний файл, проверить ошибку компиляции и поправить опечатку в README, при этом не заставляя вас трогать мышку — OpenCode (или уже Crush) станет отличным дополнением к вашему zsh или bash.

Учитывая, что проект теперь развивается вместе с командой Charm, визуальная часть и стабильность будут только расти. Главное — не забудьте настроить ANTHROPIC_API_KEY или OPENAI_API_KEY, чтобы магия заработала.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.