BigArrow дозволяє ШІ-агентам виділяти елементи інтерфейсу macOS для підтвердження людиною
Відкрита утиліта BigArrow надає наскрізний візуальний покажчик, за допомогою якого агенти можуть підсвічувати вікна, кнопки або діалоги дозволів у macOS. Вона інтегрується як навичка для Claude Code та Codex, дозволяючи моделям передавати інтерактивні завдання користувачеві без блокування термінала.

Чому це важливо
Ви зможете розблокувати зависання агентів на екранах OAuth, запитах 2FA та системних діалогах, дозволивши інструментам вказувати прямо на потрібні кнопки замість виведення непомітних повідомлень у термінал.
TL;DR
- 01BigArrow додає нативні наскрізні UI-оверлеї для автономних агентів у середовищі macOS.
- 02Інтегрується як навичка в Claude Code (~/.claude/skills) та Codex (~/.agents/skills) однією командою.
- 03Детерміновані коди завершення дозволяють агентам програмно обробляти відсутні системні дозволи.
Ключові факти
- Ліцензія
- MIT
- Мова
- Swift (потрібен Xcode 16+, macOS 14+)
- Тривалість за замовчуванням
- 8 секунд
- Навантаження на CPU
- 1.4% (виміряно на CI-раннері)
- Підтримувані навички агентів
- Claude Code (~/.claude/skills), Codex (~/.agents/skills)
Усунення блокувань під час взаємодії з людиною
Автономні агенти розробки регулярно стикаються з межами, які не можуть подолати самостійно: запитами OAuth, підтвердженнями ключів доступу та діалогами дозволів macOS. У таких випадках моделі зазвичай виводять текстові повідомлення в термінал, за яким розробник не стежить. Утиліта bigarrow реалізує візуальний механізм сповіщень, написаний на Swift, без сторонніх залежностей та під ліцензією MIT.
Нативна інтеграція з macOS без перехоплення фокусу
Інструмент малює наскрізні графічні елементи поверх віконного менеджера macOS, підтримуючи роботу з кількома моніторами, Spaces та Stage Manager. Рендеринг виконується через Core Animation на рівні системного сервера, споживаючи близько 1.4% процесора на тестових стендах. Процес використовує явну обробку подій замість виклику NSApplication.run(), що гарантує збереження фокусу у вашому редакторі коду.
# Вказівка на елемент за назвою у конкретному застосунку
bigarrow point --element "Allow" --app "System Settings" --text "Підтвердіть дію"
# Вказівка за точними екранними координатами
bigarrow point --at 760,500 --text "Введіть код 2FA"Протокол взаємодії з агентами та життєвий цикл
Стрілки зникають автоматично через 8 секунд за замовчуванням, за допомогою прапорця --until-click або коли батьківський процес агента завершує роботу через відстеження CLAUDE_PID чи BIGARROW_OWNER_PID. Інструмент повертає передбачувані коди помилок:
0: Успішне виконання2: Некоректні вхідні аргументи3: Цільове вікно чи елемент не знайдено4: Відсутні дозволи Accessibility в macOS
Для Claude Code команду bigarrow stop --hook можна підключити до хука UserPromptSubmit, щоб автоматично очищати старі вказівники між запитами.
Спробуй за 2 хвилини
brew install franzenzenhofer/tap/bigarrow
bigarrow install-skillbash
✓ Коли використовувати
- Сесії Claude Code або Codex, які потребують дій користувача на екранах 2FA чи OAuth.
- Інтерактивні скрипти онбордингу та покрокові інструкції налаштування інструментів.
- Налагодження екранних координат під час тестування візуальних моделей керування комп'ютером.
✕ Коли НЕ варто
- Headless сервери на Linux або хмарні CI/CD контейнери без віконного сервера macOS.
- Сценарії автоматизації, що вимагають емуляції кліків або введення з клавіатури.
- Системи, де батьківський термінал не має дозволів на доступ до Accessibility в macOS.
Що зробити сьогодні
- Встановіть BigArrow через Homebrew командою brew install franzenzenhofer/tap/bigarrow.
- Зареєструйте інструмент у вашому оточенні запуском bigarrow install-skill.
- Перевірте системні дозволи термінала на виконання Accessibility за допомогою bigarrow doctor.
Що каже спільнота
“Interesting. I bet agentic harnesses would find it useful for communicating with other agents / themselves as well.”
“The first example is the one that feels like it has the most potential to me. 'Teach me how to use this app myself' kinda stuff. Guiding agent rather than doing agent.”