Документация Kilobat

Всё, что нужно, чтобы работать с Kilobat из строки меню, терминала или через ИИ-агента.

Установка

CLI бесплатный и с открытым исходным кодом. Установите его через Homebrew:

brew install seifip/kilobat/kilobat

Будут установлены kilobat и короткий псевдоним kb. Все примеры ниже работают с любым из них.

Или скачайте приложение для Mac — в нём тоже есть CLI: Kilobat.app/Contents/Helpers/kilobat.

Kilobat Lite в Mac App Store

Kilobat Lite — бесплатная версия для Mac App Store, скоро выйдет. Она работает в песочнице App Sandbox от Apple и сохраняет то, что там работает: проверки состояния, тест скорости, Wi-Fi-радар и соседние сети, «Почему нет подключения?» и режим без сна. Трафику по приложениям, правилам и сетевому фильтру, смене DNS, помощнику для работы с закрытой крышкой и CLI нужны разрешения, которых песочница не даёт, поэтому они есть только в приложении Kilobat с этого сайта. Обе версии можно установить рядом.

Включите автодополнение для своей оболочки:

# zsh
echo 'source <(kilobat completion zsh)' >> ~/.zshrc
# fish
kilobat completion fish > ~/.config/fish/completions/kilobat.fish

Быстрый старт

Запустите kilobat без аргументов, чтобы открыть интерактивное меню: стрелки или j/k — перемещение, Enter — открыть, цифра — перейти, q — выйти.

kilobat status --watch     # live traffic by app; q quit, s sort, f filter, / search
kilobat diagnose           # what is slowing your connection
kilobat speedtest          # speed and latency under load
kilobat profile travel     # switch to the Travel profile
kilobat block com.example.App

Запустите kilobat <command> --help, чтобы получить справку по любой команде.

Команды

Мониторинг

kilobat status [--watch] [--json]Трафик по приложениям и лимит сеанса в реальном времени; снимок в JSON или поток JSON Lines с --watch
kilobat report [--csv|--json] [--summary] [--days 1…365]Локальная история использования или итоги по дням и топ приложений; в CSV по строке на приложение
kilobat report compare --total 40GB [--unit GB|GiB] [--direction both|download|upload] (--from DATE --to DATE | --period last-month) [--network NAME] [--json|--csv]Цифра роутера или провайдера рядом с тем, что Kilobat записал на этом Mac за тот же период и в тех же единицах, с записанными часами, каждым пробелом в данных и вероятными причинами расхождения
kilobat health-history [--hours 1…720] [--json]Проверки роутера, интернета, джиттера и DNS, которые приложение записывало во времени
kilobat proxy [routes [--app name] | test] [--json]Прокси-приложения, системный прокси и их проблемы; какое правило и какой узел использовало каждое приложение; как быстро отвечает каждый узел
kilobat vpn [--json]VPN и то, идут ли DNS или IPv6 в обход него
kilobat calls [--limit 1…200] [--json]После каждого звонка: сколько раз он зависал и почему — по отчётам, которые пишет приложение
kilobat overlay [--port 7171] [--target internet|router|host]Оверлей с пингом в реальном времени для OBS и других приложений для стриминга, работает на localhost до Ctrl-C
kilobat support-report [--hours 1…168] [--host h] [--markdown|--html] [--output f]Отчёт для провайдера или ИТ-поддержки: находки, задержка, сбои и тесты скорости — без имени вашей сети и локальных адресов
kilobat networks [forget <name>]Встреченные сети с запомненными для каждой профилем, лимитом и стоимостью трафика
kilobat networks cost <metered|unmetered|automatic> [name]Считать эту или указанную сеть лимитной или безлимитной либо снова следовать macOS
kilobat bandwidth [app] [hour|day|week|month] [--back N] [--json]Отправленные и полученные байты одного приложения за час, день, неделю или месяц, с пиком; --back переходит к более ранним периодам
kilobat access-policy <bundle-id> [--json]Подключения, которые разработчик приложения заявил в Internet Access Policy, и зачем они нужны

Диагностика

kilobat diagnose [--json]Проверки Wi-Fi, роутера, интернета, DNS и страниц авторизации с советами
kilobat radar [--watch] [--json]Оценка сигнала и поиск лучшего места
kilobat scan [--json]Соседние сети, каналы и ширина каналов
kilobat channels [--json]Загруженность каждого канала и наименее занятый из них
kilobat speedtest [--json] [--budget-mb 1…80] [--parallel]Скорость до Cloudflare, задержка под нагрузкой и вердикты для звонков и стриминга, не больше 80 MB. По умолчанию одно подключение; --parallel открывает четыре, как большинство сайтов для теста скорости
kilobat speed-compare [<test> <test>] [--json]Чем отличались два сохранённых теста скорости: сеть, время, сервер, подключения, диапазон Wi-Fi и сигнал, VPN, другой трафик
kilobat ip [--public] [--json]Куда уходит трафик: интерфейс и VPN, если он есть, по данным этого Mac; --public также запрашивает у Cloudflare ваш публичный IP и страну его регистрации
kilobat stutter [--seconds 10…60] [--target router|internet|<host>] [--json]Пинг каждые 50 ms, чтобы найти короткие всплески задержки, которые пропускают тесты скорости: когда они случаются и повторяются ли
kilobat airdrop [status|everyone|contacts|off] [--json]Видимость AirDrop, канал AirDrop (AWDL) и то, что его использует; смена видимости открывает Системные настройки
kilobat bluetooth [--json]Устройства Bluetooth и то, делят ли они диапазон 2.4 GHz с вашим Wi-Fi
kilobat dns [automatic|cloudflare|google|quad9|flush]Показать или задать DNS либо очистить кэш

Wi-Fi

kilobat wifi [status]Текущая сеть, сигнал, канал и скорость канала
kilobat wifi on|off|restart|disconnectУправление питанием Wi-Fi и подключением
kilobat wifi join <name> [--password-stdin]Подключиться к сохранённой или новой сети
kilobat wifi knownСохранённые сети в порядке приоритета
kilobat wifi password|share <name>Показать сохранённый пароль или QR-код для сканирования телефоном
kilobat low-latency on [--for 15m|1h|2h] [--until-quit <app>]Приостановить AirDrop и AWDL на время звонков и игр: по умолчанию на 15 минут, максимум на 4 часа или до закрытия приложения
kilobat low-latency offВернуть AirDrop и AWDL, в том числе после паузы, включённой в приложении

Без сна и агенты

