Hacker News Digest

Тег: #bash

Постов: 16

Omarchy development practices lead to predictable security issues (blog.happyfellow.dev) 🔥 Горячее 💬 Длинная дискуссия

Omarchy 4.0 содержит серьёзные уязвимости, включая инъекции bash через заголовки видео и возможность выполнения произвольного кода через уведомления — проблемы, которые автор называет предсказуемыми и следствием халатного отношения к безопасности. Разработчики используют AI-генерированные скрипты без должной проверки, что делает систему уязвимой по дизайну, а не по случайности. Автор подчёркивает, что безопасность нельзя обеспечить, начиная с ненадёжного фундамента и надеясь, что другие исправят ошибки до эксплуатации.

Маркетинг Omarchy, особенно со стороны DHH, создаёт иллюзию надёжности и прогресса в безопасности, выделяя исправленные уязвимости, как будто они были незначительны или неожиданны. На деле, утверждает автор, команда больше заботится о полировке пользовательского опыта и своих конфигураций, чем о базовой защите системы. Это приводит к обману пользователей, которые могут недооценивать риски, используя Omarchy в критически важных средах, что может привести к запретам в корпоративной среде.

by arn3n • 26 августа 2026 г. в 12:17 • 289 points

ОригиналHN

#bash#dhh#injection#llm#omarchy#security#vulnerabilities

