Vobuda
Скачать Как это работаетClaude Codevs CodexСравнение О проекте Контакты

Что vobuda делает с вашей машиной

Всё, чего программа касается вне своей папки настроек, записано так, чтобы это можно было проверить. Папка настроек это ~/.config/vobuda, а vobuda where печатает её путь.

Без аккаунта и без отправки, пока вы не включили

Аккаунта и входа нет. Отчёты о сбоях выключены (faults.send: false), пока вы их не включите. Запросы, которые программа делает сама, и что несёт каждый, перечислены полностью на странице о приватности; проверка обновлений и отчёт о сбое описаны ещё раз ниже, вместе с файлами, которых они касаются.

Одно делается через вашего агента без нажатия и включено по умолчанию. Пока Claude Code ждёт вас, а вы отошли, панель раз в пятьдесят минут печатает в него односложный побочный вопрос (/btw), до пяти часов после вашего последнего ввода, чтобы кэш его запросов не остыл. Запрос это собственный запрос Claude Code, на вашем аккаунте, и он стоит десятую часть цены входа за разговор. Он виден на экране, на чипе кэша («прогрев в 16:10»), и в журнале как [warm]. Настройки, Агенты, Кэш запросов выключают его (cache.keepWarm: false).

Claude Code

Когда Claude Code установлен, vobuda пишет в ~/.claude/settings.json. Каждый хук это команда, вызывающая собственную командную строку vobuda, и каждая запись наша по полному пути: ваш хук, даже если он вручную вызывает vobuda signal, остаётся на месте.

ХукЧто vobuda с ним делаетПереключатель
StopОтмечает вкладку готовой-
NotificationОтмечает вкладку ждущей-
UserPromptSubmitСнимает отметку. Делает снимок папки проекта перед ходом и останавливает ключ, вставленный в запрос, с причинойsnapshots.enabled, fence.secrets
StopFailureОтмечает вкладку как сбойную, с ошибкой-
PreCompact, PostCompact, SubagentStart, SubagentStop, CwdChangedЗаметки рядом с числами агента-
PostToolUse для Edit, Write, MultiEdit, NotebookEditПанель файлов читает заново-
SessionStartПамятка окна для агента-
PreToolUse на оболочке и на инструментах записиОхрана: последний инструмент записан словами для вопроса; запись или удаление вне проекта отклонены; любое удаление отклонено; ключ в файл, который уходит наружу, отклонёнfence.enabled, fence.neverDelete, fence.secrets

Строка состояния указывает на statusline.sh от vobuda: он сохраняет JSON Claude Code рядом с настройками для строки чисел и затем запускает вашу прежнюю строку состояния, печатая то, что напечатала она. Ваша строка состояния, которая случайно тоже называется statusline.sh, отличается по пути и подключается цепочкой, а не заменяется. Снятие связей vobuda (Настройки, Агенты, переключатель связи) убирает всё это, возвращает вашу строку состояния и оставляет остальной файл как был.

Codex

Две вещи и способ отличить их от ваших.

Команда notify

В ~/.codex/config.toml параметр notify указывает на notify.sh от vobuda: он подаёт сигнал окну и затем запускает тот notify, что был у вас. Снятие возвращает его. Ваш notify считается нашим, только если называет полный путь нашего скрипта.

Памятка

Что окно умеет показать и как об этом просить, записывается в ~/.codex/AGENTS.md между двумя нашими комментариями-метками. Переписывается или убирается только этот участок.

Ваша оболочка

Ради отметок приглашения, то есть переходов между приглашениями и кода выхода на поле, vobuda отдаёт каждой интерактивной оболочке её интеграцию единственной дорогой, какая у оболочки есть. zsh получает её через ZDOTDIR (ваш собственный ZDOTDIR возвращается на место раньше, чем читается любой из ваших файлов), bash через унаследованный PROMPT_COMMAND, который убирает свою строку и оставляет строку вашего профиля, fish через папку vendor_conf.d в XDG_DATA_DIRS. Скрипты лежат в ~/.config/vobuda/shell/, и в вашей домашней папке ничего не правится. shell.integration: false оставляет оболочку нетронутой.

Оболочками владеет хранитель, тот же исполняемый файл, запущенный с --keeper в своей группе процессов, поэтому они переживают окно. Хранители слушают сокеты в ~/.config/vobuda/pty/, а закрытие блока завершает его оболочку и его хранителя. shell.keep: false снова делает оболочки детьми окна. При запуске окна хранители, которые ещё отвечают, возвращают свои блоки независимо от настройки сессий, а хранитель, чьего блока нет в окне, завершается, а не остаётся работать незамеченным.

Что она читает

Ваш SSH-конфиг

~/.ssh/config, ради имён хостов, предлагаемых как блоки.

Папки агентов

~/.claude/ и ~/.codex/, ради сессий, навыков, моделей и настроек агентов, показанных на панели.

Проект каждого блока

Его состояние git для отметок панели файлов и две стороны файла для блока изменений.

Копия проекта

git worktree делает копию рядом с верхней папкой проекта.

Отчёты о сбоях, выключены, пока вы не скажете

Программа записывает собственные сбои (панику, панель, которая упала, обещание, которое не выполнилось, команду, которая не удалась) в faults.json рядом с настройками. Каждый очищается перед записью: путь вашей домашней папки становится ~, текст обрезается на фиксированной длине, а экран показывает вам ровно то, что ушло бы. Пока faults.send не станет true, ничего не отправляется.

Когда станет, раз в сутки записи за день уходят на https://faults.vobuda.com, воркер, который заводит по одной задаче на отпечаток в публичном репозитории. Запись несёт минуту, когда это случилось, вид, модуль, отпечаток, очищенное сообщение, кадры стека, где они были, и случайный номер машины, не связанный с вами. Никогда: содержимое файлов, набранные команды, переменные окружения, ключи.

Обновления

Раз в сутки и по кнопке «Проверить обновления» программа спрашивает https://vobuda.com/latest.json (а если не вышло, тот же файл на GitHub) о номере новейшей версии и https://registry.npmjs.org о новейших версиях агентов. Запрос не несёт ничего о вас.

Сама по себе ничего не устанавливается. Обновление агента печатает его команду в блок, где вы можете её прочитать. Обновление vobuda печатает строку установки, которая скачивает подписанный пакет, сверяет его контрольную сумму со значением в скрипте, проверяет подпись Apple и ставит его туда, где vobuda уже стоит.

Что хранится рядом с настройками

state.json (что показывает окно, для скриптов), events.jsonl (что менялось, обрезается за два мегабайта), status/ (собственные числа агентов по pid), notes/, asks/, inbox/ (команды в пути), log.txt, faults.json, history.json, snapshots/ (проект перед ходом агента: ссылки в собственном git проекта, для папок без git копии здесь), pty/ (сокеты хранителей), awake.json (удержания, не дающие Mac уснуть, снимаются после перезапуска), shell/ (скрипты интеграции) и bin/ (командная строка и скрипт строки состояния).

Резервная копия настроек (vobuda backup) берёт настройки и оставляет остальное. Командная строка, которую вызывают эти хуки, описана на своей странице.