Documentación de Kilobat
Todo lo que necesitas para usar Kilobat desde la barra de menús, la línea de comandos o un agente de IA.
Instalación
La CLI es gratuita y de código abierto. Instálala con Homebrew:
brew install seifip/kilobat/kilobatEsto instala kilobat y kb, un alias corto. Todos los ejemplos de abajo funcionan con cualquiera de los dos.
O descarga la app para Mac, que también incluye la CLI en Kilobat.app/Contents/Helpers/kilobat.
Kilobat Lite en la Mac App Store
Kilobat Lite es una edición gratuita para la Mac App Store que llegará pronto. Funciona en el App Sandbox de Apple y conserva lo que funciona ahí: las comprobaciones de estado, la prueba de velocidad, el radar de Wi-Fi y las redes cercanas, ¿Por qué no se conecta? y mantener activo. El tráfico por app, las reglas y el filtro de red, los cambios de DNS, el asistente para la tapa cerrada y la CLI necesitan permisos que el sandbox no permite, así que solo están en la app de Kilobat de este sitio. Las dos se pueden instalar a la vez.
Activa el autocompletado con tabulador en tu shell:
# zsh echo 'source <(kilobat completion zsh)' >> ~/.zshrc # fish kilobat completion fish > ~/.config/fish/completions/kilobat.fish
Primeros pasos
Ejecuta kilobat solo para abrir un menú interactivo: flechas o j/k para moverte, Intro para abrir, un número para saltar, q para salir.
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
Ejecuta kilobat <command> --help para ver la ayuda de cualquier comando.
Comandos
Supervisar
| kilobat status [--watch] [--json] | Tráfico por app en directo y límite de datos de la sesión; una instantánea JSON, o un flujo JSON Lines con --watch |
| kilobat report [--csv|--json] [--summary] [--days 1…365] | Historial de uso registrado en local, o totales diarios y apps principales; el CSV tiene una fila por app |
| kilobat report compare --total 40GB [--unit GB|GiB] [--direction both|download|upload] (--from DATE --to DATE | --period last-month) [--network NAME] [--json|--csv] | La cifra de un router o proveedor junto a lo que Kilobat registró en este Mac para el mismo periodo, en la misma unidad, con las horas registradas, cada hueco y los motivos probables de la diferencia |
| kilobat health-history [--hours 1…720] [--json] | Comprobaciones de router, internet, jitter y DNS que la app registró a lo largo del tiempo |
| kilobat proxy [routes [--app name] | test] [--json] | Apps de proxy, el proxy del sistema y sus problemas; qué regla y qué nodo usó cada app; lo rápido que responde cada nodo |
| kilobat vpn [--json] | La VPN y si DNS o IPv6 se la saltan |
| kilobat calls [--limit 1…200] [--json] | Después de cada llamada: cuántas veces se congeló y por qué, a partir de los informes que escribe la app |
| kilobat overlay [--port 7171] [--target internet|router|host] | Un overlay de ping en directo para OBS y otras apps de streaming, servido en localhost hasta Ctrl-C |
| kilobat support-report [--hours 1…168] [--host h] [--markdown|--html] [--output f] | Un informe para tu proveedor o tu soporte informático: hallazgos, latencia, cortes y pruebas de velocidad, sin el nombre de tu red ni las direcciones locales |
| kilobat networks [forget <name>] | Redes vistas, con el perfil, el límite de datos y el coste de datos recordados para cada una |
| kilobat networks cost <metered|unmetered|automatic> [name] | Trata esta red, o una con nombre, como con límite o sin límite, o vuelve a seguir a macOS |
| kilobat bandwidth [app] [hour|day|week|month] [--back N] [--json] | Bytes enviados y recibidos por una app durante una hora, día, semana o mes, con el pico; --back retrocede a periodos anteriores |
| kilobat access-policy <bundle-id> [--json] | Las conexiones que declara el desarrollador de una app en su Internet Access Policy, y por qué |
Diagnosticar
| kilobat diagnose [--json] | Comprobaciones de Wi-Fi, router, internet, DNS y portal cautivo, con consejos |
| kilobat radar [--watch] [--json] | Puntuación de señal y buscador del mejor sitio |
| kilobat scan [--json] | Redes cercanas, canales y anchos |
| kilobat channels [--json] | Saturación por canal y el canal menos saturado |
| kilobat speedtest [--json] [--budget-mb 1…80] [--parallel] | Velocidad con Cloudflare, latencia con carga y veredictos para llamadas y streaming, 80 MB como máximo. Una conexión de forma predeterminada; --parallel abre cuatro, como hacen la mayoría de webs de pruebas de velocidad |
| kilobat speed-compare [<test> <test>] [--json] | Qué cambió entre dos pruebas de velocidad guardadas: red, hora, servidor, conexiones, banda y señal Wi-Fi, VPN, otro tráfico |
| kilobat ip [--public] [--json] | Por dónde sale el tráfico: la interfaz y cualquier VPN, leídas en este Mac; --public además pide a Cloudflare tu IP pública y el país en el que está registrada |
| kilobat stutter [--seconds 10…60] [--target router|internet|<host>] [--json] | Hace ping cada 50 ms para encontrar los picos breves de latencia que las pruebas de velocidad no ven, cuándo ocurren y si se repiten |
| kilobat airdrop [status|everyone|contacts|off] [--json] | Visibilidad de AirDrop, el enlace de AirDrop (AWDL) y qué lo usa; cambiar la visibilidad abre Ajustes del Sistema |
| kilobat bluetooth [--json] | Dispositivos Bluetooth y si comparten los 2.4 GHz con tu Wi-Fi |
| kilobat dns [automatic|cloudflare|google|quad9|flush] | Consulta o cambia el DNS, o vacía la caché |
Wi-Fi
| kilobat wifi [status] | Red actual, señal, canal y velocidad del enlace |
| kilobat wifi on|off|restart|disconnect | Controla el encendido del Wi-Fi y la conexión |
| kilobat wifi join <name> [--password-stdin] | Se conecta a una red guardada o a una nueva |
| kilobat wifi known | Redes guardadas por orden de preferencia |
| kilobat wifi password|share <name> | Muestra una contraseña guardada, o un código QR para escanear con un teléfono |
| kilobat low-latency on [--for 15m|1h|2h] [--until-quit <app>] | Pausa AirDrop y AWDL durante llamadas y partidas: 15 minutos de forma predeterminada, hasta 4 horas, o hasta que se cierre una app |
| kilobat low-latency off | Restaura AirDrop y AWDL, también si la pausa se inició en la app |
Activo y agentes
| kilobat awake [--display] | Mantiene el Mac activo hasta pulsar Ctrl-C; al cerrar la tapa entra en reposo igualmente, salvo que añadas --lid-closed |
| kilobat awake --lid-closed [--for 2h|--until-quiet|-- <command>] | Sigue funcionando también con la tapa cerrada, 8 horas como máximo, mediante el asistente de energía de la app; requiere «Permitir funcionar con la tapa cerrada» en Ajustes |
| kilobat awake --for 90m|2h|45s | Mantiene el Mac activo durante un rato |
| kilobat awake --until-quiet [--app <id>] [--quiet 1…60] | Mantiene el Mac activo hasta que las descargas o una app se queden en silencio, por debajo de 16 KB/s durante 3 minutos de forma predeterminada |
| kilobat awake -- <command> [args] | Mantiene el Mac activo mientras se ejecuta un comando; luego informa de los datos que movieron sus procesos y sale con su código de estado |
| kilobat awake --while-frontmost <app> [--display] [--for 2h] | Mantiene el Mac activo solo mientras esa app esté en primer plano, para leer o presentar. Al cambiar a otra, el Mac puede entrar en reposo; termina cuando la app se cierra, con un 20 % de batería o tras --for. --display también mantiene la pantalla encendida |
| kilobat settings awake-on-power on|off | La app se mantiene activa siempre que el adaptador de corriente esté conectado y deja que el Mac entre en reposo de nuevo cuando lo desconectas |
| kilobat settings keep-screen-on on|off | Mantiene también la pantalla encendida para todo lo que la app mantiene activo: temporizadores, descargas, agentes, la app en primer plano y el adaptador conectado |
| kilobat sessions [--days N] [--json] | Sesiones activas y ejecuciones de agentes de IA que registró la app, con los datos usados y los cambios de red |
| kilobat agent-event <start|working|waiting|done|failed> [--agent name] [--stdin-json|--json-arg] | Para los hooks de un agente: avisa a la app de que una ejecución empezó, te está esperando o terminó. Silencioso, siempre sale con 0 |
| kilobat why <url|host> [--app <id>] [--proxy <url>] [--context container|vm|remote|provider] [--failed-at <time>] [--json] | Encuentra la capa que impide una conexión: red e interfaz, proxy y el proxy propio de la app, DNS, reglas de Kilobat, IPv4 e IPv6, TLS, el servidor y cada redirección. Solicita la URL exacta; la salida oculta los valores de la consulta |
| kilobat conditions [--json] | Con límite, Modo de datos reducidos, VPN, latencia, batería y temperatura, si se puede cerrar la tapa, con consejos para ejecuciones largas |
Controlar
| kilobat profile [travel|work|unrestricted] | Lista o selecciona un perfil |
| kilobat allow|block <bundle-id> [--minutes 1…1440] [--profile name] | Guarda una regla de app, opcionalmente temporal o para otro perfil |
| kilobat reset <bundle-id> [--profile name] | Quita la regla de una app para que siga la opción predeterminada |
| kilobat rules [--profile name] [--json] | Las reglas de un perfil |
| kilobat limit [GB] [--cycle session|daily|weekly|monthly] [--reset-day N] [--alert 50,80,100] | Consulta o fija el límite de datos de esta red, cuándo se reinicia y cuándo avisa |
| kilobat quota <bundle-id> <GB> [--upload] [--all-networks] | Limita los datos de una app por ciclo; quota <bundle-id> --remove la quita |
| kilobat quota --list [--json] | Cuotas de apps con lo que ha usado cada una en este ciclo |
| kilobat updaters [--json] | Actualizadores en pausa en redes con límite, los bytes de actualización que aun así pasaron en esta red y las apps que se actualizan desde dentro |
| kilobat updaters on|off | Pausa asistentes de actualización como Google Updater y Actualización de software de macOS mientras la red tiene límite (activado de forma predeterminada); las apps siguen funcionando |
| kilobat settings [name [value] ] | Consulta o cambia ajustes como new-apps (allow, ask o block), apple-software, auto-travel, pause-updaters, awake-on-power, public-ip (desactivado de forma predeterminada), speed-streams, alerts y menu-bar |
| kilobat approvals [--json] | Apps que esperan aprobación mientras se pregunta por las apps nuevas, con firmante y destinos |
| kilobat approve|deny <app-id> [--minutes 1…1440] | Bloquea al instante una app en espera, o pide a la persona que confirme en Kilobat si la permite |
| kilobat block-host|unblock-host <domain|IP|CIDR> [--app <id>] | Bloquea un dominio (subdominios incluidos, se admite *.example.com), una IP o un rango para todas las apps o para una sola |
| kilobat quit <PID> [--force] | Cierra un proceso |
Configurar
| kilobat open | Abre la app para Mac |
| kilobat doctor | Comprueba la app, el filtro de red y la supervisión |
| kilobat completion [zsh|bash|fish] | Imprime un script de autocompletado para el shell |
| kilobat mcp | Ejecuta el servidor MCP para agentes de IA por stdio |
| kilobat update | Actualiza una instalación de Homebrew |
Avanzado
| kilobat destinations [--pid PID] [--json] | Sockets de procesos observados |
| kilobat devices [--bonjour] [--json] | Dispositivos de tu red y servicios Bonjour |
| kilobat devices name <MAC> <name> | Pone nombre a un dispositivo |
| kilobat trace <host> [--rounds 2…10] [--json] | Sondeo de ruta limitado a 12 saltos; --rounds traza varias veces y muestra la pérdida y el retardo de cada salto |
| kilobat route-history --host <host> [--json] | Cada traza guardada hacia un host, salto a salto como mtr: pérdida, mejor, media, peor, cambios de ruta y dónde empieza el retardo |
| kilobat http-check <URL> [--json] | Tiempos de DNS, conexión, TLS y primer byte |
| kilobat dns-benchmark | Tiempos de los resolvedores |
| kilobat lan-test <server> [--reverse] [--json] | Prueba iperf3 de cinco segundos contra un dispositivo que ejecute iperf3 -s; requiere iperf3, que Kilobat nunca instala |
| kilobat interfaces [--json] | Contadores físicos y de VPN, por separado |
| kilobat capture <interface> <file.pcap> | Captura de paquetes limitada |
| kilobat connection-rule allow|block <app> <host> [port] | Guarda una regla de destino |
| kilobat blocklist status|import <path>|clear | Gestiona una lista de bloqueo de dominios |
| kilobat wake <MAC-address> | Envía un paquete Wake-on-LAN |
| kilobat spots [save <name>|remove <id>] | Lugares Wi-Fi guardados |
| kilobat outages / speed-history [--days N] | Cortes y pruebas de velocidad registrados, en JSON |
Scripts y JSON
La salida cambia a JSON automáticamente al usar tuberías, así los scripts nunca tienen que interpretar el formato para personas. Pasa --json para indicarlo de forma explícita.
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
Define NO_COLOR para desactivar los colores. Los cambios de DNS requieren la aprobación de un administrador.
Agentes de IA y MCP
La configuración paso a paso para Claude Code, Codex, Cursor, Gemini CLI, Claude Desktop, Windsurf, Cline, Zed y cualquier cliente MCP está en Configura Kilobat en tu agente de IA.
Dale a un agente como Claude Code, Codex o Cursor esta instrucción:
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.Servidor MCP
kilobat mcp habla el Model Context Protocol por stdio. Añádelo a Claude Code:
claude mcp add kilobat -- kilobat mcp
O añádelo a cualquier cliente que lea una configuración mcpServers:
{ "mcpServers": { "kilobat": { "command": "kilobat", "args": ["mcp"] } } }
Herramientas de solo lectura: 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 (solo pide tu IP pública a Cloudflare cuando el agente pasa public_ip), list_networks, list_rules, list_approvals, list_blocked_connections, run_stutter_test (solo envía pings), get_nearby_radios y create_support_report (el informe para tu proveedor, que el agente te entrega). Devuelven el mismo JSON que la CLI. run_speedtest gasta datos, run_lan_test mueve datos por tu propia red durante cinco segundos y pregunta antes, y keep_awake y release_awake retrasan el reposo por inactividad durante un tiempo fijo sin cambiar ajustes; keep_awake con lid_closed mantiene el Mac en marcha también con la tapa cerrada, si lo has permitido, y te pregunta antes. Las herramientas que hacen cambios (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, que además vacía la caché, y set_airdrop_visibility, que abre los ajustes de AirDrop) están marcadas como cambios, y sus descripciones indican al agente que te pregunte antes.
Cuando algo no se conecta
kilobat why <host> (MCP: diagnose_connection) comprueba un host capa por capa desde este Mac, sin ejecutar curl ni nc, para que un perfil estricto no pueda bloquear la propia comprobación. Prueba IPv4 e IPv6 por separado, así que una red con IPv6 roto, una causa habitual de agentes que se cuelgan o no paran de reconectarse, recibe una respuesta clara. Indica la interfaz usada, como Wi-Fi, el punto de acceso de un teléfono o una VPN, y prueba cada una cuando hay varias. Informa del proxy que elige el sistema o su archivo PAC y, con --app, del HTTPS_PROXY del entorno de esa app, sin contraseñas. Con una VPN o un proxy activos, compara la ruta directa con el túnel. Un nombre privado enviado al resolvedor propio de una VPN indica cuál es y si responde. El código que se ejecuta en un contenedor, una máquina virtual o un equipo remoto tiene su propia red: pasa --context y el informe termina con un comando para ejecutar allí. Cuando un servicio alojado hace la solicitud desde sus propios servidores, como hace Warp con un endpoint de inferencia personalizado, --context provider avisa cuando el destino es privado (localhost, una dirección de la LAN o de Tailscale) y, por tanto, queda fuera de su alcance, aunque funcione desde el Mac.
Dale la URL exacta que falla, con la consulta incluida: solicita esa URL, pero todas las salidas muestran los valores de la consulta como [redacted], así que un enlace de descarga firmado sigue siendo privado. Envía la solicitud como lo haría la app: a través del HTTPS_PROXY de la app, del proxy del sistema o, con --proxy <url>, de una dirección de proxy que la app configura en sus propios ajustes. Cuando ese proxy funciona y las conexiones directas no, como en muchas redes de empresa, lo dice en lugar de fallar; cuando las conexiones directas funcionan y la solicitud a través del proxy de la app falla, dice que la red está bien y que lo que falla es la ruta de la app. Un ajuste que no puede leer ni atravesar, como el interruptor de proxy de Hugging Face de LM Studio para las descargas de huggingface.co, recibe su propia nota con lo que han contado los usuarios, y el veredicto dice entonces que la red llega al host, no que la solicitud de la app funcione. Kilobat nunca cambia los ajustes de otra app. A un servidor que rechaza HEAD le envía un único GET de un solo byte, nunca una descarga. Sigue hasta cinco redirecciones, indica el salto que falla y comprueba IPv4 e IPv6 para el host en el que terminan las redirecciones. Con --app, muestra las conexiones abiertas de la app con ese host o con su proxy, avisa cuando usan otra versión de IP u otro servidor que la comprobación nueva, y vuelve a mirar unos segundos después: una transferencia que se ha quedado en silencio se indica como en silencio, nunca como terminada. El informe registra el nombre y la versión de la app, el método que envió, la ruta que siguió y, con --failed-at, cuándo falló la app junto a cuándo se hizo la comprobación. Que la comprobación pase significa que esta solicitud funciona ahora desde este Mac por esa ruta; no puede ver cómo va una transferencia que ya está en curso, así que vigílala con kilobat bandwidth <app>.
Conectar agentes
Sin ayuda, Kilobat se guía por el tráfico y el uso de CPU de un agente, así que un agente en silencio puede haber terminado o estar esperándote. Sus hooks le dicen a Kilobat a qué proyecto pertenece una ejecución, cuándo te espera y cuándo ha terminado. Cada hook ejecuta kilobat agent-event, que no imprime nada, vuelve al instante y siempre sale con 0, así que no puede romper el agente. Si la app no está abierta, los eventos esperan en un pequeño archivo que lee al abrirse. Kilobat lee identificadores de sesión, carpetas y textos de estado breves, nunca instrucciones ni respuestas. Combínalos con los hooks que ya tengas.
Claude Code, en ~/.claude/settings.json. Cada hook recibe por stdin un JSON con el identificador de sesión y la carpeta, que lee --stdin-json. Una solicitud de permiso o de entrada significa que espera; Stop significa terminado cuando acaban las tareas en segundo plano; un límite de uso significa que espera hasta que se restablezca.
{
"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, lo más sencillo: notify en ~/.codex/config.toml. Codex pasa un argumento JSON después de cada turno, que lee --json-arg. Solo indica terminado, y Codex ejecuta un único programa notify.
notify = ["kilobat", "agent-event", "done", "--agent", "codex", "--json-arg"]
Para indicar también la espera, usa en su lugar los hooks de Codex en ~/.codex/hooks.json y márcalos como de confianza con /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, en ~/.gemini/settings.json. Gemini CLI se ejecuta como node, así que Kilobat no puede asociar su tráfico a la ejecución, pero el estado sí llega.
{
"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 y Kanban): instala el plugin de Kilobat, que añade un archivo al almacén de plugins de Cline y no cambia ningún otro ajuste. cline plugin uninstall kilobat lo quita.
cline plugin install https://kilobat.app/agents/cline/kilobat.ts
Informa de una ejecución trabajando, terminada, fallida mientras Cline sigue abierto, cancelada, con límite de uso una vez agotados los reintentos de Cline, y en espera mientras Cline te hace una pregunta. Espera a los subagentes y compañeros antes de dar una ejecución por terminada. Las solicitudes de aprobación de Cline no son visibles para los plugins, así que esas las cubre la detección por tráfico y CPU.
Cualquier otro agente puede llamar a kilobat agent-event start|working|waiting|done|failed --agent <name> --session <id> --cwd <folder> desde sus propios hooks. Añade --verbose para ver qué ocurrió cuando lo pruebes a mano.
Por qué no coinciden las pruebas de velocidad
La prueba de velocidad de Kilobat abre una sola conexión HTTPS a la vez con el centro de datos de Cloudflare más cercano, 8 segundos en cada sentido y 80 MB como máximo, y hace ping a 1.1.1.1 antes y durante las transferencias. Speedtest de Ookla, fast.com y networkQuality de macOS abren varias conexiones a la vez y eligen sus propios servidores, así que en enlaces rápidos o lejanos suelen mostrar más. Elige 4 conexiones junto al botón de prueba en la pestaña Velocidad, o ejecuta kilobat speedtest --parallel, para ver cuánto importa eso en tu conexión. Cada prueba guardada conserva el centro de datos de Cloudflare, el número de conexiones, el enlace (banda, canal, señal y velocidad del enlace Wi-Fi, o Ethernet), la VPN por la que pasó y cuánto tráfico más movió este Mac mientras tanto. Historial › Comparar pruebas de velocidad, kilobat speed-compare y la herramienta MCP compare_speed_tests ponen dos pruebas una al lado de la otra y enumeran lo que cambió, cada cosa con una nota sobre cómo afecta al resultado. Enumeran diferencias, no causas: los demás dispositivos de tu red también compiten, y Kilobat no puede verlos.
VPN e IP pública
Estado › Por dónde sale el tráfico, el menú Wi-Fi y kilobat ip muestran la interfaz que usa la ruta predeterminada y si es una VPN, a partir de las rutas de este Mac y las VPN que macOS indica como conectadas. Una VPN conectada mientras la ruta predeterminada sigue en el Wi-Fi, como Tailscale sin nodo de salida, aparece como Parcial: solo algunos destinos pasan por ella. Activa Ajustes › Red › Consultar IP pública para ver también la dirección que ven las webs, que se pide a Cloudflare con cada cambio de red y cada 30 minutos, junto con el país en el que está registrada según los datos de DB-IP que incluye Kilobat. Está desactivado de forma predeterminada, porque Cloudflare ve esa solicitud; kilobat ip --public la consulta una vez. El país de registro no es donde estás tú ni donde está un servidor, y ni ese país ni una VPN demuestran que una conexión sea privada o anónima. Ajustes › Barra de menús › VPN añade Activada, Parcial o Desactivada (con el código de país si la consulta está activada) junto al murciélago, y el Historial registra cuándo se activó o desactivó una VPN y cuándo cambió la IP pública.
Historial de rutas
Herramientas › DNS y LAN › Trazar 3 veces, o kilobat trace <host> --rounds 3, traza una ruta tres veces con tres sondas por salto y guarda cada traza. Historial › Rutas guardadas combina todas las trazas guardadas hacia un host salto a salto, como mtr: pérdida, retardo mejor, medio, peor y último, qué saltos cambiaron de router y dónde empieza el retardo persistente. Un salto que omite respuestas mientras los siguientes contestan es un router que limita la frecuencia de las sondas, no pérdida. Solo para la red local, kilobat lan-test <device> ejecuta cinco segundos de iperf3 contra un dispositivo que ejecute iperf3 -s; instala iperf3 por tu cuenta, Kilobat nunca instala nada.
Mientras una app está en primer plano
Para leer o presentar, la opción «Mientras una app esté en primer plano» de la taza mantiene el Mac activo solo mientras la app que elijas sea la que está en primer plano, y lo deja entrar en reposo de nuevo en cuanto cambias a otra. «Mantener la pantalla encendida», en la taza, decide si la pantalla también se queda encendida, igual que para todo lo que Kilobat mantiene activo. Kilobat sigue los propios eventos de cambio de app de macOS: no hace sondeos, no mueve el puntero ni simula actividad, así que no puede hacerte parecer presente ante un software de vigilancia. Termina cuando la app se cierra, cuando lo desactivas o, con batería, al llegar al 20 % (o al mínimo que hayas fijado para las ejecuciones con la tapa cerrada), y nunca mantiene el Mac en marcha con la tapa cerrada. Tiene su propia retención, así que cambiar de app o cerrar la app nunca termina una sesión activa ni una ejecución de agente. Desde la línea de comandos: kilobat awake --while-frontmost Keynote --display.
Con el adaptador conectado
Activa «Mantener activo con el adaptador conectado» (Ajustes › Activo y agentes), o «Con el adaptador conectado» en la taza, y al enchufar el adaptador de corriente el Mac se mantiene activo hasta que lo desenchufes, como indica «Activo con el adaptador conectado» en la franja de estado. «Mantener la pantalla encendida» decide si la pantalla también se queda encendida. Si lo desactivas, sigue desactivado hasta la próxima vez que enchufes el Mac, aunque Kilobat se reinicie. Kilobat detecta el cambio mediante la propia notificación de fuente de alimentación de macOS, sin sondeos. Al desenchufarlo solo termina la sesión que inició el enchufe: una que hayas iniciado tú, una descarga que estés esperando, una app en primer plano, una ejecución de agente o una retención desde la línea de comandos continúan. Nunca mantiene el Mac en marcha con la tapa cerrada. Desde la línea de comandos: kilobat settings awake-on-power on, y kilobat settings keep-screen-on on para la pantalla; kilobat conditions --json lo indica como awakeOnPower.
Funcionar con la tapa cerrada
Al cerrar la tapa, el Mac entra en reposo aunque Kilobat lo esté manteniendo activo, salvo que permitas funcionar con la tapa cerrada en Ajustes › Activo y agentes. Eso instala un pequeño asistente que se ejecuta como root; macOS te pide que lo permitas en Ajustes del Sistema › General › Ítems de inicio. Con esto activado, una ejecución de agente en curso mantiene el Mac en marcha con la tapa cerrada, y lo mismo hace una sesión activa cuando marcas «También con la tapa cerrada» en el menú de la taza. Un agente que te está esperando solo lo mantiene si activas «Mantener activo mientras un agente espera», y como máximo 30 minutos.
Un Mac cerrado dentro de una mochila puede sobrecalentarse y agotar la batería, así que el propio asistente deja que el Mac entre en reposo al llegar a tu mínimo de batería (20 % de forma predeterminada), cuando se calienta, en cuanto se desenchufa si eliges solo con corriente, tras el tiempo máximo que fijes (8 horas como máximo) y un minuto después de que Kilobat se cierre. Si el asistente o el Mac se reinician durante una retención, primero restaura el ajuste. Kilobat muestra cómo terminó cada retención, por ejemplo «Mac en reposo: batería al 20 %».
Desde la línea de comandos, kilobat awake --lid-closed pide a la app la misma retención y explica por qué cuando no es posible; la retención termina con el comando. Los agentes usan keep_awake con lid_closed, cuya descripción les indica que te lo confirmen antes. kilobat conditions --json informa de lidClosedAllowed y del lidHold actual.
Skills para agentes
Nueve Agent Skills enseñan a los agentes de programación a resolver problemas de red en el Mac y a mantener en marcha las ejecuciones largas con Kilobat. Interpretan sus mediciones, explican lo que no es seguro y preguntan antes de cambiar ajustes. Instálalas juntas; la skill kilobat envía al agente a la que corresponda.
npx skills add seifip/kilobat-skills
| kilobat | Empieza aquí. Configuración, normas de seguridad y qué skill encaja con la pregunta. |
| mac-network-troubleshooting | Internet lento o inestable sin una causa clara: encuentra la capa que falla. |
| mac-wifi-troubleshooting | Wi-Fi débil o que se corta, canales saturados, el mejor sitio para el Mac o el router. |
| mac-hotspot-data-saver | Puntos de acceso del teléfono y planes con tope de datos: qué consume datos, perfil Viaje, límites de datos. |
| mac-dns-troubleshooting | Resoluciones lentas, pruebas de resolvedores, cambio de DNS, portales cautivos. |
| video-call-network-check | Llamadas y streaming de juegos con cortes: picos de latencia, jitter, pérdida, bufferbloat y subidas en segundo plano. |
| mac-bandwidth-monitor | Qué apps usan la conexión, historial de uso y adónde se conectan. |
| mac-app-firewall | Bloquea o permite apps, dominios e IP; pregunta por las apps nuevas y responde a sus solicitudes. |
| mac-agent-runs | Ejecuciones largas de agentes: mantener el Mac activo, comprobar las condiciones, conectar los hooks del agente, ver cuándo terminó una ejecución, si te espera o si se atascó. |
Instala la CLI de Kilobat por separado con el comando de Homebrew de arriba, o conecta su servidor MCP. La CLI requiere macOS 14 o posterior; compilarla desde el código fuente con Homebrew requiere Xcode 16 o posterior. Consulta las skills en skills.sh o lee su código y sus referencias.
La app para Mac
- Descarga la imagen de disco, arrastra Kilobat a Aplicaciones y ábrelo desde allí.
- El tráfico en directo, el selector de Wi-Fi, las pruebas de velocidad, mantener activo y ¿Por qué no se conecta? son gratis, igual que toda la CLI. Pro añade reglas y Preguntar, límites de datos, el estado del Wi-Fi, el mapa de conexiones, el radar y el historial en la app. Para desbloquear Pro, empieza la prueba de 7 días o pega tu licencia en Ajustes.
- Elige los elementos de la barra de menús en Ajustes. Mantén pulsada la tecla Comando mientras arrastras un elemento de la barra de menús para moverlo.
Permite el acceso a tu ubicación cuando se te pida, para que Kilobat pueda mostrar los nombres de las redes Wi-Fi y buscar redes cercanas. Tu ubicación no se envía a ningún sitio.
Ancho de banda por app
La fila de cada app muestra su tráfico del último minuto, la subida por encima de la línea y la descarga por debajo. Haz clic en ella para ver el eco de la app: una frase sobre lo que transfirió, luego una onda de los últimos cinco minutos en directo y, con Pro, su historial por hora, día, semana o mes. Unas marcas señalan cuándo el Mac se conectó a otra red o cuándo una ejecución de agente usó la app, y unas fichas muestran qué redes llevaron el tráfico, cómo se compara con los cuatro periodos anteriores de la app y qué parte representa del tráfico total. Debajo del gráfico están las conexiones abiertas de la app, con los datos que ha movido cada una y su país, y las conexiones que declara el desarrollador de la app en una Internet Access Policy, si la incluye.
Comparar con tu router o proveedor
Cuando tu router, tu proveedor de internet o tu operador muestran un total distinto del de Kilobat, abre Historial › Comparar con tu router o proveedor, o ejecuta kilobat report compare. Introduce la cifra tal como la muestran, su unidad y si cuenta la descarga, la subida o ambas, y luego el mismo periodo y la red a la que corresponde. Kilobat muestra su propio total en la misma unidad y la diferencia, y lee la cifra también en el otro sistema de unidades, porque muchos proveedores escriben GB para 1 073 741 824 bytes (GiB) en lugar de 1 000 000 000.
Una franja muestra las horas que Kilobat registró realmente y sus huecos: el tiempo en que el Mac estuvo en reposo (registrado a partir de Kilobat 1.3), el tiempo en que estuvo apagado o sin conexión o en que Kilobat no estaba abierto, el tiempo en otras redes y el tiempo anterior al inicio de su historial. Debajo aparecen los motivos probables de la diferencia, del más probable al menos. Kilobat solo ve este Mac, no los teléfonos, televisores y otros equipos que cuenta un router o un proveedor. Deja fuera el tráfico de la red local y de AirDrop, que nunca llega a internet, y cuenta como no atribuidas las cabeceras de paquetes que ninguna app registra. Los proveedores pueden contar los días en otra zona horaria o publicar el uso con retraso. Kilobat no dice qué cifra es la correcta. Exporta la comparación en CSV o JSON, con el periodo, las redes, las horas registradas y cada hueco, para compartirla con tu proveedor.
Prueba de cortes
Las llamadas, el streaming de juegos y los escritorios remotos pueden tener cortes aunque la velocidad y la pérdida parezcan buenas, porque un pico de ping de unos cientos de milisegundos desaparece en un promedio. La prueba de cortes de Estado hace ping a tu router (o a internet) cada 50 ms durante 20 segundos y dibuja cada respuesta, con los picos en rosa, junto con la mediana, el p95, el p99 y el peor ping. Te dice si los picos se repiten a intervalos regulares, lo que a menudo apunta a escaneos de AirDrop/AWDL, o si llegan al azar, lo que apunta a una red saturada, interferencias o una señal débil. Muchos routers solo responden unos diez pings por segundo; Kilobat reconoce ese patrón y no lo cuenta como pérdida. Con Pro, Comparar con baja latencia activada repite la prueba con AirDrop/AWDL en pausa y te dice si ha servido.
La pausa de baja latencia desactiva AirDrop, Sidecar y Control Universal durante 15 minutos, 1 o 2 horas, o hasta que se cierre una app como tu juego o tu llamada, 4 horas como máximo. Siempre restaura todo cuando se acaba el tiempo, la app se cierra, Kilobat se cierra o cambia la red, y en el siguiente arranque si el Mac se bloqueó. macOS pide la aprobación de un administrador. El panel Cercanos de Estado también muestra si la radio de AirDrop está activa y qué la usa, tu visibilidad en AirDrop y, cuando lo pides, los dispositivos Bluetooth que comparten la banda de 2.4 GHz con el Wi-Fi.
El menú Wi-Fi muestra tus dispositivos Bluetooth debajo de las redes: haz clic en uno para conectarlo o desconectarlo. Una etiqueta 2.4 GHz señala los auriculares, teclados y ratones conectados que comparten la banda con tu Wi-Fi, con un atajo a una red de 5 GHz conocida. Debajo está AirDrop, con su visibilidad, qué está usando el enlace y la pausa de baja latencia. Bluetooth solo aparece después de que elijas «Mostrar dispositivos Bluetooth», así que macOS solo pide acceso en ese momento.
Proxies y VPN
Kilobat funciona junto a apps de proxy (Clash Verge, ClashX, mihomo, Mihomo Party, FlClash, Surge, sing-box, Stash, V2Ray, Xray, Shadowsocks) y VPN. Solo las lee; nunca enruta tráfico ni cambia sus ajustes.
- El tráfico cuenta para la app correcta. A una app que envía a través de un proxy local se le asigna su propio tráfico, y el núcleo del proxy o el túnel VPN que lo reenvía aparece como «Lleva tráfico de otras apps» en lugar de contarse dos veces.
- Qué ruta tomó cada app. Con una API compatible con Clash (Clash Verge, ClashX, mihomo, Mihomo Party, FlClash, clash_api de sing-box), la fila de una app muestra el nodo por el que pasó, como «vía HK-01 · 2 directas», y su descripción emergente enumera cada host, nodo y regla. Kilobat lee la dirección de la API y el secreto de la propia configuración de la app, y nunca muestra el secreto.
- Problemas, en «Por dónde sale el tráfico» de Estado:
- un proxy del sistema que apunta a una app que no está abierta, lo que deja sin conexión a todos los navegadores;
- DNS o IPv6 que se saltan la VPN;
- un proxy y una VPN que captan tráfico a la vez;
- modo global;
- bloqueos que no ven las apps detrás de un proxy del sistema. Los filtros de macOS nunca ven las conexiones a 127.0.0.1, así que activa el modo TUN del proxy o bloquea la app en las reglas del proxy.
- ¿Por qué no se conecta? añade una capa «App de proxy» con el modo del proxy y lo rápido que responden sus nodos actuales, e indica cuándo el problema es un nodo caído.
En la terminal: kilobat proxy, kilobat proxy routes --app Telegram, kilobat proxy test y kilobat vpn. Para un núcleo que Kilobat no encuentra por sí solo, pasa --controller 127.0.0.1:9090 --secret …. Los agentes obtienen lo mismo con get_proxy_status, test_proxy_nodes y check_vpn.
Widgets
Añade Kilobat al escritorio o al centro de notificaciones: haz clic derecho en el escritorio, elige «Editar widgets» y busca Kilobat. Estado de la red muestra el murciélago según el estado de la conexión, con el ping a internet y al router; el tamaño mediano añade los últimos 30 minutos de latencia, tu última prueba de velocidad y un botón «Probar». Datos de hoy muestra los datos de internet de hoy, de bajada y de subida, por horas; con Pro, también tu límite de datos. Prueba de velocidad muestra tu último resultado y hace una nueva con un clic (10 MB en una red con límite). Los widgets no muestran nombres de red ni direcciones, se actualizan cuando algo cambia e indican la antigüedad de sus datos cuando Kilobat no está abierto.
Informes de llamadas
Después de cada llamada, Kilobat te dice si se congeló y por qué. Detecta una llamada cuando Zoom, Microsoft Teams, FaceTime, Slack, Webex, Discord, Skype, WhatsApp, Telegram, Signal o un navegador usa el micrófono más de diez segundos. Nunca oye la llamada: solo ve qué app usa el micrófono, algo que macOS ya muestra. Hasta que termina la llamada, hace ping a internet y a tu router una vez por segundo, anota la otra app más activa y revisa la CPU, la memoria, la temperatura y la GPU del Mac cada cinco segundos.
Dos o más segundos seguidos de pings perdidos, o de pings 200 ms más lentos de lo habitual en la llamada, cuentan como una congelación. Cada congelación recibe una causa: otra app subiendo o descargando en ese momento, el Wi-Fi (cuando el router también se atascó), el escaneo de AirDrop o más allá de tu router. Aparte, la tarjeta indica cuándo el propio Mac tuvo problemas: la CPU al máximo (y por qué app), la memoria agotándose, el Mac ralentizándose por calor o la GPU al máximo. La tarjeta aparece en Estado › Llamadas y como notificación. Sin Pro muestra cuántas veces se congeló la llamada; Kilobat Pro nombra las causas y dice qué probar. Desactívala en Ajustes › Red › Informe tras cada llamada. En la terminal, kilobat calls lista las tarjetas, y los agentes las obtienen con get_call_reports.
Overlay para streaming
Muestra tu ping en directo en el stream. Activa Ajustes › Red › Overlay para streaming y luego añade http://localhost:7171/ como fuente de navegador en OBS, Streamlabs o cualquier app de streaming (640 × 80 es suficiente). Una pequeña píldora muestra el ping, el jitter, la pérdida y el último minuto como una línea. El murciélago del principio sonríe en azul mientras la línea va bien, se vuelve violeta cuando va más lenta y frunce el ceño en rosa cuando va mal. Cámbialo en la URL: ?show=ping,jitter,loss,graph,speed, theme=dark, light o clear, y size=s, m o l. Con Pro, brand=0 oculta el logotipo y face=0 muestra un punto simple en lugar del murciélago. Mientras está activado, Kilobat hace ping a 1.1.1.1 una vez por segundo; la página se sirve en 127.0.0.1, así que solo este Mac puede abrirla. Sin la app, kilobat overlay sirve la misma página hasta Ctrl-C.
Un informe para tu proveedor
Cuando la conexión va mal, tu proveedor o tu soporte informático quieren pruebas. En Estado, el botón de informe crea uno con lo que Kilobat registró en esta red durante las últimas 24 horas o los últimos 7 días. Incluye cortes, latencia en el router y más allá, pérdida de ping y pruebas de velocidad frente a tu plan, además de una comprobación de la web que falla si añades una. Cada hallazgo dice qué se midió y dónde, nunca de quién es la culpa. Cópialo como texto para un chat de soporte, o guárdalo o compártelo como PDF. Omite el nombre de tu red, todas las direcciones IP y de hardware locales, los nombres de los dispositivos y qué apps usaron la red. En la terminal, ejecuta kilobat support-report --host github.com, o --html --output report.html para la página.
Tarjetas para compartir
«Compartir y exportar», en el menú contextual del icono de la barra de menús, crea una imagen cuadrada para publicar: el Eco semanal (los datos que transferiste, tu día de más actividad y tu app más glotona), tu última prueba de velocidad, o «Este lugar», un informe de Wi-Fi del café, el coworking, el hotel o la biblioteca desde donde trabajas. «Este lugar» muestra el nombre del sitio, que escribes o eliges en la búsqueda de Mapas, y luego la descarga, la subida y el ping de la prueba de velocidad más reciente en esta red, si basta para videollamadas, cómo aguanta con carga y la banda del Wi-Fi. Elige el sitio en la búsqueda y la tarjeta incluye un pequeño mapa de la zona con un punto; desactiva «Mostrar mapa» para quitarlo. Añade etiquetas como «Enchufes», «Tranquilo» o «Abierto hasta tarde», y una nota de una línea. Kilobat las recuerda para esa red, en este Mac. Copia la tarjeta, guárdala o compártela en Nomad List, en una reseña de Google Maps o en un chat de coworking. Ninguna tarjeta muestra el nombre de una red ni una dirección. El mapa muestra el sitio que elegiste, nunca dónde estás, salvo que elijas «Usar mi ubicación», la única vez que «Este lugar» pide acceso a tu ubicación.
Otras apps pueden abrir Kilobat en el sitio justo con un enlace kilobat:// (desde la 1.3.4): kilobat://open/speed abre una pestaña (overview, connections, health, radar, speed, history, tools o settings), kilobat://share/speed, kilobat://share/week o kilobat://share/place abre una tarjeta para compartir, y kilobat://speedtest hace una prueba de velocidad. Ejecuta uno desde Terminal con open kilobat://open/history, o asígnalo a una tecla en un lanzador. La extensión de Raycast usa estos enlaces para sus acciones Open in Kilobat, y las acciones de Atajos de Kilobat ejecutan comprobaciones, pruebas de velocidad, mantener activo e informes desde la app Atajos.
Adónde se conecta
Conexiones muestra cada conexión abierta en un globo terráqueo, trazada hasta el país en el que está registrada su dirección, con los países más activos en una lista y los sockets debajo. Haz clic en un país para filtrar. El país sale de la base de datos gratuita de DB-IP que incluye la app, así que ninguna dirección sale de tu Mac. Es el país de registro: una dirección de una CDN o una VPN muestra el país de su propietario, no dónde está el servidor.
Bloqueo y filtrado
La supervisión funciona sin filtrado. Para aplicar reglas, abre la configuración del filtrado en Kilobat y aprueba la extensión y el filtro de contenido cuando macOS lo pida. En las versiones actuales de macOS, las extensiones están en Ajustes del Sistema → General → Ítems de inicio y extensiones → Extensiones de red.
El filtrado afecta a las conexiones nuevas; una conexión existente puede continuar hasta que se reconecte. Si una regla interrumpe algo importante, cambia a Sin restricciones o desactiva el filtrado en Ajustes.
Apps nuevas: permitir, preguntar o bloquear
La píldora que hay sobre la lista de apps define qué hacen Viaje y Trabajo con las apps que no tienen regla. Permitir las deja conectarse. Preguntar retiene las primeras conexiones de una app y abre una ventana con quién la firmó, su ruta y adónde quiere conectarse; permítela o bloquéala una vez y Kilobat guarda la regla. Las conexiones sin respuesta se abandonan tras un minuto y la app vuelve a preguntar. Bloquear solo deja conectarse a las apps que hayas permitido. Activa Permitir software de Apple para dejar pasar los servicios de macOS y las apps de Apple sin preguntar. Tu lista de bloqueo y tus reglas de conexión se aplican en todos los modos y, si Kilobat no está abierto, las apps nuevas se permiten en lugar de retenerse.
Puntos de acceso y coste de datos
macOS marca algunas conexiones como con límite, como el punto de acceso de un iPhone, pero no todos los puntos de acceso Android ni un teléfono conectado por USB o Ethernet. Cada red tiene un coste de datos: Automático sigue a macOS, y Con límite o Sin límite lo decides tú. Configúralo en el menú Wi-Fi, el menú del límite de datos, la pestaña Estado o Ajustes, o con kilobat networks cost metered. En una red con límite, Kilobat cambia a Viaje, salvo que hayas elegido un perfil para esa red, vuelve a tu perfil anterior cuando sales y se salta las pruebas de velocidad programadas. kilobat conditions --json y el servidor MCP informan tanto de metered como de lo que dice macOS (osMetered). Kilobat necesita distinguir una red antes de que puedas fijar su coste, así que para el Wi-Fi necesita acceso a la ubicación para ver el nombre de la red.
Pausar los actualizadores en redes con límite
En una red con límite, el filtro de red también pausa los asistentes que descargan actualizaciones por su cuenta: Google Updater (y el antiguo agente Keystone), Microsoft AutoUpdate, Actualización de software de macOS (softwareupdated), las descargas del App Store (appstored, appstoreagent, storedownloadd), el servicio de descargas de Sparkle y los instaladores de Sparkle y Squirrel (Autoupdate, Updater.app, ShipIt). Se bloquean con una regla de filtro normal, el registro de conexiones bloqueadas indica «Actualizador en pausa en una red con límite» y las apps siguen funcionando. Cuando la red deja de tener límite, las actualizaciones continúan. No se cambia nada en otras apps, en sus carpetas de preparación ni en Ajustes del Sistema, así que no hay nada que restaurar. Está activado de forma predeterminada; desactívalo en Ajustes o con kilobat updaters off. Las reglas que ya se aplican a una conexión, como una regla de destino o un permiso temporal, tienen prioridad, así que «permitir durante 30 minutos» deja pasar una actualización. Sin restricciones no pausa nada.
La pestaña Estado, kilobat updaters y la herramienta MCP get_updaters muestran qué actualizadores están cubiertos, qué bytes de actualización pasaron aun así en esta red (los bytes del propio actualizador, y las descargas del sistema como nsurlsessiond que se conectaron para uno, cuyos bytes incluyen otras descargas) y qué apps instaladas se actualizan desde su propio proceso. La mayoría de las apps basadas en Sparkle o Electron descargan la actualización dentro de la app y solo dejan la instalación a un asistente, así que no se pueden pausar sin bloquear la app. El filtro detiene las conexiones nuevas, así que una descarga que ya estaba en curso cuando la red pasó a tener límite puede terminar. La comprobación de actualizaciones programada del propio Kilobat también espera a una red sin límite; «Buscar actualizaciones» sigue funcionando a mano.
Límites de datos y cuotas por app
Cada red tiene su propio límite de datos. De forma predeterminada, cuenta hasta que lo restableces. Puedes hacer que se reinicie cada día, cada semana en el día que elijas o cada mes en el día en que se renueva tu plan; un plan que se renueva el día 31 empieza el último día de los meses más cortos. Un límite con ciclo cuenta el historial de uso de esa red, así que continúa después de un reinicio. Kilobat avisa una vez por ciclo al 80 % y al 100 % de forma predeterminada, y al 50 % si lo añades.
Una app puede tener su propia cuota: un límite por ciclo para todo lo que transfiere o solo para sus subidas, en una red o en todas. Configúrala desde el panel de ancho de banda de la app o con kilobat quota com.getdropbox.dropbox 2 --upload. Con el filtrado activado, un límite de datos agotado detiene las conexiones nuevas, y una cuota agotada detiene las conexiones nuevas de esa app. Un permiso temporal o una regla de conexión siguen pasando. Kilobat mide el tráfico cada segundo, así que los límites y las cuotas son aproximados: una app puede pasarse un poco antes de detenerse.
Qué cuenta: internet, red local y VPN
Los límites de datos, las cuotas y los datos usados solo cuentan el tráfico de internet. El tráfico hacia tu red local (impresoras, NAS, otros equipos, la página de administración del router), AirDrop y otros enlaces con dispositivos cercanos (AWDL) se muestra aparte, como «Red local: 2.1 GB, no se cuenta», cuando pasas el puntero sobre la cifra usada de la tarjeta del límite de datos, y en el panel de ancho de banda de cada app. El total del Mac sale de los contadores de Wi-Fi y Ethernet, así que incluye lo que ninguna app registra: las cabeceras de los paquetes y las confirmaciones, que los recuentos de bytes de las apps dejan fuera (normalmente un 5–10 % más), un proceso que empezó y terminó entre dos mediciones, Compartir Internet o una VPN que gestiona el propio macOS. La misma descripción emergente muestra esa parte como «Sin app asociada»; nunca se asigna a una app.
Con una VPN, el tráfico de una app pasa por el túnel y la VPN lo saca por Wi-Fi o Ethernet. Kilobat lo cuenta una sola vez, donde sale del Mac, como hace tu operador, y etiqueta la parte de la app como «A través de una VPN». Con un proxy (un proxy del sistema, HTTPS_PROXY o una app de proxy local), las apps hablan con el proxy en este Mac y el proxy hace las conexiones a internet, así que los bytes aparecen bajo el proxy; Kilobat no puede saber qué app había detrás. Para Kilobat, un proxy en modo TUN es una VPN: la conexión propia de cada app se etiqueta como «A través de una VPN» y el tráfico de salida del proxy aparece bajo el proxy. Un proxy de empresa en una dirección privada cuenta como red local.
Descargas del sistema
Las apps delegan algunas descargas en macOS: nsurlsessiond (transferencias en segundo plano de apps como Música y Podcasts), mobileassetd (modelos de Apple Intelligence y Siri, voces, tipos de letra), softwareupdated, appstored y appstoreagent, cloudd y bird (iCloud), fileproviderd y Caché de contenido. La lista de apps los agrupa como Descargas del sistema, con lo que hace cada uno. Con el filtrado activado, el filtro ve para qué app era cada conexión, así que la lista indica «Para Música» y un bloqueo aparece como «com.apple.Music mediante nsurlsessiond». Sin filtrado, nettop solo ve el servicio, así que Kilobat no puede saber para qué app era una descarga.
Un proceso que no es una app ni forma parte de macOS, como node, python, deno, bun o un binario de Go en tu carpeta de inicio o en Homebrew, muestra su ruta del ejecutable al desplegar su fila, así que un agente o una herramienta desconocidos llaman la atención.
Activa Subidas inusuales en Ajustes para recibir un aviso cuando una app suba en una hora cinco veces lo habitual, y al menos 50 MB, como mucho una vez al día por app. Solo avisa. Las reglas temporales y las reglas de conexión con caducidad aparecen en Perfiles con el tiempo restante, así que puedes terminar una antes.
Bloquear dominios e IP
Haz clic derecho en una conexión abierta de una app para bloquear ese host para la app o para todas. La lista de bloqueo admite dominios (subdominios incluidos; *.example.com también funciona), direcciones IP y rangos CIDR, junto con una lista hosts importada. Desde la línea de comandos: kilobat block-host ads.example.com.
Regala Pro, consigue Pro
Cada licencia Pro tiene su propio enlace de invitación, kilobat.app/r/ y un código corto. Lo encontrarás en Ajustes, en Kilobat Pro, o debajo de una tarjeta para compartir, con «Copiar enlace» y «Compartir». No hay cuenta: el código sale de tu licencia y no revela tu clave.
Un amigo que abre tu enlace y luego Kilobat recibe una prueba de Pro de 30 días en lugar de 7. Cada Mac puede usar un enlace de invitación, una sola vez. Cuando compra Pro, en la app o en el sitio después de seguir tu enlace, tu licencia suma un Mac más. Cada tres amigos ganas una licencia Pro gratis: un código de un solo uso que aparece en Ajustes, para introducir al pagar para ti o para quien quieras.
Una compra cuenta cuando termina el plazo de reembolso de 14 días; hasta entonces, Ajustes la muestra como pendiente. No cuentan las compras reembolsadas, las licencias gratis ni las compras con tu propio enlace.
Privacidad
El historial de tráfico, los nombres de red y las reglas se quedan en tu Mac. No hay cuenta ni telemetría. Los diagnósticos contactan con servicios de prueba, y la activación de la licencia y la búsqueda de actualizaciones contactan con sus respectivos servicios. Lee el aviso de privacidad.