kilobat awake [--display]Не давать Mac уснуть до Ctrl-C; при закрытии крышки он всё равно уснёт, если не добавить --lid-closed
kilobat awake --lid-closed [--for 2h|--until-quiet|-- <command>]Продолжать работу и с закрытой крышкой, максимум 8 часов, через помощник питания приложения; требуется «Разрешить работу с закрытой крышкой» в настройках
kilobat awake --for 90m|2h|45sНе засыпать какое-то время
kilobat awake --until-quiet [--app <id>] [--quiet 1…60]Не засыпать, пока загрузки или одно приложение не затихнут: по умолчанию ниже 16 KB/s в течение 3 минут
kilobat awake -- <command> [args]Не засыпать, пока выполняется команда, затем сообщить, сколько данных передали её процессы, и выйти с её кодом завершения
kilobat awake --while-frontmost <app> [--display] [--for 2h]Не засыпать, только пока это приложение на переднем плане, — для чтения или презентаций. Если переключиться на другое, Mac может уснуть; режим заканчивается, когда приложение закрыто, при 20% заряда или по истечении --for. --display не даёт погаснуть и экрану
kilobat settings awake-on-power on|offПриложение не даёт Mac уснуть, пока подключён адаптер питания, и снова разрешает сон, когда его отключают
kilobat settings keep-screen-on on|offНе выключать и экран для всего, что приложение не даёт уснуть: таймеры, загрузки, агенты, приложение на переднем плане и питание от сети
kilobat sessions [--days N] [--json]Сеансы без сна и запуски ИИ-агентов, записанные приложением, с расходом данных и сменами сети
kilobat agent-event <start|working|waiting|done|failed> [--agent name] [--stdin-json|--json-arg]Для хуков агента: сообщает приложению, что запуск начался, ждёт вас или завершён. Ничего не выводит, всегда завершается с кодом 0
kilobat why <url|host> [--app <id>] [--proxy <url>] [--context container|vm|remote|provider] [--failed-at <time>] [--json]Найти уровень, на котором обрывается подключение: сеть и интерфейс, прокси и собственный прокси приложения, DNS, правила Kilobat, IPv4 и IPv6, TLS, сервер и каждое перенаправление. Запрашивает точный URL; в выводе значения параметров запроса скрыты
kilobat conditions [--json]Лимитная сеть, экономия данных, VPN, задержка, батарея и нагрев, можно ли закрыть крышку, — с советами для долгих запусков

Управление

kilobat profile [travel|work|unrestricted]Показать профили или выбрать профиль
kilobat allow|block <bundle-id> [--minutes 1…1440] [--profile name]Сохранить правило для приложения — при желании временное или для другого профиля
kilobat reset <bundle-id> [--profile name]Удалить правило приложения, чтобы оно следовало поведению по умолчанию
kilobat rules [--profile name] [--json]Правила профиля
kilobat limit [GB] [--cycle session|daily|weekly|monthly] [--reset-day N] [--alert 50,80,100]Показать или задать лимит трафика этой сети, когда он обнуляется и когда приходят уведомления
kilobat quota <bundle-id> <GB> [--upload] [--all-networks]Ограничить трафик одного приложения за цикл лимита; quota <bundle-id> --remove снимает ограничение
kilobat quota --list [--json]Квоты приложений и расход каждого в этом цикле
kilobat updaters [--json]Обновления, приостановленные в лимитных сетях, байты обновлений, которые всё же прошли в этой сети, и приложения, обновляющиеся изнутри себя
kilobat updaters on|offПриостанавливать помощники обновления, такие как Google Updater и «Обновление ПО» macOS, пока сеть лимитная (включено по умолчанию); сами приложения продолжают работать
kilobat settings [name [value] ]Показать или изменить настройки, такие как new-apps (allow, ask или block), apple-software, auto-travel, pause-updaters, awake-on-power, public-ip (по умолчанию выключено), speed-streams, alerts и menu-bar
kilobat approvals [--json]Приложения, ожидающие решения, когда для новых приложений включены вопросы, с подписью и адресами назначения
kilobat approve|deny <app-id> [--minutes 1…1440]Сразу заблокировать ожидающее приложение или попросить человека подтвердить разрешение в Kilobat
kilobat block-host|unblock-host <domain|IP|CIDR> [--app <id>]Заблокировать домен (вместе с поддоменами, *.example.com тоже подойдёт), IP или диапазон для всех приложений или для одного
kilobat quit <PID> [--force]Завершить процесс

Настройка

kilobat openОткрыть приложение для Mac
kilobat doctorПроверить приложение, сетевой фильтр и мониторинг
kilobat completion [zsh|bash|fish]Вывести скрипт автодополнения для оболочки
kilobat mcpЗапустить сервер MCP для ИИ-агентов через stdio
kilobat updateОбновить установку из Homebrew

Для экспертов

kilobat destinations [--pid PID] [--json]Наблюдаемые сокеты процессов
kilobat devices [--bonjour] [--json]Устройства в вашей сети и службы Bonjour
kilobat devices name <MAC> <name>Назвать устройство
kilobat trace <host> [--rounds 2…10] [--json]Ограниченная трассировка маршрута до 12 узлов; --rounds трассирует несколько раз и показывает потери и задержку каждого узла
kilobat route-history --host <host> [--json]Все сохранённые трассировки до хоста, узел за узлом, как mtr: потери, лучшая, средняя и худшая задержка, смены маршрута и место, где начинается задержка
kilobat http-check <URL> [--json]Тайминги DNS, подключения, TLS и первого байта
kilobat dns-benchmarkВремя ответа DNS-серверов
kilobat lan-test <server> [--reverse] [--json]Пятисекундный тест iperf3 до устройства, на котором запущен iperf3 -s; нужен iperf3, который Kilobat никогда не устанавливает
kilobat interfaces [--json]Счётчики физических интерфейсов и VPN по отдельности
kilobat capture <interface> <file.pcap>Ограниченный захват пакетов
kilobat connection-rule allow|block <app> <host> [port]Сохранить правило для адреса назначения
kilobat blocklist status|import <path>|clearУправление списком блокировки доменов
kilobat wake <MAC-address>Отправить пакет Wake-on-LAN
kilobat spots [save <name>|remove <id>]Сохранённые точки Wi-Fi
kilobat outages / speed-history [--days N]Записанные обрывы и тесты скорости в JSON

Скрипты и JSON

Когда вывод идёт в конвейер, он автоматически переключается на JSON, поэтому скриптам не нужно разбирать вывод для людей. Чтобы указать это явно, передайте --json.

kilobat diagnose | jq .health            # "good", "degraded", "poor" or "unknown"
kilobat status --watch --json             # one JSON object per line, every second
kilobat report --summary --days 7 --json  # daily totals and top apps
kilobat report compare --total 40GB --period last-month --csv  # beside your provider's figure

Задайте NO_COLOR, чтобы отключить цвета. Изменение DNS требует подтверждения администратора.

ИИ-агенты и MCP

