Приложение Clawdbot для macOS

Приложение-компаньон Clawdbot для macOS обеспечивает интеграцию со строкой меню, управление разрешениями и нативные возможности macOS для вашего ИИ-ассистента.

Обзор компаньона Clawdbot для macOS

Приложение Clawdbot для macOS — это компаньон в строке меню для Clawdbot. Оно владеет разрешениями, управляет/подключается к Gateway локально (launchd или вручную) и предоставляет возможности macOS агенту как узел.

Что оно делает

  • Показывает нативные уведомления и статус в строке меню
  • Владеет запросами TCC (Уведомления, Универсальный доступ, Запись экрана, Микрофон, Распознавание речи, Автоматизация/AppleScript)
  • Запускает или подключается к Gateway (локально или удалённо)
  • Предоставляет инструменты только для macOS (Canvas, Камера, Запись экрана, system.run)
  • Управляет локальной службой узла
  • Устанавливает глобальный CLI (clawdbot) через npm/pnpm по запросу

Локальный vs Удалённый режим

РежимОписание
Локальный (по умолчанию)Приложение подключается к работающему локальному Gateway; включает службу launchd при необходимости
УдалённыйПриложение подключается к Gateway через SSH/Tailscale; запускает локальную службу узла

Приложение не порождает Gateway как дочерний процесс.

Управление Launchd

Приложение управляет LaunchAgent для каждого пользователя с меткой bot.molt.gateway (или bot.molt.<profile> при использовании --profile).

# Перезапустить gateway
launchctl kickstart -k gui/$UID/bot.molt.gateway

# Остановить gateway
launchctl bootout gui/$UID/bot.molt.gateway

Если LaunchAgent не установлен, включите его из приложения или выполните:

clawdbot gateway install

Возможности узла (macOS)

Приложение macOS представляется как узел с этими возможностями:

КатегорияКоманды
Canvascanvas.present, canvas.navigate, canvas.eval, canvas.snapshot
Камераcamera.snap, camera.clip
Экранscreen.record
Системаsystem.run, system.notify

Узел сообщает карту разрешений, чтобы агенты могли решить, что разрешено.

Одобрения выполнения (system.run)

system.run контролируется одобрениями выполнения в приложении macOS (Настройки → Одобрения выполнения).

Конфигурация хранится в:

~/.clawdbot/exec-approvals.json

Пример конфигурации:

{
  "version": 1,
  "defaults": {
    "security": "deny",
    "ask": "on-miss"
  },
  "agents": {
    "main": {
      "security": "allowlist",
      "ask": "on-miss",
      "allowlist": [{"pattern": "/opt/homebrew/bin/rg"}]
    }
  }
}

Примечания:

  • Записи белого списка — это glob-шаблоны для разрешённых путей к бинарным файлам
  • Выбор "Всегда разрешать" в запросе добавляет эту команду в белый список

Глубокие ссылки

Приложение регистрирует схему URL clawdbot:// для локальных действий.

clawdbot://agent

Запускает запрос агента Gateway:

open 'clawdbot://agent?message=Hello%20from%20deep%20link'

Параметры запроса:

ПараметрОписание
messageОбязательный - сообщение для отправки
sessionKeyНеобязательный - идентификатор сессии
thinkingНеобязательный - включить режим размышления
deliver / to / channelНеобязательный - цель доставки
timeoutSecondsНеобязательный - таймаут запроса
keyНеобязательный - ключ автономного режима

Безопасность: Без key приложение запрашивает подтверждение.

Процесс первичной настройки

  1. Установите и запустите Clawdbot.app
  2. Пройдите чеклист разрешений (запросы TCC)
  3. Убедитесь, что локальный режим активен и Gateway работает
  4. Установите CLI, если хотите доступ через терминал

Процесс сборки и разработки

cd apps/macos && swift build
swift run Clawdbot  # или используйте Xcode

# Упаковать приложение
scripts/package-mac-app.sh

Отладка подключения к Gateway

Используйте отладочный CLI для тестирования WebSocket-рукопожатия Gateway:

cd apps/macos
swift run clawdbot-mac connect --json
swift run clawdbot-mac discover --timeout 3000 --json

Опции подключения:

ОпцияОписание
--url <ws://host:port>Переопределить конфигурацию
--mode <local|remote>Разрешить из конфигурации
--probeПринудительно выполнить проверку здоровья
--timeout <ms>Таймаут запроса (по умолчанию: 15000)
--jsonСтруктурированный вывод

Удалённое подключение (SSH-туннели)

Для удалённого доступа к Gateway:

# Контрольный туннель (WebSocket-порт Gateway)
ssh -N -L 18789:127.0.0.1:18789 user@host

Следующие шаги