Бета · macOS

Досить няньчити ШІ.

Bulava запускає Claude Code і Codex на твоєму Mac, на підписках, які ти й так оплачуєш. Ти описуєш роботу. Claude її робить, Codex незалежно перевіряє і повертає назад, доки вона справді не зроблена — а ти читаєш результат, замість тиснути «продовжити».

Завантажити для macOS

Версія 1.8 · 10.8 MB · Apple Silicon і Intel · підписано й нотаризовано Apple

Або постав у термінал

curl -fsSL https://bulava.app/install.sh | bash

Ставить движок як night-shift у домашню теку. Без застосунку, без клону, без sudo. Що саме він там ставить

Код на GitHub

Вікно Bulava: продукти в бічній панелі, розмова одного продукту в центрі з транскриптом агента, і інспектор праворуч із теками в контексті та доказами перевірки цього прогону.
Одне вікно. Продукти ліворуч, справжній транскрипт агента посередині, і те, з чим ти можеш щось зробити — зміни, докази, звіти — праворуч.

Як іде робота

Опиши один раз. Прочитай, коли зроблено.

Три моменти, і жоден із них — не термінал, у який треба дивитись.

Пишеш так, як сказав би вголос

Ніяких форм, полів і оцінок. Пишеш, що хочеш, у полі того продукту, якого це стосується. Обидва двигуни читають повідомлення і складають позицію окремо один від одного, а те, у чому вони розійшлись, записується ще до того, як хтось торкнеться коду — і робота починається з узгодженого прочитання задачі, а не з першого правдоподібного.

Поки вони читають, картка показує, хто саме читає і скільки вже.

Поле вводу внизу розмови продукту, вибір двигунів на Claude і Codex, і картка задачі над ним.

Воно працює, є ти за столом чи нема

Прогін живе у власній сесії і переживає закриття застосунку, згорнуту кришку, обрив мережі й вичерпаний ліміт — дочікується скидання і йде далі сам. До тебе доходить лише те, без чого агенти справді не рушать, і доходить як питання з кнопками, а не як доручення в термінал.

Ні відсотків, ні прогрес-бара. Етап позначається тоді, коли про це сказало щось на диску.

Картка задачі під час роботи: крок, на якому вона зараз, інструменти, які щойно використав агент, і лічильники лімітів Claude і Codex у бічній панелі.

І воно мусить довести, що закінчило

Codex перевіряє результат проти прогону, з якого він вийшов: справжній дифф, тести, які справді пройшли, збірка, яка справді зібралась, знімки того, що на екрані. Знайдений дефект повертає роботу назад. Ніщо не доходить до тебе як зроблене лише тому, що агент так сказав.

Прийняти, змержити або повернути з тим, що не так — з тієї ж картки.

Інспектор завершеного прогону: теки в контексті і докази перевірки — кожен критерій приймання з командою, яка його перевірила, і тим, що вона відповіла.

Що відбувається з повідомленням

Одне повідомлення і все, що з ним відбувається.

Це схема за замовчуванням — та, яку обрав вимір нижче. Намальована з движка того релізу, який на цій сторінці, а не з того, що сьогодні лежить у мене на диску.

Позначені як необовʼязкові етапи мають право не відбутись: коли в одного двигуна закінчилось вікно, прогін прямо каже, кого бракує, і йде далі без нього, а не зупиняється. Чого він не робить ніколи — це не називає одну позицію звіркою.

Три схеми, які це змінило — консольна епоха, версія з планом і критикою, і перша з двома позиціями — кожна з тим, у чому вона була неправа.

Кадр комікса: велика постать із написом CODEX стоїть над меншою з написом CLAUDE CODE, тримає пасок і каже, що покличе людину, якщо робота не буде зроблена нормально; менша відповідає «добре… добре…».
Рев'ю-гейт, як я описував його друзям, поки ще не було схеми.

Власний бенчмарк продукту

Наскільки це краще за самий Claude Code?

Саме це тут і міряється, і це єдиний чесний спосіб, який ми знайшли: дати ту саму задачу окремо Claude Code і окремо Bulava — і порівняти, що вийде. 7–8 вересня задача була така: відтворити мобільну гру за відео чужого геймплею, і більше нічого. Жодних підказок далі, жодних виправлень, жодного другого промпта. Та сама задача пройшла трьома способами, кожен — до готового результату, який можна відкрити нижче.

Задача, дослівно

В цій папці ти знайдеш відео з геймплеем мобільної гри. Твоя задача передивитись уважно відео, зрозуміти всі механіки і зробити схожу гру. В грі має бути фактор везіння. Десь проходиться легше, десь тяжче. В відео як раз видно, що проходження дуже легке, бо фактор везіння максимальний. Рівні бувають різні, теж зверни на це увагу. Ти можеш обрати будь-який технічний стек. Треба зробити повноцінну гру, з рівнями, різними типами бустерів, анімацією, саунд дизайном. Для генерації ассетів можеш використовувати imagen але не більше 30 викликів за всю сессію. Гра має працювати в браузері.