Пошаговая настройка для Claude Code, Codex, Cursor, Gemini CLI, Claude Desktop, Windsurf, Cline, Zed и любого клиента MCP — в руководстве «Настройка Kilobat в ИИ-агенте».

Дайте агенту вроде Claude Code, Codex или Cursor такой промпт:

Install the Kilobat CLI with `brew install seifip/kilobat/kilobat`. Run `kilobat diagnose --json`, `kilobat status --json` and `kilobat scan --json`, then tell me what is slowing my connection and how to fix it. Ask me before changing DNS, profiles or rules.

Сервер MCP

kilobat mcp работает по протоколу Model Context Protocol через stdio. Добавьте его в Claude Code:

claude mcp add kilobat -- kilobat mcp

Или добавьте его в любой клиент, который читает конфигурацию mcpServers:

{ "mcpServers": { "kilobat": { "command": "kilobat", "args": ["mcp"] } } }

Инструменты только для чтения: get_status, diagnose_network, diagnose_connection, get_conditions, get_updaters, get_wifi, scan_wifi, suggest_wifi_channel, get_usage_report, compare_usage, get_app_bandwidth, get_access_policy, get_network_history, list_sessions, benchmark_dns, check_url, list_connections, list_devices, trace_route, get_route_history, compare_speed_tests, get_exit_path (запрашивает у Cloudflare ваш публичный IP, только если агент передаёт public_ip), list_networks, list_rules, list_approvals, list_blocked_connections, run_stutter_test (только отправляет пинги), get_nearby_radios и create_support_report (отчёт для вашего провайдера, который агент передаёт вам). Они возвращают тот же JSON, что и CLI. run_speedtest расходует трафик, run_lan_test пять секунд гоняет данные по вашей локальной сети и сначала спрашивает, а keep_awake и release_awake на заданное время откладывают сон при бездействии, не меняя настроек; keep_awake с lid_closed не даёт Mac уснуть и с закрытой крышкой, если вы это разрешили, и тоже сначала спрашивает вас. Инструменты изменений (set_profile, set_app_rule, set_new_app_mode, decide_approval, block_destination, set_budget, set_app_quota, set_network_cost, set_updater_pause, set_dns, который также очищает кэш, и set_airdrop_visibility, который открывает настройки AirDrop) помечены как изменяющие, а их описания велят агенту сначала спросить вас.

Когда что-то не подключается

kilobat why <host> (MCP: diagnose_connection) проверяет один хост уровень за уровнем прямо с этого Mac, не запуская curl или nc, поэтому строгий профиль не может заблокировать саму проверку. IPv4 и IPv6 проверяются по отдельности, так что сеть со сломанным IPv6 — частая причина того, что агенты зависают или без конца переподключаются, — получает понятный ответ. Команда называет используемый интерфейс, например Wi-Fi, точку доступа телефона или VPN, а если их несколько — пробует каждый. Она сообщает прокси, который выбирает система или её PAC-файл, а с --app — и HTTPS_PROXY из окружения приложения, без паролей. Если включён VPN или прокси, она сравнивает прямой путь с туннелем. Если частное имя уходит на собственный DNS-сервер VPN, отчёт скажет, на какой именно и отвечает ли он. У кода в контейнере, виртуальной машине или на удалённом компьютере своя сеть: передайте --context, и отчёт закончится командой, которую нужно запустить там. Когда запрос делает облачный сервис со своих серверов — как Warp для собственного эндпоинта инференса, — --context provider сообщает, что цель частная (localhost, адрес в LAN или Tailscale) и поэтому им недоступна, хотя с Mac всё работает.

Передайте точный URL, который не открывается, вместе с параметрами запроса: команда запрашивает именно его, но во всём выводе значения параметров заменены на [redacted], так что подписанная ссылка на загрузку остаётся приватной. Запрос отправляется так, как его отправило бы приложение: через HTTPS_PROXY приложения, системный прокси или, с --proxy <url>, адрес прокси, который приложение задаёт в своих настройках. Если этот прокси работает, а прямые подключения нет, как во многих корпоративных сетях, команда так и скажет, а не сообщит об ошибке; если прямые подключения работают, а запрос через прокси приложения не проходит, она скажет, что с сетью всё в порядке, а с путём приложения — нет. Настройка, которую нельзя прочитать или через которую нельзя пройти, например переключатель прокси Hugging Face в LM Studio для загрузок с huggingface.co, получает отдельное примечание со ссылкой на сообщения пользователей, и тогда вердикт говорит, что сеть достаёт до хоста, а не что запрос приложения работает. Kilobat никогда не меняет настройки других приложений. Сервер, который отклоняет HEAD, получает один GET на один байт — никаких загрузок. Команда проходит до пяти перенаправлений, называет звено, на котором происходит сбой, и проверяет IPv4 и IPv6 для конечного хоста. С --app она выводит открытые подключения приложения к этому хосту или его прокси, сообщает, если они используют другую версию IP или другой сервер, чем свежая проверка, и через несколько секунд смотрит ещё раз: затихшая передача отмечается как затихшая, а не как завершённая. В отчёт попадают имя и версия приложения, отправленный метод, пройденный путь и, с --failed-at, время сбоя приложения рядом со временем проверки. Успешная проверка означает, что этот запрос сейчас проходит с этого Mac по этому пути; она не видит, как идёт уже начатая передача, поэтому следите за ней через kilobat bandwidth <app>.

Подключение агентов

Без подсказок Kilobat судит об агенте по его трафику и нагрузке на CPU, поэтому затихший агент может как закончить работу, так и ждать вас. Хуки агента сообщают Kilobat, к какому проекту относится запуск, когда он ждёт вас и когда завершён. Каждый хук запускает kilobat agent-event, который ничего не выводит, возвращается сразу и всегда завершается с кодом 0, поэтому не может сломать агента. Если приложение не запущено, события ждут в небольшом файле, который оно прочитает при открытии. Kilobat читает идентификаторы сеансов, папки и короткий текст статуса — но никогда не промпты и ответы. Объедините эти хуки с уже имеющимися.

Claude Code, в ~/.claude/settings.json. Каждый хук получает на stdin JSON с идентификатором сеанса и папкой, который читает --stdin-json. Запрос разрешения или ввода означает ожидание; Stop означает завершение, как только закончатся фоновые задачи; лимит запросов означает ожидание до его сброса.

{
  "hooks": {
    "SessionStart": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent claude --stdin-json" }] }],
    "UserPromptSubmit": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent claude --stdin-json" }] }],
    "Notification": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent claude --stdin-json" }] }],
    "Stop": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent claude --stdin-json" }] }],
    "StopFailure": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent claude --stdin-json" }] }],
    "SessionEnd": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent claude --stdin-json" }] }]
  }
}

