Пользовательские интерфейсы терминала: обзор Crush (ex-opencode al)

Первоначально я хотел посмотреть на интерфейс командной строки Agentic Opencode (CLI), но теперь это было переименовано в Crush. Учитывая, что репозиторий перешел только на 29 июля 2025 года, название этой статьи отражает недавний переход.

SO: Crush-это приложение с открытым исходным кодом на основе GO, которое приносит помощь AI в ваш терминал. Он предоставляет пользовательский интерфейс терминала (TUI) для взаимодействия с различными моделями искусственного интеллекта, чтобы помочь с кодирующими задачами, отладкой и многим другим. Или, как они говорят: «Ваш новый подстановка кодирования».

Очарование, я думаю, как в создании красивого (или яркого, в зависимости от вашего вкуса) текстовый интерфейс пользователя.

С тех пор, как я недавно писал о Туисе, я должен отметить, что этот проект использует проект Bubbletea под обложками. Crush основан на мультимоделе и сеансе, так что вы можете выбрать из широкого спектра больших языковых моделей (LLMS) или добавить свои собственные, и вы можете переключить LLMS в середине сеанса при сохранении контекста.

Вы также можете добавить свой собственный протокол сервера языка примерно так же, как и для редактора.

Установка

В отличие от некоторых записей, это с радостью установить через Homebrew. Поскольку я использую свой MacBook M4, я пухлый для этой опции:

В то время как Crush спросит, когда впервые запустите ключи, мы можем настроить LLM, с которым мы хотим работать с помощью переменных среды. Итак, давайте сделаем это для свежего ключа от антропного:

Поддерживается ряд моделей: ожидаемые, плюс некоторые, о которых я не знал, включая «Groq» (что не имеет ничего общего с Grok). Но это также включает Грока.

Набор «влюбленности» начинает все:

Ясно подбирая свой антропный ключ, я могу выбрать из нескольких моделей. Я пошел на Opus 4, так как это было то, с чем я был знаком. (GPT-5 должен быть доступен сейчас).

Если он не видит файл конфигурации, он спросит, может ли он инициализировать:

Это очень хороший способ, чтобы оба запустить вас в кодовой базе и создать файл контекста. Примечание: Хотя использование неформального языка, такого как «да» и «нет» — это весело, это немного антагонистично, если английский не является вашим культурным языком.

Управление в моем проекте из Crush был неловким, так как он применяет дополнительные разрешения для команд ОС в Crush:

Выше я набрал LS и получил ответ, а затем попробовал CD .. и это вызвало переключатель разрешений, чтобы проверить, действительно ли я хотел переместить каталог.

Разрешения

Это приводит к тому, чтобы аккуратно проверить, как Crush имеет дело с разрешениями. Первоначально я хотел знать, может ли он внести изменения за пределами каталога проекта. Но я еще не думаю, что это выражено (проект ни в коем случае не зрелый). Если вы посмотрите в файл конфигурации crush.json, вы можете манипулировать знакомым списком «разрешить»:

{«$ chema»: «» разрешения «: {» Alling_tools «: [
«view»,
«ls»,
«grep»,
«edit»
]
}} 1234567891011 {«$ schema»: «» разрешения «: {» Alling_tools «: [        «view»,        «ls»,        «grep»,        «edit»      ] }}

Эти записи объясняют поведение, которое я видел выше. Вы можете пропустить все разрешения с флагом -Йоло. (Да, вы вполне можете получить ощущение, что у этого проекта есть особая беззаботная атмосфера.)

Обработать проект

Я позволил ему обработать свой основной каталог развития единства, чтобы увидеть, что будет у Crush.md и как он вел себя:

Он также искал любые инструкции по курсору или копированию, чтобы включить. Я предполагаю, что в конечном итоге это сделает это для большего количества файлов инструкций поставщика. На самом деле, первый агент Pass ищет конфигурации, тесты и файлы проекта.

Командная строка внизу включает в себя команду отказа, которая является хорошим, простым дополнением. Обратите внимание, что, когда я работаю в терминале Warp, некоторые команды будут проглотить этим. Но это общая проблема с терминальными эмуляциями в терминалах. Другим примером этого является то, что я не могу использовать мышь для размещения курсора во время написания команд, которые я могу в рамках. Я также не мог скопировать текст. Или скопируйте предыдущую команду.

Я думал, что обработка проекта завершена, но не было никакого файла Crush.md — на самом деле у меня закончились новые золотые токены, поэтому я возглавил счетчик на антропной консоли. Я удалил каталог .crush и позволил ему попробовать еще раз. На этот раз он закончил, создав хороший, краткий файл crush.md, который он добавил в файл .gitignore:

Для тестирования я собираюсь попросить его создать новый класс в рамках коллекции стратегий. Это немного отличается от моего обычного теста, но на самом деле это то, что мне нужно сделать в моем игровом проекте. Я использую некоторые фразы, которые заставит LLM поднять контекст в рамках проекта, но в целом это не слишком большая работа. Я просто хочу добавить новый тип игрового повествования, основываясь на старом типе:

Как обычно, я больше не пытаюсь проверить LLMS — насколько Crush представляет выход и обрабатывает разрешения. Обратите внимание, что я не добавил C# LSP.

Когда он установил, где добавить класс, и сгенерировал его, мне было представлено с запросом на разрешение:

Он правильно интерпретировал «фермер» как название персонажа и тип. Это также правильно изменило имя строки с «загрязнения» на «Freezingbad», который является одним из преимуществ LLM: они понимают контекст английского языка, переплетенного в контексте кодирования.

Затем он попросил разрешения добавить стратегию в список по мере необходимости:

Затем у него была хорошая попытка также добавить экземпляры нового повествования аналогично другим в рамках проекта, но у него не было достаточно информации, чтобы сделать это правильно. То, что он сделал, было хорошо, поэтому я остановил это там.

В то время как отдельные задачи не были представлены в списке перед попыткой, она разумно организовала работу, чтобы я мог следовать тому, что она делала. Это позволяет использовать вкладку для переключения между блоком запроса и блоком ответа.

Заключение

В то время как Crush по -прежнему не хватает необходимости в пользовательском интерфейсе, у нее есть некоторые интересные и новые дополнения. Прямо сейчас он, безусловно, слабее, чем использование, скажем, варп, с его агентом, интегрированным в терминал. Но Crush имеет постоянный подход через свой текстовый пользовательский интерфейс, поэтому он вполне может превзойти свой вес, так как более поздние инновации соединяются более сильные основы с помощью вкладов с открытым исходным кодом.

Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Дэвид был лондонским профессиональным разработчиком программного обеспечения в Oracle Corp. и British Telecom, а также консультантом, помогающим командам работать более гибким образом. Он написал книгу по дизайну пользовательского интерфейса и с тех пор пишет технические статьи …. Подробнее от Дэвида Истмана

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *