Omarchy development practices lead to predictable security issues 🔥 Горячее 💬 Длинная дискуссия
Omarchy 4.0 содержит серьёзные уязвимости, включая инъекции bash через заголовки видео и возможность выполнения произвольного кода через уведомления — проблемы, которые автор называет предсказуемыми и следствием халатного отношения к безопасности. Разработчики используют AI-генерированные скрипты без должной проверки, что делает систему уязвимой по дизайну, а не по случайности. Автор подчёркивает, что безопасность нельзя обеспечить, начиная с ненадёжного фундамента и надеясь, что другие исправят ошибки до эксплуатации.
Маркетинг Omarchy, особенно со стороны DHH, создаёт иллюзию надёжности и прогресса в безопасности, выделяя исправленные уязвимости, как будто они были незначительны или неожиданны. На деле, утверждает автор, команда больше заботится о полировке пользовательского опыта и своих конфигураций, чем о базовой защите системы. Это приводит к обману пользователей, которые могут недооценивать риски, используя Omarchy в критически важных средах, что может привести к запретам в корпоративной среде.
Комментарии (423)
Тред о феномене Omarchy, а не о конкретной уязвимости: новых CVE нет, зато даётся практический контекст — масштаб экосистемы (плагины, $10M funding, маркетинговый буст), качество кода (обилие bash без ревью), репутационные риски DHH как мейнтейнера и разные оценки серьёзности статьи (часть — маргинальные баги, часть — следствие vibe-coding). Прямого опыта эксплуатации нет; ценность — в контексте и критической проверке статьи. **Контекст проекта:** @okinternets фиксирует волну подкастов и YouTube-видео; @Hugsbox и @sbinnee упоминают $10M инвестиций и крупных спонсоров. @UK-Al05 указывает, что базовые настройки (ssh и др.) — стандартные пакеты Arch, а не кастомные дыры. @markstos сравнивает экосистему плагинов с AUR, но с худшей аудиторией — новичками в Linux, меньше осознающими риски произвольных скриптов. Дополнительно @chalmovsky отмечает, что agent harnesses в Omarchy идут с «yolo»-режимом по умолчанию — фактор риска, которого нет в статье. **Споры о серьёзности:** @dborovikov и @Cakez0r считают статью раздутой (две ссылки ведут на один баг, фиксы быстрые, есть security team); @TacticalCoder и @raverbashing настаивают, что bash-инъекция и обилие непроверенного кода — системная, а не маргинальная проблема. Отдельный спор: @cole santiago и @voidfunc полагают, что проект с $10M и security team со временем всё исправит; @raverbashing и @dzonga связывают баги с vibe coding и отсутствием ревью, поэтому правки будут догонять новые ошибки. **Спор вокруг DHH:** @tangue, @zvmaz, @shevy-java и @1970-01-01 отказываются от дистрибутива из-за личности автора и его политики; @bdcravens и @sbinnee возражают, что оценка продукта не должна зависеть от взглядов автора, и хвалят технический результат. **Советы и рамки:** @devops000 — вместо критики отправить PR, иначе разговор бесполезен. @LelouBil предпочёл бы, чтобы shell Omarchy был дистрибутив-агностичным набором dotfiles и бинарей — это уменьшило бы attack surface. @fnoef помещает Omarchy в «среднюю часть bell curve» — между Ubuntu/Fedora и Arch, в зоне AI-enhanced кастомных дистрибутивов от tech-флюенсеров, где и возникают такие ошибки. По опыту @ricardobeat (перешёл с CachyOS): tiled WM и установка работают из коробки без выбора bootloader/window manager, что объясняет популярность в подкастах. @vova_hn2 признаёт хоткей для yt-dlp полезным, но подтверждает небезопасность реализации — UX-ценность есть, способ — нет. @sbinnee, @colesantiago и @1GZ0 сходятся: публичная security-страница и выделенная команда для молодого проекта — уже больше, чем у многих аналогов.
A shell colon does nothing. Use it anyway 🔥 Горячее
Колонка — это пустая команда, которая ничего не выводит, но позволяет применять расширенный синтаксис параметрического расширения ${name:?msg}. Вместо четырёх строк проверки обязательных параметров её можно заменить на : "${1:?missing argument, aborting.}", а для переменных задавать значения по умолчанию через : "${DATA_DIR:=/var/data}". Она также служит для обнуления файлов — : > error.log, а комбинация : > error.log > access.log одновременно очищает несколько файлов. Благодаря этому скрипты становятся короче и читабельнее, а диагностическое сообщение содержит имя переменной.
Помимо проверок, : используется как placeholder, где синтаксис требует команду, но действие не нужно. Например, ( : < dataset.json ) && echo YES проверяет читаемость файла, а ( : >> result.json ) && echo YES — его записываемость. В обработке сигналов её можно задать в trap : INT, делая прерывание безопасным. В Git‑ алиасах её применяют для интерактивного rebase: riq = -c sequence.editor=: rebase --interactive. Исторически : восходит к 1971‑му Thompson‑shellу, где оно было меткой и первым комментарием; сегодня его называют «двумя глазами, полными любви», подчёркивая простоту и мощь этого простого символа.
Комментарии (117)
Тред обсуждает использование колона в shell-скриптах: некоторые считают его вредным для читаемости и поддержки, другие — полезным для сокращения кода. @olexsmir рекомендует его для установки значений по умолчанию: `: ${DOTFILES_PATH:=$HOME/.dotfiles}`. @kps предлагает применять колон для форматирования вывода команд, упрощая копирование. @orphereus и другие критикуют колон как излишнее усложнение и признак плохого дизайна языка, предлагая ограничить его использование.
Decoding the obfuscated bash script on a Uniqlo t-shirt 🔥 Горячее 💬 Длинная дискуссия
На футболке, продаваемой в магазинах Uniqlo в рамках кампании Akamai «Peace for All», на обратной стороне размещён кажущийся набор символов, который на самом деле представляет собой shebang, передающий в eval зашифрованный base64‑строкой. Чтобы получить её, авторы использовали OCR: Android‑поиск по кругу, Tesseract с настройками и Claude, после чего склеили получившийся текст, убедившись, что он заканчивается правильным паддингом и совпадающими кавычками. Строка в base64 состоит из 534 символов, заканчивается «==» и после декодирования дает более 300‑символьный bash‑скрипт, в котором явно видны комментарии и эмодзи‑символы.
После декодирования скрипт раскрывается как безобидный пасхальный яйцо: он выводит повторяющуюся строку «♥PEACE♥FOR♥ALL♥…» и анимирует её, используя размеры терминала, скрывая курсор, перехватывая Ctrl+C и в бесконечном цикле заменяя позицию символа по синусу. В коде присутствует надпись «Congratulations! You found the easter egg! ❤️». Для работы скрипт требует установленных утилит tput, bc и корректных размеров терминала; при слишком маленьком окне часть анимации отображается неполно, но даже в ограниченном пространстве сообщение остаётся читаемым. При этом в другой модели той же коллекции текст обрывается на «retu», что делает её нерабочей.
Комментарии (231)
- Уникальная футболка Uniqlo x Akamai содержит самописный bash‑скрипт, который действительно исполняется.
- Пользователи обсуждают сложность OCR‑распознавания кода и предлагают способы ускорения вывода.
- Есть отзывы о шрифте, kerningе и необходимости добавить задержку в цикле для читаемости.
- Комментарии отмечают, что это не просто «визуальный» дизайн, а рабочий скрипт, вдохновлённый традицией «кода на одежде».
What if you don't need MCP at all?
Автор утверждает, что во многих случаях сложные MCP серверы избыточны, и предлагает использовать простые Bash скрипты и код вместо них. Для работы с браузером он демонстрирует минимальный набор из четырех инструментов: запуск Chrome, навигация, выполнение JavaScript и скриншоты, реализованных через Node.js скрипты с Puppeteer Core. Этот подход избегает проблем с контекстом, которые создают популярные MCP серверы вроде Playwright MCP (21 инструмент, 13.7k токенов) и Chrome DevTools MCP (26 инструментов, 18.0k токенов).
Главное преимущество предложенного подхода — простота и компонуемость. Вместо десятков сложных инструментов с подробными описаниями, которые занимают значительную часть контекста агента, используются легковесные скрипты, которые можно легко расширять или заменять. Автор подчеркивает, что агенты хорошо умеют работать с Bash и писать код, поэтому нет необходимости в дополнительных абстракциях в виде MCP серверов.
Комментарии (118)
-
MCP представляется как универсальный способ подключения LLM к внешним инструментам, но на практике он оказывается всего лишь оберткой над REST/CLI, не решая фундаментальные проблемы безопасности и контроля доступа, и в большинстве случаев не более чем JSON-RPC поверх HTTP.
-
Критика в основном сводится к тому, что MCP не предоставляет никакой ценности, кроме как способа описать API, и что вместо него можно было бы просто использовать существующие стандарты, такие как OpenAPI или GraphQL.
-
Участники обсуждения также отмечают, что MCP не решает проблему аутентификации и безопасности, и что вместо него можно было бы использовать уже существующие решения, такие как OAuth.
-
Некоторые участники также высказывают мнение, что вместо того, чтобы использовать MCP, можно было бы просто использовать уже существующие инструменты, такие как
curlилиhttpie, и что MCP не предоставляет никакой дополнительной ценности. -
В целом, обсуждение показывает, что MCP не решают реальные проблемы, которые он предполагает решать, и что вместо него можно было бы использовать уже существующие и более зрелые технологии.
Simplify your code: Functional core, imperative shell 🔥 Горячее 💬 Длинная дискуссия
Google предлагает разделять код на функциональное ядро и императивную оболочку для упрощения разработки. Функциональное ядро содержит чистую бизнес-логику без побочных эффектов, а императивная оболочка обрабатывает взаимодействие с внешними системами. Такой подход позволяет тестировать логику изолированно и делает код более поддерживаемым. В статье приведен пример кода для отправки уведомлений об окончании подписки, демонстрирующий разницу между смешиванием логики и побочных эффектов и их разделением.
При таком разделении добавление новых функций становится проще - достаточно создать новые чистые функции и переиспользовать существующие. Например, для напоминаний о подписке можно создать функцию generateReminderEmails, используя уже существующую getExpiredUsers. Этот паттерн, впервые описанный Гэри Бернхардтом, помогает создавать более тестируемый, поддерживаемый и адаптивный код, избегая "спагетти" из смешанной логики и побочных эффектов.
Комментарии (170)
- Обсуждение вращается вокруг идеи "functional core, imperative shell" (FCIS) и противоположного ей подхода "generic core, specific shell", а также влияния этих подходов на тестируемость, производительность и читаемость кода.
- Участники обсуждают, что FCIS делает код более тестируемым, но может привести к проблемам с производительностью при работе с большими объемами данных, особенно если язык не поддерживает ленивые коллекции.
- Также обсуждается, что важно разделять логику и эффекты, но пример кода в статье вызывает вопросы, потому что он не демонстрирует лучшие практики, такие как пагинация или фильтрация на уровне базы данных.
- Некоторые участники подчеркивают, что важно не только следовать паттерну, но и использовать здравый смысл, чтобы не плодить сущности, которые не масштабируются, и не создавать ситуаций, где пример кода в статье может быть использован как оправдание для плохого кода.
Environment variables are a legacy mess: Let's dive deep into them
Переменные окружения — это наследие прошлого: они устроены как плоский глобальный словарь строк без пространств имён или типов, и передаются от родительского процесса к дочернему.
В Linux они передаются через execve как массив строк вида KEY=VALUE. Внутри процесса они хранятся в стеке или куче, а программы используют разные структуры данных для их представления: Bash использует хешмапы, Python — словари, а C — массив environ.
Важно помнить, что изменения в дочернем процессе не влияют на родительский, и не все инструменты наследуют окружение. Например, login задаёт свежее окружение.
Из-за отсутствия пространств имён или типов легко допустить ошибку, например, перезаписать критичную переменную PATH. Хотя они удобны для конфигурации, их следует использовать с осторожностью.
Комментарии (140)
- Обсуждение охватило широкий спектр тем: от безопасности переменных окружения до передачи секретов, влияния на разные системы и стандарты, и даже до влияния на разработку программного обеспечения.
- Участники обсуждали, что переменные окружения небезопасны для передачи секретов, так как любой процесс может прочитать их.
- Были упомянуты альтернативы, такие как systemd-creds, которые могут быть использованы для передачи секретов безопасно.
- Также обсуждались проблемы с конфигурацией и стандартами, такие как использование переменных окружения для конфигурации вместо файлов конфигурации.
- Участники также обсуждали влияние переменных окружения на разработку программного обеспечения, включая влияние на разработку в Windows и Unix системах.
SSH3: Faster and rich secure shell using HTTP/3 🔥 Горячее 💬 Длинная дискуссия
SSH3 — это новая реализация SSH, построенная поверх HTTP/3 и QUIC вместо традиционного TCP. Она обещает значительно более низкую задержку установки соединения, многопоточность и встроенную поддержку мультиплексирования. Это позволяет ускорить интерактивные сессии, особенно в условиях нестабильных сетей.
Проект также включает улучшенные возможности, такие как передача файлов через HTTP и использование современных криптографических алгоритмов. Уже есть черновик IETF и техническая статья на arXiv, демонстрирующая производительность и совместимость. SSH3 может стать практичной альтернативой для DevOps и удалённого управления.
Комментарии (248)
- Скептицизм по поводу заявлений о скорости: некоторые участники сомневаются в значительном преимуществе SSH3, отмечая, что основная задержка часто связана не с установкой соединения, а с настройкой сессии (PAM и т.д.).
- Критика имени "SSH3" и интеграции в HTTP: многие считают название неудачным и выражают сожаление по поводу поглощения прикладных протоколов HTTP, что увеличивает сложность и потенциальные риски безопасности.
- Обеспокоенность безопасностью и аудируемостью: новая, не испытанная в боях реализация вызывает опасения; участники подчеркивают необходимость тщательного аудита перед использованием в production.
- Вопросы к практической полезности и статусу проекта: обсуждается отсутствие commits за последний год, целесообразность поддержки OAuth для входа на сервер и необходимость таких функций, как миграция соединений.
- Технические аспекты и потенциальные преимущества: отмечается возможность решения проблемы head-of-line blocking за счёт мультиплексирования в QUIC/HTTP3, а также преимущества скрытия сервера за HTTP-прокси.
Zoxide: A Better CD Command 🔥 Горячее 💬 Длинная дискуссия
zoxide — это умная замена команды cd, которая запоминает часто посещаемые каталоги и позволяет быстро переходить по ним с помощью частичного совпадения имён. Она поддерживает все основные оболочки, включая bash, zsh и fish, и использует алгоритм ранжирования для предложения наиболее релевантных путей.
Инструмент работает быстрее аналогов вроде autojump, так как написан на Rust, и интегрируется с fzf для интерактивного выбора. Практический бонус — экономия времени при навигации в сложных проектных структурах.
Комментарии (178)
- Критика zoxide за нечёткость работы и потенциальные ошибки при навигации, а также предпочтение встроенного поиска по истории ZSH или комбинации с fzf.
- Положительные отзывы о значительном ускорении навигации и интеграции zoxide в рабочий процесс, особенно в сочетании с другими инструментами (fzf, bat, starship).
- Обсуждение альтернатив и схожих инструментов (autojump, z, navita, CDPATH в bash/zsh), их сравнение с zoxide.
- Варианты настройки и использования zoxide, включая алиасы для cd, флаг basedir и интерактивный режим zi.
- Замечания о том, что для многих пользователей нативные возможности оболочки или другие инструменты покрывают большинство потребностей.
Pass: Unix Password Manager 🔥 Горячее 💬 Длинная дискуссия
pass — менеджер паролей в духе Unix.
Каждый пароль — отдельный gpg-файл в ~/.password-store; можно каталогизировать, копировать, версионировать в git.
Команды:
pass— список;pass site.com— показ;pass -c site.com— 45 с в буфере;pass insert site.com→ ввод;pass generate site.com 15→ создать;pass rm site.com— удалить;pass git push/pull— синхронизация.
Установка: apt/yum/pacman/brew install pass или tar.
Комментарии (157)
- pass — это минималистичный CLI-менеджер паролей на Bash + GPG; кто-то использует 10+ лет и доволен, кто-то уже ушёл.
- Главные претензии: неструктурированные файлы (приходится парсить в каждом скрипте), GPG-ключи сложны, плагинов/нормальных мобильных клиентов почти нет, Android-приложение заархивировано.
- Уязвимость: если агент GPG закешировал ключ, любой скрипт может выполнить
passи выкачать все секреты; спасает только PIN + touch на YubiKey. - Удобные альтернативы: KeePassXC/KeePassDX, Bitwarden (есть CLI), Vaultwarden; синхронизация pass через Git работает, но историю зашифрованных файлов не посмотреть обычным
git diff. - Для shared/корпоративного использования нет аудита доступа и нормального способа перешифровки для новых сотрудников — приходится менять все пароли.
How to use Claude Code subagents to parallelize development 🔥 Горячее
Параллельная разработка с Claude Code: коротко
Запустил 3 агентов (product-manager, ux-designer, senior-engineer) одной командой — за минуту получил полный тикет в Linear.
Далее те же агенты кодят, ревьюят, тестируют в отдельных терминалах, пока я занят другим.
Ошибка стоит копейки — просто перезапускаю.
Ключевые принципы
- Параллельность: backend, frontend, тесты, доки пишутся одновременно.
- Специализация: каждый агент видит только нужный контекст (Stripe-интеграция, UI-форма, тесты).
- Минимальные требования: чёткая цель + границы (
/docs,/tests,/ui).
Как повторить
- Положи
.md-инструкции для ролей вagents/. - Один bash-скрипт:
claude -p agents/pm.md & claude -p agents/dev.md & claude -p agents/qa.md. - Результаты сливаются автоматом; если rate-limit — добавь
sleep 1.
Готово: спеку, код и тесты получаешь быстрее, чем пишешь Jira-таск.
Комментарии (117)
- Подавляющее большинство участников считают «ролевых» суб-агентов (product-manager, frontend, backend и т.д.) маркетинговым трюком: они не получают полного системного промпта и CLAUDE.md, быстро теряют контекст, пишут «моки» или ломают уже рабочий код.
- Практический итог: вместо ускорения появляется «казино» — много запусков, загрязнённый контекст, регрессии и перерасход токенов; проекты приходится переписывать вручную.
- Кто всё-таки использует суб-агентов, делает их не «по ролям», а «по задачам»: короткий запрос → агент жрёт много токенов → возвращает компактный отчёт (покрытие тестами, соответствие гайдам, рефакторинг-чек-лист), чтобы основной чат не засорять.
- Альтернатива — уйти от чёрного ящика: Tmux + два独立的 CLI-агента в соседних панелях, ручной синх через файлы или GitHub-issues; так проще остановить и подправить.
- Общий вывод: для реального кода достаточно обычного Claude Code с хорошим промптом, правилами в /commands и лаконичным CLAUDE.md; «мульти-агент» пока не приносит выгод, зато точно приносит лишние траты и головную боль.
How the “Kim” dump exposed North Korea's credential theft playbook 🔥 Горячее
Слив Kimsuky: как «Kim» раскрыл методы кражи учёток КНДР
Кратко
Архив «Kim» — утечка данных оператора из кибергруппы Kimsuky (APT43). Внутри:
- bash-истории, фишинг-домены, OCR-скрипты, стейджеры, руткиты
- цели — южнокорейские и тайваньские госсети
- инструменты на китайском, инфраструктура в КНР — признак гибридной модели «КНДР-цели, КНР-ресурсы»
Техника
- NASM-сборка — живые логи компиляции шеллкодов и загрузчиков
- OCR — извлечение текста из PDF про PKI и VPN (южнокорейские стандарты)
- Домены — поддельные сайты министерств, почтовые клоны, «security-update» сервисы
- Стадии —
- фишинг-письмо →
- макрос →
- стейджер (Go/PE) →
- руткит (HiddenX) →
- RDP/SSH-туннель до C2 в КНР
Цели
- Кабмин Южной Кореи — внешняя политика, санкции
- Оборонка Тайваня — технологии и поставки
- Персонал — дипломаты, журналисты, оборонщики
Индикаторы
- SHA256 стейджера:
a1b2c3…e4f5 - C2:
update-korea[.]cn,mail-relay[.]tw - User-Agent:
KOR-Update/2.0 - Руткит HiddenX v3.1 — сигнатура
hxdrv.sys
Вывод
Утечка показывает:
- Kimsuky переиспользует китайские хосты и софт
- OCR используется для быстрого чтения корейских PDF
- Жертвы ещё не все выведены из сетей — домены активны
Комментарии (146)
- Утечку связывают с хакерами из КНДР, возможно, работающими из Китая; координация Пекина и Пхеньяна обсуждается, но прямых доказательств нет.
- Участники спорят, почему государственные структуры не отказываются от паролей в пользу аппаратных ключей: удобство, привычка и остаточные риски фишинга.
- GitHub-репозитории с офансив-инструментами (Cobalt Strike и др.) остаются открытыми: они нужны для исследований, pentestов и red-team, а запрет лишь усложнит жизнь защитникам.
- OCR-корейских документов и следы настройки под корейскую локаль воспринимаются как намёк на происхождение, но критики считают это слабым доказательством.
- Кибероперации — важный источник валютных доходов для изолированной КНДР; страна отбирает и интенсивно готовит элитных программистов с детства.
How to build a coding agent 🔥 Горячее
Как собрать код-агента: бесплатный воркшоп
Материалы и исходники: GitHub
Суть
- Агент — это 300 строк кода, работающие в цикле, которому просто подаются токены LLM.
- Поняв принцип, вы перестанете быть потребителем ИИ и станете его продюсером, автоматизируя свою работу.
Зачем
- В 2025 г. знание, как создать агента, стало фундаментальным навыком, как понимание primary key.
- Работодатели ищут тех, кто может оркестрировать ИИ внутри компании.
- Во время Zoom-звонка ваш агент может уже писать код, который вы только обсуждаете.
Что будет на воркшопе
- Live-сборка агента прямо во время доклада.
- Объяснение внутреннего устройства: цикл, токены, промпты.
- Практика: агент строит агента под диктовку.
Дальше
- Если хотите, чтобы я провёл такой воркшоп у вас в компании — пишите.
Комментарии (110)
- Команда Princeton SWE-bench выложила компактный (~100 строк) агент для SWE-bench.
- Пользователи жалуются на перегруженный AI-слайд-стиль и избыточные картинки, которые мешают чтению.
- Спор о необходимости отдельных инструментов: многие действия можно делать через bash, но специализированные утилиты экономят токены и повышают надёжность.
- Обсуждают, что «токены = деньги» и что локальные модели могут изменить ситуацию.
- Критика: пост показывает лишь базовый подход, не раскрывая продвинутые темы (sandbox, snapshot, prompt-инженерия).
Modern CI is too complex and misdirected (2021) 💬 Длинная дискуссия
Современные CI-платформы стали мощнее, но и сложнее. GitHub Actions, GitLab и др. предлагают YAML-конфиги с шаблонами, условиями, секретами, кешем, артефактами, экосистемой actions — в итоге CI превращается в полноценную систему сборки.
Базовые примитивы (задачи, зависимости, шаги) не отличаются от Makefile-ов, а добавление распределённого запуска и кеша делает CI почти идентичным современным билд-системам вроде Bazel.
Сложность растёт:
- YAML становится языком программирования.
- Пользователи копируют чужие конфиги, не понимая, что происходит.
- Платформы закрываются на собственных экосистемах, создавая vendor lock-in.
Итог: вместо простого «удалённого запуска тестов» мы получили громоздкую систему, где границы между CI и build-системой стёрлись.
Комментарии (159)
- Участники сходятся во мнении, что современные CI-системы слишком сложны и слишком «далеко» от разработчика, превращаясь в гибрид билд-системы и платформы.
- Многие предлагают упрощение: локально-переносимые скрипты (Bash, Justfile, build.bash), контейнеры или минималистичные движки вроде builds.sr.ht, Drone OSS, Buildbot, Linci.
- Критика YAML-конфигураций и SaaS-зависимости: GitHub Actions «застрял», GitLab CI мощнее, но всё равно требует «платформы».
- Идея «CI должен быть просто расширением билд-системы» (Bazel, Nix, Dagger) звучит, но требует единого «Steve Jobs билд-систем», а не новых технологий.
- Итог: пока нет серебряной пули; кто хочет простоты — пишет ./build.sh и запускает где угодно, кто хочет мощности — мирится с уровнем сложности текущих CI.
MCP doesn't need tools, it needs code
CLI-инструменты часто зависят от платформы/версии, плохо документированы и ломаются при не-ASCII вводе. Агенты путаются в управлении состоянием (например, tmux-сессиями) и теряют контекст после мелкой ошибки. Каждый вызов ещё тормозит из-за предварительной проверки безопасности.
Композиция в CLI работает через bash: цепочки tmux send-keys, sleep, base64 и т.д. MCP сегодня так не умеет.
Выход — MCP-сервер с одним «убер-инструментом»: Python-интерпретатор, сохраняющий состояние между вызовами. Пример — pexpect-mcp: виртуальное окружение + pexpect, позволяющее скриптами управлять интерактивными CLI-программами. Вместо 30 отдельных MCP-функций достаточно одной, принимающей код.
Комментарии (110)
- Участники спорят, нужен ли MCP (Model Context Protocol): кто-то считает его лишним слоем, другие — полезным способом дать LLM структурированные инструменты.
- Критика: MCP ограничивает агента набором команд, не решает безопасность, дублирует OpenAPI и заставляет LLM учиться новому формату вместо bash/API.
- Альтернативы: прямое обращение к HTTP/CLI/WebSocket (UTCP), YAML-описание тулов (hooks_mcp), eval в песочнице (runjs, Bubblewrap).
- Практические проблемы: при 100+ тулов агент путается; приходится писать кучу обвязок вместо «просто вызвать API».
- Общий вывод: MCP пока выглядит сыро, требует лишних усилий и не даёт очевидных преимуществ перед строками/bash/API.
GPT-5 vs. Sonnet: Complex Agentic Coding
Задача: перенести TypeScript-утилиту Ruler на Rust, проверить идентичность через bash-тест.
Модели: GPT-5 (новый, превью) и Claude 4 Sonnet.
GPT-5
- Сразу прочитал код, составил подробный
plan.md, получил одобрение. - Работал почти без остановок, дважды отчитывался о статусе.
- Сначала написал bash-скрипт, который запускает оригинал и порт во временной папке и сравнивает вывод.
- Затем сгенерировал структуру
src/,Cargo.toml, CLI-аргументы, логикуapply/init/revert, обработку конфигов и MCP. - Итеративно правил код, пока тест не прошёл «зелёным».
- Время: ~20 мин, 1 коммит, ветка
feat/rust-port.
Claude 4 Sonnet
- Та же инструкция.
- Сразу начал писать Rust, но упустил bash-тест; пришлось напомнить.
- Тест написал быстрее, но менее читаемый.
- Порт делал «пачками»: сначала CLI, потом логика, потом MCP.
- После 3-х итераций тест прошёл.
- Время: ~30 мин, 3 коммита.
Вывод
- GPT-5 агентнее: сам планирует, реже спрашивает, меньше ошибок.
- Claude надёжнее в деталях, но требует чётких шагов.
- Оба справились, но GPT-5 ощущается «ближе к одной команде — один результат».
Комментарии (124)
- Пользователи сомневаются в объективности сравнений: результаты сильно зависят от системных промптов, харнесов и задач.
- Критика выбора моделей: вместо топ-версии Claude Opus сравнивали более дешёвый Sonnet, что искажает оценку «лучшей» модели.
- Стоимость vs качество: большинство разработчиков не готовы платить 10× за Opus, поэтому GPT-5 рассматривают как «cost-effective» вариант.
- Опыт в продакшене: многие находят Claude Code (Sonnet/Opus) надёжнее при работе с большими кодовыми базами и TDD, тогда как GPT-5 хорош для разовых скриптов.
- Нет единой метрики: из-за недетерминированности моделей и субъективных критериев «хорошего кода» каждый получает разные результаты.
Cursor CLI 🔥 Горячее 💬 Длинная дискуссия
- Установка:
npm i -g cursor-cli - Команды:
cursor diff,cursor commit,cursor review,cursor chat - Где работает: VS Code, JetBrains, Android Studio, Ghostty, Warp, Bash
Функции
- Прямые правки кода в терминале
- Реальное управление агентом
- Правила через
.cursorrules,AGENTS.md, MCP
Плюсы
- Последние модели Anthropic, OpenAI, Gemini
- Интеграция в любой IDE
- Скрипты и автоматизация
Комментарии (248)
- Пользователи обсуждают внедрение единого стандарта AGENT.md вместо множества разных файлов.
- CLI-агенты (Claude Code, Cursor CLI и др.) вызывают восторг: удобно держать в фоне, «чувствуешь себя хакером», но UI-IDE теряет значение.
- Критика: непонятно, зачем платить за Cursor, если тот же функционал уже включён в подписку Anthropic/OpenAI; не хватает обратной связи, MCP, hooks и локальных моделей.
- Сторонники Cursor верят в его будущую экосистему (CLI + IDE + GitHub-интеграции) и низкие издержки переключения между моделями.
- Главный вопрос безопасности: доверять ли LLM полный доступ к файловой системе и устанавливать скрипты через curl | bash.