Codex, самый простой способ: notify в ~/.codex/config.toml. После каждого хода Codex передаёт аргумент JSON, который читает --json-arg. Так сообщается только о завершении, и Codex запускает лишь одну программу notify.

notify = ["kilobat", "agent-event", "done", "--agent", "codex", "--json-arg"]

Чтобы видеть и ожидание, используйте вместо этого хуки Codex в ~/.codex/hooks.json и подтвердите доверие к ним через /hooks:

{
  "hooks": {
    "SessionStart": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent codex --stdin-json" }] }],
    "UserPromptSubmit": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent codex --stdin-json" }] }],
    "PermissionRequest": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent codex --stdin-json" }] }],
    "Stop": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent codex --stdin-json" }] }]
  }
}

Gemini CLI, в ~/.gemini/settings.json. Gemini CLI работает как node, поэтому Kilobat не может связать его трафик с запуском, но состояние передаётся.

{
  "hooks": {
    "SessionStart": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent gemini --stdin-json" }] }],
    "BeforeAgent": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent gemini --stdin-json" }] }],
    "Notification": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent gemini --stdin-json" }] }],
    "AfterAgent": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent gemini --stdin-json" }] }]
  }
}

Cline (CLI, SDK и Kanban): установите плагин Kilobat — он добавляет один файл в хранилище плагинов Cline и не меняет других настроек. cline plugin uninstall kilobat удаляет его.

cline plugin install https://kilobat.app/agents/cline/kilobat.ts

Он сообщает, что запуск работает, завершён, завершился ошибкой (пока Cline открыт), отменён, упёрся в лимит запросов после того, как исчерпаны собственные повторы Cline, и что он ждёт, пока Cline задаёт вам вопрос. Прежде чем считать запуск завершённым, он дожидается субагентов и напарников. Запросы подтверждения Cline плагинам не видны, поэтому их покрывает распознавание по трафику и CPU.

Любой другой агент может вызывать kilobat agent-event start|working|waiting|done|failed --agent <name> --session <id> --cwd <folder> из своих хуков. Добавьте --verbose, чтобы увидеть, что произошло, когда пробуете вручную.

Почему тесты скорости расходятся

Тест скорости Kilobat открывает за раз одно подключение HTTPS к ближайшему дата-центру Cloudflare — 8 секунд в каждую сторону и не больше 80 MB — и пингует 1.1.1.1 до и во время передачи. Speedtest от Ookla, fast.com и networkQuality в macOS открывают сразу несколько подключений и сами выбирают серверы, поэтому на быстрых или дальних каналах обычно показывают больше. Выберите 4 подключения рядом с кнопкой теста на вкладке «Скорость» или запустите kilobat speedtest --parallel, чтобы увидеть, насколько это важно для вашего подключения. Каждый сохранённый тест хранит дата-центр Cloudflare, число подключений, канал (диапазон Wi-Fi, канал, сигнал и скорость канала либо Ethernet), VPN, через который он шёл, и сколько другого трафика передал этот Mac за это время. «История › Сравнение тестов скорости», kilobat speed-compare и инструмент MCP compare_speed_tests ставят два теста рядом и перечисляют различия, с пояснением, как каждое влияет на результат. Это различия, а не причины: в вашей сети конкурируют и другие устройства, а их Kilobat не видит.

VPN и публичный IP

«Состояние › Куда уходит трафик», меню Wi-Fi и kilobat ip показывают интерфейс маршрута по умолчанию и то, VPN ли это, — по маршрутам этого Mac и VPN, которые macOS считает подключёнными. VPN, который подключён, а маршрут по умолчанию остаётся на Wi-Fi, — например Tailscale без exit node, — отображается как «Частично»: через него идут лишь некоторые адреса. Включите «Настройки › Сеть › Определять публичный IP», чтобы видеть и адрес, который видят сайты: он запрашивается у Cloudflare при смене сети и каждые 30 минут, а страна регистрации берётся из встроенных в Kilobat данных DB-IP. По умолчанию это выключено, потому что Cloudflare видит такой запрос; kilobat ip --public спрашивает один раз. Страна регистрации — это не место, где находитесь вы или сервер, и ни она, ни VPN не доказывают, что подключение приватное или анонимное. «Настройки › Строка меню › VPN» добавляет рядом с летучей мышью «Вкл.», «Частично» или «Выкл.» (с кодом страны, если определение включено), а «История» показывает, когда VPN включался и выключался и когда менялся публичный IP.

История маршрутов

«Инструменты › DNS и LAN › Трассировать 3 раза» или kilobat trace <host> --rounds 3 трассирует маршрут три раза по три пробы на узел и сохраняет каждую трассировку. «История › Сохранённые маршруты» сводит все сохранённые трассировки до хоста узел за узлом, как mtr: потери, лучшая, средняя, худшая и последняя задержка, на каких узлах сменились роутеры и где начинается устойчивая задержка. Узел, который пропускает ответы, хотя следующие отвечают, — это роутер, ограничивающий частоту проб, а не потери. Только для локальной сети kilobat lan-test <device> запускает пятисекундный тест iperf3 до устройства, на котором работает iperf3 -s; iperf3 установите сами — Kilobat никогда ничего не устанавливает.

Пока приложение на переднем плане

Для чтения или презентаций пункт чашки «Пока приложение на переднем плане» не даёт Mac уснуть, только пока выбранное приложение активно, и снова разрешает сон, как только вы переключились. «Не выключать экран» в меню чашки решает, не гаснет ли и экран, — как и для всего, что Kilobat не даёт уснуть. Kilobat следит за собственными событиями macOS о смене приложений: он не опрашивает систему, не двигает мышь и не имитирует активность, поэтому не может изобразить ваше присутствие для программ мониторинга. Режим заканчивается, когда приложение закрыто, когда вы его выключите или на батарее при 20% (или на пороге, заданном для работы с закрытой крышкой), и никогда не удерживает Mac с закрытой крышкой. У режима своё удержание, поэтому переключение или закрытие приложения не прерывает ни сеанс без сна, ни запуск агента. Из терминала: kilobat awake --while-frontmost Keynote --display.

При питании от сети

Включите «Не засыпать при питании от сети» («Настройки › Без сна и агенты») или «При питании от сети» в меню чашки — и с подключённым адаптером питания Mac не уснёт, пока вы его не отключите, о чём полоса статуса и сообщит: «Без сна при питании от сети». «Не выключать экран» решает, не гаснет ли и экран. Если выключить режим, он останется выключенным до следующего подключения питания, даже если Kilobat перезапустится. Kilobat узнаёт о переключении из собственного уведомления macOS об источнике питания, без опроса. Отключение питания завершает только тот сеанс, который начало подключение: начатый вами сеанс, ожидаемая загрузка, приложение на переднем плане, запуск агента или удержание из терминала продолжаются. Этот режим никогда не держит Mac включённым с закрытой крышкой. Из терминала: kilobat settings awake-on-power on, а для экрана — kilobat settings keep-screen-on on; kilobat conditions --json показывает его как awakeOnPower.

