Kilobat docs

Everything you need to run Kilobat from the menu bar, the terminal, or an AI agent.

Install

The CLI is free and open source. Install it with Homebrew:

brew install seifip/kilobat/kilobat

This installs kilobat and kb, a short alias. Every example below works with either.

Or download the Mac app, which also includes the CLI at Kilobat.app/Contents/Helpers/kilobat.

Download for Mac ↓Download the free CLI ↓

Turn on tab completion for your shell:

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

Quick start

Run kilobat on its own for an interactive menu: arrow keys or j/k to move, Enter to open, a number to jump, q to quit.

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

Run kilobat <command> --help for help with any command.

Commands

Monitor

kilobat status [--watch] [--json]Live per-app traffic and session budget; a JSON snapshot, or a JSON-lines stream with --watch
kilobat report [--csv|--json] [--summary] [--days 1…30]Locally recorded usage history, or daily totals and top apps

Diagnose

kilobat diagnose [--json]Wi-Fi, router, internet, DNS and captive-portal checks with advice
kilobat radar [--watch] [--json]Signal score and best-spot finder
kilobat scan [--json]Nearby networks, channels and widths
kilobat speedtest [--json] [--budget-mb 1…80]Cloudflare speed and loaded latency, 80 MB at most
kilobat dns [automatic|cloudflare|google|flush]Read or set DNS, or flush the cache

Control

kilobat profile [travel|work|unrestricted]List or select a profile
kilobat allow|block <bundle-id> [--minutes 1…1440]Save an app rule in the current profile, optionally temporary
kilobat rules [--json]The current profile’s rules
kilobat limit [GB]Read or set the session budget

Setup

kilobat openOpen the Mac app
kilobat doctorCheck monitoring and filtering readiness
kilobat completion [zsh|bash|fish]Print a shell completion script
kilobat mcpRun the MCP server for AI agents over stdio
kilobat updateUpdate a Homebrew install

Expert

kilobat destinations [--pid PID] [--json]Observed process sockets
kilobat devices [--bonjour] [--json]Devices on your network and Bonjour services
kilobat trace <host>Bounded 12-hop route probe
kilobat http-check <URL>DNS, connect, TLS and first-byte timing
kilobat dns-benchmarkResolver timings
kilobat lan-test <server> [--reverse]Five-second iperf3 LAN test
kilobat interfaces [--json]Physical and VPN counters, separately
kilobat capture <interface> <file.pcap>Bounded packet capture
kilobat connection-rule allow|block <app> <host> [port]Save a destination rule
kilobat blocklist status|import <path>|clearManage a domain blocklist
kilobat wake <MAC-address>Send a Wake-on-LAN packet
kilobat outages / speed-historyRecorded outages and speed tests as JSON

Scripting and JSON

Output switches to JSON automatically when piped, so scripts never parse the human layout. Pass --json to be explicit.

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

Set NO_COLOR to turn off colors. Changes to DNS require administrator approval.

AI agents and MCP

Give an agent like Claude Code, Codex or Cursor this prompt:

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 server

kilobat mcp speaks the Model Context Protocol over stdio. Add it to Claude Code:

claude mcp add kilobat -- kilobat mcp

Or add it to any client that reads an mcpServers config:

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

Read-only tools: get_status, diagnose_network, scan_wifi, run_speedtest, get_usage_report and list_rules. They return the same JSON as the CLI. Change tools (set_profile, set_app_rule, set_dns) are marked as changes, and their descriptions tell the agent to ask you first.

Mac network troubleshooting skill

The mac-network-troubleshooting skill helps agents investigate slow internet, Wi-Fi drops, latency, DNS, hotspots, data usage and bufferbloat. It interprets Kilobat measurements, explains uncertainty and asks before changing settings.

npx skills add seifip/kilobat-skills

Install the Kilobat CLI separately with the Homebrew command above, or connect its MCP server. The CLI requires macOS 14 or later; the Homebrew source build requires Xcode 16 or later. See the skill on skills.sh or read its source and references.

The Mac app

  1. Download the disk image, drag Kilobat into Applications and open it from there.
  2. Live traffic, the Wi-Fi picker and speed tests are free. To unlock Pro, start the 14-day trial or paste your license into Settings.
  3. Choose your menu-bar items in Settings. Hold Command while dragging a menu-bar item to move it.

Allow Location access when asked so Kilobat can show Wi-Fi names and scan nearby networks. Your location is not sent anywhere.

Blocking and filtering

Monitoring works without filtering. To enforce rules, open filtering setup in Kilobat and approve the extension and content filter when macOS asks. On current macOS, extensions are under System Settings → General → Login Items & Extensions → Network Extensions.

Filtering affects new connections; an existing connection may continue until it reconnects. If a rule interrupts something important, switch to Unrestricted or turn filtering off in Settings.

Privacy

Traffic history, network names and rules stay on your Mac. There is no account and no telemetry. Diagnostics contact test services, and license activation and update checks contact their services. Read the privacy notice.