Це все: жодних підказок далі, жодних виправлень, жодного другого промпта. Згаданий у ньому референс — 22-секундний запис комерційної match-3, який тут не перевикладається.

Три прогони отримали не побайтово однаковий файл, і сказати, що однаковий, тут найлегше з усього. Перший прогін отримав цей текст і ще один рядок — куди задеплоїти результат. Два пайплайнові прогони взяли ту саму задачу з файлу стенду, набрану інакше: інша пунктуація, а останній рядок просить результат, який запускається локально з папки. Усі три точні тексти опубліковані, кожен зі своєю довжиною і sha256, у benchmark.json — відмінності можна прочитати, а не вірити нам на слово.

Написано українською — це оригінал.

Три результати

Кожен кліп — живий сеанс на тій самій адресі, що поруч. Chrome відкриває гру і грає справжніми кліками мишею, а хід щоразу бере з власної підказки гри. Нічого не пришвидшено, і жоден кадр тут не намальований нами.

Що показали виміри

Чистий ClaudeClaude + рев'юДві позиції
Час на задачу3.7год4.2год1.5год
Токенів оброблено389.0млн155.6млн34.3млн
Зусилля Claudeрівень міркуванняxhighhighhigh
Що вийшло≈13багів, на око≈7багів, на око0зламаних механік

Токени — це все, що моделі прочитали, разом із кешем: 97% з них — читання з кешу.

Виміряно 2026-09-17, з прогонів 2026-09-07 — 2026-09-08. Як саме це міряли →

Уже працює У цій збірці

  • Нічна змінаСтавиш задачу ввечері — зранку дивишся результат.
  • Рев'ю-гейтCodex не приймає роботу, поки вона не зроблена.
  • Кажи голосомТекст, файл або голос — і розшифровка тут, а не в хмарі.
  • Питає про незворотнеРешту зʼясовує саме, без мене.

Ще не зроблено Намір

  • Редактор харнесівОписав словами, як хочеш працювати — отримав схему, яка виконується.
  • Мобільний застосунокДивитись і відповідати, поки тебе немає за столом.
  • TelegramДля тих, хто не хоче ще один застосунок.
  • Скіли під задачуУ магазинах є зірки й відгуки — навіщо шукати руками.

Дві дороги

Бери застосунок. Термінал нікуди не дівся.

Рекомендую

Bulava для macOS

Увесь продукт: вікно, питання з кнопками, рев'ю з доказами. Вона ще й носить движок усередині себе і ставить тобі команду night-shift, тож узяти застосунок не означає втратити термінал.

Одне вміє тільки застосунок: macOS видає запис екрана й доступність підписаній програмі, а не скрипту. Прогони, які мусять зняти інтерфейс, щоб довести, що вони спрацювали, потребують запущеної Bulava.

Для тих, хто в терміналі

night-shift

Той самий движок, сам по собі, без застосунку й без клону репозиторія. Ставить у чергу, веде пару, тримає рев'ю-гейт і перечікує ліміти з командного рядка.

# у ~/.night-shift, і лінкує команди
curl -fsSL https://bulava.app/install.sh | bash

# працює, коли це відповідає
night-shift status

Він каже, що змінить, перш ніж змінити, і його можна спершу прочитати. Ті самі акаунти й інструменти, що й у застосунку. Прибрати — одна команда, і вона повертає твої налаштування Claude Code: night-shift uninstall.

Що потрібно

Твоя машина, твої акаунти, твої теки.

macOS 15.6 або новіша
Apple Silicon або Intel.
Claude Code
На твоєму акаунті. Вхід робиться один раз, у терміналі — цю частину ніхто за тебе не зробить.
Codex CLI
Теж твій акаунт. Це той, хто перевіряє роботу.
tmux, jq, git, python3
Bulava перевіряє їх на першому запуску і пропонує поставити через Homebrew, кнопкою.

Як воно є насправді

Воно працює щодня і збудувало себе саме.

Але ти серед перших, хто ним користується і хто не я, а бета є бета.

Оновлення
Застосунок перевіряє їх сам і пропонує кнопкою. Якщо в цей момент іде робота — спершу питає.
Що може зупинити прогін
Протермінований вхід, вичерпане вікно лімітів або рішення, яке справді твоє. Усі три повертаються питанням, на яке можна відповісти в застосунку.
Код
Відкритий, і сайт зібрано з того самого репозиторія.
Знайшов баг
Напиши мені. Такі речі я правлю швидко.