Работа с закрытой крышкой

Если закрыть крышку, Mac уснёт, даже когда Kilobat не даёт ему уснуть, — если только вы не разрешили работу с закрытой крышкой в «Настройки › Без сна и агенты». Для этого устанавливается небольшой помощник, работающий от root; macOS попросит разрешить его в «Системные настройки › Основные › Объекты входа». После этого работающий запуск агента не даст Mac уснуть с закрытой крышкой, как и сеанс без сна, если в меню чашки отмечен пункт «И с закрытой крышкой». Агент, который ждёт вас, удерживает Mac, только если включено «Не засыпать, пока агент ждёт», и не дольше 30 минут.

Закрытый Mac в сумке может перегреться и разрядить батарею, поэтому сам помощник даёт Mac уснуть на заданном пороге заряда (по умолчанию 20%), при перегреве, сразу после отключения от питания, если выбран режим «только от сети», по истечении заданного максимального времени (не больше 8 часов) и через минуту после закрытия Kilobat. Если помощник или Mac перезапустится во время удержания, сначала возвращается прежняя настройка. Kilobat показывает, чем закончилось каждое удержание, например «Mac может уснуть: заряд 20%».

Из терминала kilobat awake --lid-closed просит приложение о таком же удержании и объясняет, если оно невозможно; удержание заканчивается вместе с командой. Агенты используют keep_awake с lid_closed, а описание инструмента велит им сначала согласовать это с вами. kilobat conditions --json сообщает lidClosedAllowed и текущее lidHold.

Навыки для агентов

Девять навыков (Agent Skills) учат агентов для программирования диагностировать сеть Mac и с помощью Kilobat доводить долгие запуски до конца. Они интерпретируют измерения, объясняют, в чём есть неопределённость, и спрашивают, прежде чем менять настройки. Устанавливайте их вместе: навык kilobat направит агента к подходящему.

npx skills add seifip/kilobat-skills
kilobatНачните отсюда. Настройка, правила безопасности и какой навык подходит к вопросу.
mac-network-troubleshootingМедленный или нестабильный интернет с неясной причиной: находит сбойный уровень.
mac-wifi-troubleshootingСлабый или пропадающий Wi-Fi, загруженные каналы, лучшее место для Mac или роутера.
mac-hotspot-data-saverТочки доступа телефона и лимиты трафика: что расходует данные, профиль «Поездка», лимиты.
mac-dns-troubleshootingМедленные DNS-запросы, бенчмарки DNS-серверов, смена DNS, страницы авторизации.
video-call-network-checkРывки в звонках и игровом стриминге: всплески задержки, джиттер, потери, bufferbloat и фоновая отдача.
mac-bandwidth-monitorКакие приложения используют подключение, история использования и куда они подключаются.
mac-app-firewallБлокировка и разрешение приложений, доменов и IP; вопросы о новых приложениях и ответы на них.
mac-agent-runsДолгие запуски агентов: не дать Mac уснуть, проверить условия, подключить хуки агентов, узнать, когда запуск завершился, ждёт вас или застрял.

Установите CLI Kilobat отдельно командой Homebrew выше или подключите его сервер MCP. CLI требует macOS 14 или новее; сборка из исходников через Homebrew требует Xcode 16 или новее. Смотрите навыки на skills.sh или их исходный код и справочные материалы.

Приложение для Mac

  1. Скачайте образ диска, перетащите Kilobat в «Программы» и откройте его оттуда.
  2. Трафик в реальном времени, выбор сети Wi-Fi, тесты скорости, режим без сна и «Почему нет подключения?» бесплатны, как и весь CLI. Pro добавляет в приложение правила и вопросы о новых приложениях, лимиты, состояние Wi-Fi, карту подключений, радар и историю. Чтобы открыть Pro, начните 7-дневный пробный период или вставьте лицензию в настройках.
  3. Выберите элементы строки меню в настройках. Чтобы переместить элемент строки меню, перетаскивайте его, удерживая Command.

Разрешите доступ к геолокации, когда появится запрос, чтобы Kilobat мог показывать имена сетей Wi-Fi и сканировать соседние сети. Ваше местоположение никуда не отправляется.

Трафик по приложениям

Строка каждого приложения показывает его трафик за последнюю минуту: отдача над линией, загрузка под ней. Нажмите — и увидите эхо приложения: одно предложение о том, сколько оно передало, затем волну последних пяти минут в реальном времени, а с Pro — историю по часам, дням, неделям или месяцам. Отметки показывают, когда Mac подключался к другой сети или когда приложением пользовался запуск агента, а плитки — через какие сети шёл трафик, как он соотносится с четырьмя предыдущими периодами и какова его доля во всём трафике. Под графиком — открытые подключения приложения с объёмом данных и страной каждого, а также подключения, которые разработчик заявил в Internet Access Policy, если она есть.

Сравнение с роутером или провайдером

Если роутер, интернет-провайдер или оператор показывает не тот итог, что Kilobat, откройте «История › Сравнить с роутером или провайдером» или запустите kilobat report compare. Введите цифру так, как её показывают они, её единицы и что она учитывает — загрузку, отдачу или и то и другое, — затем тот же период и сеть, к которой она относится. Kilobat покажет свой итог в тех же единицах и разницу, а также прочитает цифру в другой системе единиц, ведь многие провайдеры пишут GB, имея в виду 1 073 741 824 байта (GiB), а не 1 000 000 000.

Полоса показывает часы, которые Kilobat действительно записал, и пробелы: время, когда Mac спал (записывается начиная с Kilobat 1.3), был выключен или офлайн или Kilobat не работал, время в других сетях и время до начала истории. Ниже — вероятные причины расхождения, от самых вероятных. Kilobat видит только этот Mac, а не телефоны, телевизоры и другие компьютеры, которые считает роутер или провайдер. Он не учитывает трафик локальной сети и AirDrop, который никогда не выходит в интернет, а заголовки пакетов, не относящиеся ни к одному приложению, считает неучтёнными. Провайдеры могут считать сутки в другом часовом поясе или публиковать расход с опозданием. Kilobat не берётся судить, какая цифра верна. Экспортируйте сравнение в CSV или JSON — с периодом, сетями, записанными часами и всеми пробелами, — чтобы отправить провайдеру.

Тест на рывки

