Вчера у меня резко перестал работать opencode, и я наконец нашел причину попробовать crush
Проблема, кстати, была смешная – один из mcp серверов в докере не поднялся, и opencode просто перестал работать не объясняя в интерфейсе никаких ошибки. Это плохо.
Crush хорош. Я уже упоминал его, указывая что не поддерживаются серые методы использования подписок Claude Code (как в opencode, например ;) и работает только с API моделей.
Crush написан на Go, умеет в lsp и mcp, и выглядит получше.
Как минимум crush удобен своей легковестностью для внедрения AI в unix стиле (пайплайны и вот это все) во всякие DevOps и DevEx процессы. Мне не хочется тащить без острой надобности рантайм ноды чтобы запускать opencode или СС на маленьких раннерах, например.
Но если рассматривать его с прикладной vibe-code стороны есть несколько серьезных минусов.
В данный момент в crush нет возможности создавать пресеты своих агентов. В исходном коде зашито несколько промптов для основного агента и под-агента выполняющего мелкие задачи по плану. Да, это неплохие промпты, но все же.
В opencode же функциональные возможности позволяют создавать практически неограниченное число агентов, под-агентов и здавать правила взаимодействий между друг другом. Легко адоптируются штуки вроде AgentOS
LSP, и разумеется - MCP в opencode тоже поддерживаются. Даже больше – там можно делать свои команды, есть возможность запускать opencode как сервер, sdk для кастомных клиентов, и плагины которые открывают возможность слушать события opencode'а и расширять функционал (с доступом к контексту сессии). Базовый пример из документации – слать уведомления когда агент закончил работу.
Все это ценой чуть (или не чуть) большей тяжеловесности, чем crush.
Кстати, раньше core разработчики обоих проектов работали над одним агентом вместе, потом разругались и разошлись. Там все очень мутно, грустно и не хочется в это вникать, но изначальный автор старого opencode (Kujtim Hoxha) пошел в Charm получатькрышуфинансирование и развивать переписанного агента под именем Crush, а двум другим (Dax и Adam) оставили название opencode.
Лично мне crush с точки зрения UI и DX нравится больше – он отображает оставшийся контекст, хорошо компанует его, есть индикаторы подключенных LSP и MCP серверов (часто их надо выключать), и единственное чего не хватает, это пусть даже не под-агенты, но просто возможность преднастраивать агентов "сверху".
В общем идеал лежит где то между. А может идеал это все еще claude code? ✏️
@neuralstack