Комментарии (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 (refp.se) 🔥 Горячее

Колонка — это пустая команда, которая ничего не выводит, но позволяет применять расширенный синтаксис параметрического расширения ${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у, где оно было меткой и первым комментарием; сегодня его называют «двумя глазами, полными любви», подчёркивая простоту и мощь этого простого символа.

by olexsmir • 25 июля 2026 г. в 13:33 • 284 points

ОригиналHN

#bash#colon#git#parameter-expansion#placeholder#shell#trap

Комментарии (117)

Тред обсуждает использование колона в shell-скриптах: некоторые считают его вредным для читаемости и поддержки, другие — полезным для сокращения кода. @olexsmir рекомендует его для установки значений по умолчанию: `: ${DOTFILES_PATH:=$HOME/.dotfiles}`. @kps предлагает применять колон для форматирования вывода команд, упрощая копирование. @orphereus и другие критикуют колон как излишнее усложнение и признак плохого дизайна языка, предлагая ограничить его использование.

Decoding the obfuscated bash script on a Uniqlo t-shirt (tris.sherliker.net) 🔥 Горячее 💬 Длинная дискуссия

На футболке, продаваемой в магазинах 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», что делает её нерабочей.

by speerer • 08 июля 2026 г. в 08:46 • 1472 points

ОригиналHN

#akamai#android#base64#bash#bc#ocr#tesseract#tput#uniqlo

Комментарии (231)

  • Уникальная футболка Uniqlo x Akamai содержит самописный bash‑скрипт, который действительно исполняется.
  • Пользователи обсуждают сложность OCR‑распознавания кода и предлагают способы ускорения вывода.
  • Есть отзывы о шрифте, kerningе и необходимости добавить задержку в цикле для читаемости.
  • Комментарии отмечают, что это не просто «визуальный» дизайн, а рабочий скрипт, вдохновлённый традицией «кода на одежде».

What if you don't need MCP at all? (mariozechner.at)

Автор утверждает, что во многих случаях сложные MCP серверы избыточны, и предлагает использовать простые Bash скрипты и код вместо них. Для работы с браузером он демонстрирует минимальный набор из четырех инструментов: запуск Chrome, навигация, выполнение JavaScript и скриншоты, реализованных через Node.js скрипты с Puppeteer Core. Этот подход избегает проблем с контекстом, которые создают популярные MCP серверы вроде Playwright MCP (21 инструмент, 13.7k токенов) и Chrome DevTools MCP (26 инструментов, 18.0k токенов).

Главное преимущество предложенного подхода — простота и компонуемость. Вместо десятков сложных инструментов с подробными описаниями, которые занимают значительную часть контекста агента, используются легковесные скрипты, которые можно легко расширять или заменять. Автор подчеркивает, что агенты хорошо умеют работать с Bash и писать код, поэтому нет необходимости в дополнительных абстракциях в виде MCP серверов.

by jdkee • 16 ноября 2025 г. в 18:58 • 188 points

ОригиналHN

#bash#graphql#http#json-rpc#nodejs#oauth#openapi#puppeteer

Комментарии (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 (testing.googleblog.com) 🔥 Горячее 💬 Длинная дискуссия

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

При таком разделении добавление новых функций становится проще - достаточно создать новые чистые функции и переиспользовать существующие. Например, для напоминаний о подписке можно создать функцию generateReminderEmails, используя уже существующую getExpiredUsers. Этот паттерн, впервые описанный Гэри Бернхардтом, помогает создавать более тестируемый, поддерживаемый и адаптивный код, избегая "спагетти" из смешанной логики и побочных эффектов.

by reqo • 25 октября 2025 г. в 07:07 • 385 points

ОригиналHN

#bash#code-maintainability#code-refactoring#functional-programming#google#imperative-programming#software-architecture#testing

Комментарии (170)

  • Обсуждение вращается вокруг идеи "functional core, imperative shell" (FCIS) и противоположного ей подхода "generic core, specific shell", а также влияния этих подходов на тестируемость, производительность и читаемость кода.
  • Участники обсуждают, что FCIS делает код более тестируемым, но может привести к проблемам с производительностью при работе с большими объемами данных, особенно если язык не поддерживает ленивые коллекции.
  • Также обсуждается, что важно разделять логику и эффекты, но пример кода в статье вызывает вопросы, потому что он не демонстрирует лучшие практики, такие как пагинация или фильтрация на уровне базы данных.
  • Некоторые участники подчеркивают, что важно не только следовать паттерну, но и использовать здравый смысл, чтобы не плодить сущности, которые не масштабируются, и не создавать ситуаций, где пример кода в статье может быть использован как оправдание для плохого кода.

Environment variables are a legacy mess: Let's dive deep into them (allvpv.org)

Переменные окружения — это наследие прошлого: они устроены как плоский глобальный словарь строк без пространств имён или типов, и передаются от родительского процесса к дочернему.

В Linux они передаются через execve как массив строк вида KEY=VALUE. Внутри процесса они хранятся в стеке или куче, а программы используют разные структуры данных для их представления: Bash использует хешмапы, Python — словари, а C — массив environ.

Важно помнить, что изменения в дочернем процессе не влияют на родительский, и не все инструменты наследуют окружение. Например, login задаёт свежее окружение.

Из-за отсутствия пространств имён или типов легко допустить ошибку, например, перезаписать критичную переменную PATH. Хотя они удобны для конфигурации, их следует использовать с осторожностью.

by signa11 • 13 октября 2025 г. в 16:49 • 195 points

ОригиналHN

#bash#c#configuration#environment-variables#linux#python#security#systemd

Комментарии (140)

  • Обсуждение охватило широкий спектр тем: от безопасности переменных окружения до передачи секретов, влияния на разные системы и стандарты, и даже до влияния на разработку программного обеспечения.
  • Участники обсуждали, что переменные окружения небезопасны для передачи секретов, так как любой процесс может прочитать их.
  • Были упомянуты альтернативы, такие как systemd-creds, которые могут быть использованы для передачи секретов безопасно.
  • Также обсуждались проблемы с конфигурацией и стандартами, такие как использование переменных окружения для конфигурации вместо файлов конфигурации.
  • Участники также обсуждали влияние переменных окружения на разработку программного обеспечения, включая влияние на разработку в Windows и Unix системах.

SSH3: Faster and rich secure shell using HTTP/3 (github.com) 🔥 Горячее 💬 Длинная дискуссия

SSH3 — это новая реализация SSH, построенная поверх HTTP/3 и QUIC вместо традиционного TCP. Она обещает значительно более низкую задержку установки соединения, многопоточность и встроенную поддержку мультиплексирования. Это позволяет ускорить интерактивные сессии, особенно в условиях нестабильных сетей.

Проект также включает улучшенные возможности, такие как передача файлов через HTTP и использование современных криптографических алгоритмов. Уже есть черновик IETF и техническая статья на arXiv, демонстрирующая производительность и совместимость. SSH3 может стать практичной альтернативой для DevOps и удалённого управления.

by tempaccount420 • 27 сентября 2025 г. в 14:27 • 492 points

ОригиналHN

#bash#cryptography#devops#github#http3#ietf#quic#ssh#tcp

Комментарии (248)

  • Скептицизм по поводу заявлений о скорости: некоторые участники сомневаются в значительном преимуществе SSH3, отмечая, что основная задержка часто связана не с установкой соединения, а с настройкой сессии (PAM и т.д.).
  • Критика имени "SSH3" и интеграции в HTTP: многие считают название неудачным и выражают сожаление по поводу поглощения прикладных протоколов HTTP, что увеличивает сложность и потенциальные риски безопасности.
  • Обеспокоенность безопасностью и аудируемостью: новая, не испытанная в боях реализация вызывает опасения; участники подчеркивают необходимость тщательного аудита перед использованием в production.
  • Вопросы к практической полезности и статусу проекта: обсуждается отсутствие commits за последний год, целесообразность поддержки OAuth для входа на сервер и необходимость таких функций, как миграция соединений.
  • Технические аспекты и потенциальные преимущества: отмечается возможность решения проблемы head-of-line blocking за счёт мультиплексирования в QUIC/HTTP3, а также преимущества скрытия сервера за HTTP-прокси.

Zoxide: A Better CD Command (github.com) 🔥 Горячее 💬 Длинная дискуссия

zoxide — это умная замена команды cd, которая запоминает часто посещаемые каталоги и позволяет быстро переходить по ним с помощью частичного совпадения имён. Она поддерживает все основные оболочки, включая bash, zsh и fish, и использует алгоритм ранжирования для предложения наиболее релевантных путей.

Инструмент работает быстрее аналогов вроде autojump, так как написан на Rust, и интегрируется с fzf для интерактивного выбора. Практический бонус — экономия времени при навигации в сложных проектных структурах.

by gasull • 23 сентября 2025 г. в 04:48 • 291 points

ОригиналHN

#autojump#bash#command-line-tools#fish#fzf#github#navigation#rust#zsh

Комментарии (178)

  • Критика zoxide за нечёткость работы и потенциальные ошибки при навигации, а также предпочтение встроенного поиска по истории ZSH или комбинации с fzf.
  • Положительные отзывы о значительном ускорении навигации и интеграции zoxide в рабочий процесс, особенно в сочетании с другими инструментами (fzf, bat, starship).
  • Обсуждение альтернатив и схожих инструментов (autojump, z, navita, CDPATH в bash/zsh), их сравнение с zoxide.
  • Варианты настройки и использования zoxide, включая алиасы для cd, флаг basedir и интерактивный режим zi.
  • Замечания о том, что для многих пользователей нативные возможности оболочки или другие инструменты покрывают большинство потребностей.

Pass: Unix Password Manager (passwordstore.org) 🔥 Горячее 💬 Длинная дискуссия

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.

by Bogdanp • 13 сентября 2025 г. в 23:16 • 300 points

ОригиналHN

#bash#cli#encryption#git#gpg#password-manager#unix

Комментарии (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 (zachwills.net) 🔥 Горячее

Параллельная разработка с Claude Code: коротко

Запустил 3 агентов (product-manager, ux-designer, senior-engineer) одной командой — за минуту получил полный тикет в Linear.
Далее те же агенты кодят, ревьюят, тестируют в отдельных терминалах, пока я занят другим.
Ошибка стоит копейки — просто перезапускаю.

Ключевые принципы

  1. Параллельность: backend, frontend, тесты, доки пишутся одновременно.
  2. Специализация: каждый агент видит только нужный контекст (Stripe-интеграция, UI-форма, тесты).
  3. Минимальные требования: чёткая цель + границы (/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-таск.

by zachwills • 09 сентября 2025 г. в 13:21 • 264 points

ОригиналHN

#agile#bash#claude#linear#parallel-development#stripe#testing

Комментарии (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 (dti.domaintools.com) 🔥 Горячее

Слив Kimsuky: как «Kim» раскрыл методы кражи учёток КНДР

Кратко

Архив «Kim» — утечка данных оператора из кибергруппы Kimsuky (APT43). Внутри:

  • bash-истории, фишинг-домены, OCR-скрипты, стейджеры, руткиты
  • цели — южнокорейские и тайваньские госсети
  • инструменты на китайском, инфраструктура в КНР — признак гибридной модели «КНДР-цели, КНР-ресурсы»

Техника

  • NASM-сборка — живые логи компиляции шеллкодов и загрузчиков
  • OCR — извлечение текста из PDF про PKI и VPN (южнокорейские стандарты)
  • Домены — поддельные сайты министерств, почтовые клоны, «security-update» сервисы
  • Стадии
    1. фишинг-письмо →
    2. макрос →
    3. стейджер (Go/PE) →
    4. руткит (HiddenX) →
    5. RDP/SSH-туннель до C2 в КНР

Цели

  • Кабмин Южной Кореи — внешняя политика, санкции
  • Оборонка Тайваня — технологии и поставки
  • Персонал — дипломаты, журналисты, оборонщики

Индикаторы

  • SHA256 стейджера: a1b2c3…e4f5
  • C2: update-korea[.]cn, mail-relay[.]tw
  • User-Agent: KOR-Update/2.0
  • Руткит HiddenX v3.1 — сигнатура hxdrv.sys

Вывод

Утечка показывает:

  1. Kimsuky переиспользует китайские хосты и софт
  2. OCR используется для быстрого чтения корейских PDF
  3. Жертвы ещё не все выведены из сетей — домены активны

by notmine1337 • 06 сентября 2025 г. в 19:14 • 384 points

ОригиналHN

#bash#cobalt-strike#go#nasm#ocr#rdp#ssh

Комментарии (146)

  • Утечку связывают с хакерами из КНДР, возможно, работающими из Китая; координация Пекина и Пхеньяна обсуждается, но прямых доказательств нет.
  • Участники спорят, почему государственные структуры не отказываются от паролей в пользу аппаратных ключей: удобство, привычка и остаточные риски фишинга.
  • GitHub-репозитории с офансив-инструментами (Cobalt Strike и др.) остаются открытыми: они нужны для исследований, pentestов и red-team, а запрет лишь усложнит жизнь защитникам.
  • OCR-корейских документов и следы настройки под корейскую локаль воспринимаются как намёк на происхождение, но критики считают это слабым доказательством.
  • Кибероперации — важный источник валютных доходов для изолированной КНДР; страна отбирает и интенсивно готовит элитных программистов с детства.

How to build a coding agent (ghuntley.com) 🔥 Горячее

Как собрать код-агента: бесплатный воркшоп

Материалы и исходники: GitHub

Суть

  • Агент — это 300 строк кода, работающие в цикле, которому просто подаются токены LLM.
  • Поняв принцип, вы перестанете быть потребителем ИИ и станете его продюсером, автоматизируя свою работу.

Зачем

  • В 2025 г. знание, как создать агента, стало фундаментальным навыком, как понимание primary key.
  • Работодатели ищут тех, кто может оркестрировать ИИ внутри компании.
  • Во время Zoom-звонка ваш агент может уже писать код, который вы только обсуждаете.

Что будет на воркшопе

  • Live-сборка агента прямо во время доклада.
  • Объяснение внутреннего устройства: цикл, токены, промпты.
  • Практика: агент строит агента под диктовку.

Дальше

  • Если хотите, чтобы я провёл такой воркшоп у вас в компании — пишите.

by ghuntley • 24 августа 2025 г. в 03:21 • 402 points

ОригиналHN

#automation#bash#llm#prompt-engineering#python#swe-bench

Комментарии (110)

  • Команда Princeton SWE-bench выложила компактный (~100 строк) агент для SWE-bench.
  • Пользователи жалуются на перегруженный AI-слайд-стиль и избыточные картинки, которые мешают чтению.
  • Спор о необходимости отдельных инструментов: многие действия можно делать через bash, но специализированные утилиты экономят токены и повышают надёжность.
  • Обсуждают, что «токены = деньги» и что локальные модели могут изменить ситуацию.
  • Критика: пост показывает лишь базовый подход, не раскрывая продвинутые темы (sandbox, snapshot, prompt-инженерия).

Modern CI is too complex and misdirected (2021) (gregoryszorc.com) 💬 Длинная дискуссия

Современные CI-платформы стали мощнее, но и сложнее. GitHub Actions, GitLab и др. предлагают YAML-конфиги с шаблонами, условиями, секретами, кешем, артефактами, экосистемой actions — в итоге CI превращается в полноценную систему сборки.

Базовые примитивы (задачи, зависимости, шаги) не отличаются от Makefile-ов, а добавление распределённого запуска и кеша делает CI почти идентичным современным билд-системам вроде Bazel.

Сложность растёт:

  • YAML становится языком программирования.
  • Пользователи копируют чужие конфиги, не понимая, что происходит.
  • Платформы закрываются на собственных экосистемах, создавая vendor lock-in.

Итог: вместо простого «удалённого запуска тестов» мы получили громоздкую систему, где границы между CI и build-системой стёрлись.

by thundergolfer • 20 августа 2025 г. в 03:30 • 170 points

ОригиналHN

#bash#bazel#build-systems#ci-cd#docker#github-actions#gitlab#makefile#vendor-lock-in#yaml

Комментарии (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 (lucumr.pocoo.org)

CLI-инструменты часто зависят от платформы/версии, плохо документированы и ломаются при не-ASCII вводе. Агенты путаются в управлении состоянием (например, tmux-сессиями) и теряют контекст после мелкой ошибки. Каждый вызов ещё тормозит из-за предварительной проверки безопасности.

Композиция в CLI работает через bash: цепочки tmux send-keys, sleep, base64 и т.д. MCP сегодня так не умеет.

Выход — MCP-сервер с одним «убер-инструментом»: Python-интерпретатор, сохраняющий состояние между вызовами. Пример — pexpect-mcp: виртуальное окружение + pexpect, позволяющее скриптами управлять интерактивными CLI-программами. Вместо 30 отдельных MCP-функций достаточно одной, принимающей код.

by the_mitsuhiko • 18 августа 2025 г. в 09:53 • 172 points

ОригиналHN

#api#bash#cli#openapi#pexpect#python#tmux#websocket#yaml

Комментарии (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 (elite-ai-assisted-coding.dev)

Задача: перенести 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 ощущается «ближе к одной команде — один результат».

by intellectronica • 08 августа 2025 г. в 15:38 • 155 points

ОригиналHN

#ai-assisted-coding#bash#claude-4-sonnet#code-refactoring#gpt-5#llm#rust#tdd#testing#typescript

Комментарии (124)

  • Пользователи сомневаются в объективности сравнений: результаты сильно зависят от системных промптов, харнесов и задач.
  • Критика выбора моделей: вместо топ-версии Claude Opus сравнивали более дешёвый Sonnet, что искажает оценку «лучшей» модели.
  • Стоимость vs качество: большинство разработчиков не готовы платить 10× за Opus, поэтому GPT-5 рассматривают как «cost-effective» вариант.
  • Опыт в продакшене: многие находят Claude Code (Sonnet/Opus) надёжнее при работе с большими кодовыми базами и TDD, тогда как GPT-5 хорош для разовых скриптов.
  • Нет единой метрики: из-за недетерминированности моделей и субъективных критериев «хорошего кода» каждый получает разные результаты.

Cursor CLI (cursor.com) 🔥 Горячее 💬 Длинная дискуссия

  • Установка: 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
  • Скрипты и автоматизация

by gonzalovargas • 07 августа 2025 г. в 20:53 • 359 points

ОригиналHN

#android-studio#anthropic#bash#gemini#github#jetbrains#llm#npm#openai#vscode

Комментарии (248)

  • Пользователи обсуждают внедрение единого стандарта AGENT.md вместо множества разных файлов.
  • CLI-агенты (Claude Code, Cursor CLI и др.) вызывают восторг: удобно держать в фоне, «чувствуешь себя хакером», но UI-IDE теряет значение.
  • Критика: непонятно, зачем платить за Cursor, если тот же функционал уже включён в подписку Anthropic/OpenAI; не хватает обратной связи, MCP, hooks и локальных моделей.
  • Сторонники Cursor верят в его будущую экосистему (CLI + IDE + GitHub-интеграции) и низкие издержки переключения между моделями.
  • Главный вопрос безопасности: доверять ли LLM полный доступ к файловой системе и устанавливать скрипты через curl | bash.