Звонки, игровой стриминг и удалённый рабочий стол могут дёргаться, даже когда скорость и потери выглядят нормально, потому что всплеск пинга в несколько сотен миллисекунд теряется в среднем значении. Тест на рывки на вкладке «Состояние» пингует роутер (или интернет) каждые 50 ms в течение 20 секунд и рисует каждый ответ — всплески розовым — с медианой, p95, p99 и худшим пингом. Он подскажет, повторяются ли всплески через равные промежутки, что часто указывает на сканирование AirDrop/AWDL, или идут вразнобой, что указывает на загруженную сеть, помехи или слабый сигнал. Многие роутеры отвечают лишь примерно на десять пингов в секунду; Kilobat распознаёт такой шаблон и не считает его потерями. С Pro кнопка Сравнить с низкой задержкой повторяет тест с приостановленными AirDrop/AWDL и говорит, помогло ли это.

Пауза для низкой задержки отключает AirDrop, Sidecar и Универсальное управление на 15 минут, на 1 или 2 часа или до закрытия приложения, например игры или звонка, — максимум на 4 часа. Всё всегда восстанавливается, когда время вышло, приложение закрыто, Kilobat закрыт или сменилась сеть, а если Mac аварийно завершил работу — при следующем запуске. macOS запрашивает подтверждение администратора. Панель «Рядом» на вкладке «Состояние» также показывает, активен ли радиомодуль AirDrop и что его использует, вашу видимость в AirDrop, а по запросу — устройства Bluetooth, которые делят диапазон 2.4 GHz с Wi-Fi.

Меню Wi-Fi показывает ваши устройства Bluetooth под списком сетей: нажмите на устройство, чтобы подключить или отключить его. Метка 2.4 GHz отмечает подключённые наушники, клавиатуры и мыши, которые делят диапазон с вашим Wi-Fi, и предлагает быстро перейти на известную сеть 5 GHz. Под ними — AirDrop с видимостью, тем, что использует канал, и паузой для низкой задержки. Bluetooth появляется только после выбора «Показать устройства Bluetooth», поэтому macOS запрашивает доступ только тогда.

Прокси и VPN

Kilobat работает вместе с прокси-приложениями (Clash Verge, ClashX, mihomo, Mihomo Party, FlClash, Surge, sing-box, Stash, V2Ray, Xray, Shadowsocks) и VPN. Он только читает их данные: никогда не маршрутизирует трафик и не меняет их настройки.

  • Трафик засчитывается нужному приложению. Приложению, которое отправляет данные через локальный прокси, засчитывается его собственный трафик, а ядро прокси или VPN-туннель, который его пересылает, помечается как «Передаёт трафик других приложений» и не учитывается дважды.
  • Каким маршрутом шло каждое приложение. С Clash-совместимым API (Clash Verge, ClashX, mihomo, Mihomo Party, FlClash, clash_api в sing-box) в строке приложения виден узел, через который шёл трафик, например «через HK-01 · 2 напрямую», а в подсказке перечислены все хосты, узлы и правила. Kilobat берёт адрес API и секрет из собственной конфигурации приложения и никогда не показывает секрет.
  • Проблемы — в разделе «Куда уходит трафик» на вкладке «Состояние»:
    • системный прокси, указывающий на незапущенное приложение, из-за чего не работает ни один браузер;
    • DNS или IPv6 в обход VPN;
    • прокси и VPN, которые оба забирают трафик;
    • глобальный режим;
    • блокировка, которая не видит приложения за системным прокси. Фильтры macOS не видят подключений к 127.0.0.1, поэтому включите режим TUN в прокси или заблокируйте приложение в правилах прокси.
  • Почему нет подключения? добавляет слой «Прокси-приложение» с режимом прокси и скоростью ответа его текущих узлов и сообщает, если проблема в неработающем узле.

В терминале: kilobat proxy, kilobat proxy routes --app Telegram, kilobat proxy test и kilobat vpn. Если Kilobat не находит ядро сам, передайте --controller 127.0.0.1:9090 --secret …. Агенты получают то же через get_proxy_status, test_proxy_nodes и check_vpn.

Виджеты

Добавьте Kilobat на рабочий стол или в Центр уведомлений: нажмите правой кнопкой на рабочий стол, выберите «Изменить виджеты» и найдите Kilobat. Состояние сети показывает летучую мышь по состоянию подключения и пинг до интернета и роутера; средний размер добавляет задержку за последние 30 минут, ваш последний тест скорости и кнопку «Тест». Трафик за сегодня показывает интернет-трафик за сегодня, загрузку и отдачу, по часам; с Pro — и ваш лимит. Тест скорости показывает последний результат и запускает новый в один клик (10 MB в лимитной сети). Виджеты не показывают имён сетей и адресов, обновляются при изменениях и, когда Kilobat не запущен, сообщают, насколько устарели данные.

Отчёты о звонках

После каждого звонка Kilobat сообщает, зависал ли он и почему. Он замечает звонок, когда Zoom, Microsoft Teams, FaceTime, Slack, Webex, Discord, Skype, WhatsApp, Telegram, Signal или браузер использует микрофон дольше десяти секунд. Сам звонок он никогда не слышит: он видит лишь, какое приложение использует микрофон, а это macOS и так показывает. До конца звонка он раз в секунду пингует интернет и роутер, отмечает самое активное из остальных приложений и каждые пять секунд проверяет процессор, память, температуру и GPU Mac.

Две секунды подряд и больше потерянных пингов или пингов на 200 ms медленнее обычного для этого звонка считаются зависанием. У каждого зависания есть причина: другое приложение в этот момент отдаёт или загружает данные, Wi-Fi (когда роутер тоже подтормаживал), сканирование AirDrop или проблема за роутером. Отдельно карточка сообщает, когда тяжело было самому Mac: процессор загружен до предела (и каким приложением), не хватает памяти, Mac замедляет себя из-за перегрева или GPU загружен до предела. Карточка появляется в разделе «Состояние › Звонки» и в уведомлении. Без Pro она показывает, сколько раз звонок зависал; Kilobat Pro называет причины и подсказывает, что попробовать. Выключить её можно в «Настройки › Сеть › Отчёт после каждого звонка». В терминале kilobat calls выводит список карточек, а агенты получают их через get_call_reports.

Оверлей для стрима

Показывайте пинг в реальном времени прямо в стриме. Включите «Настройки › Сеть › Оверлей для стрима», затем добавьте http://localhost:7171/ как источник «Браузер» в OBS, Streamlabs или любом другом приложении для стриминга (640 × 80 вполне достаточно). Небольшая плашка показывает пинг, джиттер, потери и последнюю минуту в виде линии. Летучая мышь в её начале улыбается синим, пока линия в порядке, становится фиолетовой, когда связь замедляется, и хмурится розовым, когда всё плохо. Меняйте вид в URL: ?show=ping,jitter,loss,graph,speed, theme=dark, light или clear, а также size=s, m или l. С Pro brand=0 скрывает логотип, а face=0 показывает простую точку вместо летучей мыши. Пока оверлей включён, Kilobat раз в секунду пингует 1.1.1.1; страница отдаётся на 127.0.0.1, поэтому открыть её может только этот Mac. Без приложения kilobat overlay отдаёт ту же страницу до нажатия Ctrl-C.

Отчёт для провайдера

Когда связь плохая, провайдер или ИТ-поддержка хотят доказательств. На вкладке «Состояние» кнопка отчёта соберёт его из того, что Kilobat записал в этой сети за последние 24 часа или 7 дней. В нём сбои, задержка до роутера и дальше, потери пингов и тесты скорости в сравнении с вашим тарифом, а также проверка сайта, который не открывается, если вы его укажете. Каждая находка говорит, что и где измерено, но никогда — кто виноват. Скопируйте его как текст для чата поддержки или сохраните и отправьте как PDF. В нём нет имени вашей сети, локальных IP- и аппаратных адресов, имён устройств и того, какие приложения пользовались сетью. В терминале запустите kilobat support-report --host github.com или --html --output report.html для страницы.

Карточки для публикации

«Поделиться и экспорт» в контекстном меню значка в строке меню создаёт квадратную картинку для публикации: «Эхо недели» (сколько данных передано, самый загруженный день и самое прожорливое приложение), ваш последний тест скорости или «Это место» — отчёт о Wi-Fi в кафе, коворкинге, отеле или библиотеке, где вы работаете. «Это место» показывает название места, которое вы вводите или выбираете в поиске Apple Карт, затем загрузку, отдачу и пинг из последнего теста скорости в этой сети, подходит ли она для видеозвонков, как держится под нагрузкой, и диапазон Wi-Fi. Выберите место в поиске — и на карточке появится маленькая карта района с точкой; выключите «Показывать карту», чтобы её убрать. Добавьте теги вроде «Розетки», «Тихо» или «Открыто допоздна» и заметку в одну строку. Kilobat запомнит их для этой сети на этом Mac. Скопируйте карточку, сохраните её или поделитесь ею в Nomad List, в отзыве в Google Maps или в чате коворкинга. Ни одна карточка не показывает имя сети или адрес. Карта показывает выбранное место, а не то, где вы находитесь, — если только вы не выберете «Использовать мою геопозицию»: только тогда «Это место» запрашивает доступ к геолокации.

Другие приложения могут открыть Kilobat в нужном месте по ссылке kilobat:// (начиная с 1.3.4): kilobat://open/speed открывает вкладку (overview, connections, health, radar, speed, history, tools или settings), kilobat://share/speed, kilobat://share/week или kilobat://share/place — карточку для публикации, а kilobat://speedtest запускает тест скорости. Запустите такую ссылку из Терминала командой open kilobat://open/history или назначьте ей клавишу в лаунчере. Расширение для Raycast использует эти ссылки для действий Open in Kilobat, а действия Kilobat для «Быстрых команд» запускают проверки, тесты скорости, режим без сна и отчёты из приложения «Быстрые команды».

Куда идут подключения

Вкладка «Подключения» показывает каждое открытое подключение на глобусе с маршрутом в страну, где зарегистрирован его адрес, список самых активных стран и сокеты под ним. Нажмите на страну, чтобы отфильтровать. Страна берётся из бесплатной базы DB-IP, встроенной в приложение, поэтому ни один адрес не покидает ваш Mac. Это страна регистрации: адрес CDN или VPN показывает страну владельца, а не место, где стоит сервер.

Блокировка и фильтрация

Мониторинг работает без фильтрации. Чтобы правила применялись, откройте настройку фильтрации в Kilobat и одобрите расширение и фильтр контента, когда macOS спросит. В актуальных версиях macOS расширения находятся в разделе «Системные настройки» → «Основные» → «Объекты входа и расширения» → «Сетевые расширения».

Фильтрация влияет на новые подключения; уже открытое подключение может продолжаться, пока не переподключится. Если правило мешает чему-то важному, переключитесь на «Без ограничений» или выключите фильтрацию в настройках.

Новые приложения: разрешать, спрашивать или блокировать

Переключатель над списком приложений задаёт, что «Поездка» и «Работа» делают с приложениями без правил. Разрешать пропускает их. Спрашивать задерживает первые подключения приложения и открывает окно с тем, кто его подписал, где оно лежит и куда хочет подключиться; разрешите или заблокируйте его один раз — и Kilobat сохранит правило. Подключения без ответа сдаются через минуту, и приложение спрашивает снова. Блокировать пропускает только разрешённые вами приложения. Включите Разрешить ПО Apple, чтобы службы macOS и приложения Apple проходили без вопросов. Список блокировки и правила подключений действуют в любом режиме, а если Kilobat не запущен, новые приложения разрешаются, а не задерживаются.

Точки доступа и стоимость трафика

macOS помечает некоторые подключения как лимитные, например точку доступа iPhone, но не все точки доступа Android и не телефон, подключённый через USB или Ethernet. У каждой сети есть стоимость трафика: Автоматически следует macOS, а Лимитная или Безлимитная — на ваше усмотрение. Задайте её в меню Wi-Fi, меню лимита, на вкладке «Состояние» или в настройках либо через kilobat networks cost metered. В лимитной сети Kilobat переключается на «Поездку», если вы не выбрали для этой сети другой профиль, возвращает прежний профиль, когда вы уходите из сети, и пропускает запланированные тесты скорости. kilobat conditions --json и сервер MCP сообщают и metered, и мнение macOS (osMetered). Чтобы задать стоимость сети, Kilobat должен отличать её от других, поэтому для Wi-Fi ему нужен доступ к геолокации — чтобы видеть имя сети.

Пауза обновлений в лимитных сетях

В лимитной сети сетевой фильтр также приостанавливает помощники, которые сами скачивают обновления: Google Updater (и более старый агент Keystone), Microsoft AutoUpdate, «Обновление ПО» macOS (softwareupdated), загрузки App Store (appstored, appstoreagent, storedownloadd), службу загрузки Sparkle, а также установщики Sparkle и Squirrel (Autoupdate, Updater.app, ShipIt). Они блокируются обычным правилом фильтра, в журнале заблокированных подключений пишется «Обновление приостановлено в лимитной сети», а сами приложения продолжают работать. Как только сеть перестаёт быть лимитной, обновления продолжаются. В других приложениях, их промежуточных папках и Системных настройках ничего не меняется, поэтому и восстанавливать нечего. По умолчанию функция включена; выключите её в настройках или через kilobat updaters off. Правила, которые уже применяются к подключению, например правило для адреса назначения или временное разрешение, действуют первыми, поэтому «разрешить на 30 минут» пропустит одно обновление. Профиль «Без ограничений» ничего не приостанавливает.

Вкладка «Состояние», kilobat updaters и инструмент MCP get_updaters показывают, какие механизмы обновления охвачены, какие байты обновлений всё же прошли в этой сети (собственные байты механизма обновления, а также системные загрузки вроде nsurlsessiond, которые подключались ради него, — их байты включают и другие загрузки) и какие установленные приложения обновляются изнутри собственного процесса. Большинство приложений на Sparkle или Electron скачивают обновление внутри себя и оставляют помощнику только установку, поэтому их нельзя приостановить, не заблокировав само приложение. Фильтр останавливает новые подключения, так что загрузка, начатая до того, как сеть стала лимитной, может завершиться. Собственная плановая проверка обновлений Kilobat тоже ждёт безлимитной сети; «Проверить обновления» вручную по-прежнему работает.

Лимиты трафика и квоты приложений

У каждой сети свой лимит. По умолчанию он считает, пока вы его не сбросите. Можно обнулять его ежедневно, еженедельно в выбранный день недели или ежемесячно в день продления тарифа; тариф, который продлевается 31-го, в более коротких месяцах начинается в последний день месяца. Лимит с циклом считает по истории использования этой сети, поэтому продолжает считать и после перезапуска. По умолчанию Kilobat уведомляет один раз за цикл на 80% и 100%, а если добавить — и на 50%.

У приложения может быть своя квота: предел за цикл на весь его трафик или только на отдачу, в одной сети или во всех. Задайте её в панели трафика приложения или через kilobat quota com.getdropbox.dropbox 2 --upload. При включённой фильтрации исчерпанный лимит останавливает новые подключения, а исчерпанная квота — новые подключения этого приложения. Временное разрешение или правило подключения всё равно пропускают трафик. Kilobat снимает показания трафика раз в секунду, поэтому лимиты и квоты приблизительны: приложение может немного превысить их, прежде чем остановится.

Что учитывается: интернет, локальная сеть и VPN

Лимиты, квоты и расход учитывают только интернет-трафик. Трафик в локальной сети (принтеры, NAS, другие компьютеры, страница администрирования роутера), AirDrop и другие каналы с ближайшими устройствами (AWDL) показываются отдельно — как «Локальная сеть: 2.1 GB, не учитывается» — при наведении указателя на израсходованный объём в карточке лимита и в панели трафика каждого приложения. Общий объём Mac берётся из счётчиков Wi-Fi и Ethernet, поэтому включает то, что не относится ни к одному приложению: заголовки пакетов и подтверждения, которые не входят в подсчёт байтов приложений (обычно на 5–10% больше), процесс, который начался и закончился между двумя замерами, «Общий интернет» или VPN, которым управляет сама macOS. Та же подсказка показывает эту часть как «Не связано с приложением»; она никогда не приписывается какому-либо приложению.

С VPN трафик приложения идёт через туннель, а VPN выводит его наружу через Wi-Fi или Ethernet. Kilobat считает его один раз — там, где он покидает Mac, как и ваш оператор, — и помечает долю приложения как «Через VPN». С прокси (системным, HTTPS_PROXY или локальным прокси-приложением) приложения общаются с прокси на этом Mac, а прокси устанавливает подключения к интернету, поэтому байты отображаются у прокси; Kilobat не может определить, какое приложение стоит за ними. Прокси в режиме TUN для Kilobat — это VPN: собственное подключение каждого приложения помечается «Через VPN», а исходящий трафик прокси отображается у самого прокси. Корпоративный прокси на частном адресе считается локальной сетью.

Системные загрузки

Некоторые загрузки приложения передают macOS: nsurlsessiond (фоновые передачи для таких приложений, как «Музыка» и «Подкасты»), mobileassetd (модели Apple Intelligence и Siri, голоса, шрифты), softwareupdated, appstored и appstoreagent, cloudd и bird (iCloud), fileproviderd и «Кэширование контента». Список приложений группирует их как «Системные загрузки» с описанием, что делает каждая. При включённой фильтрации фильтр видит, для какого приложения было каждое подключение, поэтому в списке написано «Для „Музыки“», а блокировка выглядит как «com.apple.Music через nsurlsessiond». Без фильтрации nettop видит только службу, поэтому Kilobat не может сказать, для какого приложения была загрузка.

Процесс, который не является ни приложением, ни частью macOS, например node, python, deno, bun или бинарный файл Go в вашей домашней папке или в Homebrew, показывает путь к исполняемому файлу, если развернуть его строку, — так незнакомый агент или инструмент сразу бросается в глаза.

Включите Необычная отдача в настройках, чтобы узнавать, когда приложение за час отдаёт в пять раз больше обычного и не меньше 50 MB, — не чаще раза в день на приложение. Функция только уведомляет. Временные правила и истекающие правила подключений перечислены в разделе «Профили» с оставшимся временем, так что любое можно завершить досрочно.

Блокировка доменов и IP

Нажмите правой кнопкой на открытое подключение приложения, чтобы заблокировать этот хост для приложения или для всех приложений. Список блокировки принимает домены (вместе с поддоменами; *.example.com тоже работает), IP-адреса и диапазоны CIDR — наряду с импортированным списком hosts. Из терминала: kilobat block-host ads.example.com.

Дарите Pro — получайте Pro

У каждой лицензии Pro есть своя реферальная ссылка — kilobat.app/r/ и короткий код. Она находится в настройках в разделе Kilobat Pro или под карточкой для публикации, с кнопками «Скопировать ссылку» и «Поделиться». Аккаунта нет: код получается из вашей лицензии и не раскрывает ваш ключ.

Друг, который откроет вашу ссылку, а затем Kilobat, получит пробный период Pro на 30 дней вместо 7. Каждый Mac может использовать одну реферальную ссылку и только один раз. Когда друг купит Pro — в приложении или на сайте, перейдя по вашей ссылке, — ваша лицензия получит ещё один Mac. Каждый третий друг приносит вам бесплатную лицензию Pro: одноразовый код в настройках, который можно ввести при оформлении покупки для себя или для кого угодно.

Покупка засчитывается, когда пройдёт 14-дневный срок возврата; до тех пор в настройках она отображается как ожидающая. Возвращённые покупки, бесплатные лицензии и покупки по вашей собственной ссылке не засчитываются.

Конфиденциальность

История трафика, имена сетей и правила остаются на вашем Mac. Нет ни аккаунта, ни телеметрии. Диагностика обращается к тестовым сервисам, а активация лицензии и проверка обновлений — к своим сервисам. Прочитайте политику конфиденциальности.