Remote devices (Kilasec Connect)
Collectors inspect traffic from machines that route through them on the LAN. But remote employees, work-from-home laptops, and contractors aren't behind a collector's network — that's what Kilasec Connect is for.
Kilasec Connect is a lightweight client the user installs on their machine. It runs a small local proxy and forwards only in-scope AI traffic to one of your collectors for inspection; everything else goes direct and never touches Kilasec. Same policy, same redaction — just for off-network devices.
- No CA key on the device — inspection still happens on the collector.
- Scoped device token — a stolen laptop token can only fetch config, not read tenant data.
- Works local and remote — the same install uses the collector's LAN address on-network and its public address off-network, automatically.
1. (Remote path only) Give the collector a public endpoint
If the device is on the same network as a collector, skip this — it'll use the LAN address automatically.
For off-network devices, the collector needs an address they can reach over the internet:
- Collectors → your collector → Device endpoint → set a routable HTTPS address, e.g.
https://collector.example.com:8443.- Use a port other than
:8080(that's the collector's own proxy port);:8443is the convention. - The
https://scheme tells clients to TLS-wrap the hop, so the device token is never sent in cleartext over the internet.
- Use a port other than
- Open that port to the device: your cloud firewall / security-list ingress and the collector host's firewall must allow inbound TCP on it.
- For a clean hostname, add a DNS A record (e.g.
collector.example.com→ the collector's public IP) and use it in the endpoint — the TLS cert is validated against it.
TIP
An https:// device endpoint keeps the collector's block_global protection on — remote traffic reaches the proxy from loopback after the TLS relay decrypts it, so nothing needs to be exposed unauthenticated.
2. Add the device & send the one-liner
Devices → Add device shows the command to send the employee. Pick macOS / Linux or Windows, and one of two modes:
Sign-in · no code (default) — one command for everyone. It installs Kilasec Connect, then the employee signs in with their work account in the browser, and the device lands in your workspace under their account, already approved. Nothing in it expires or is specific to one person, so it's safe to put in MDM or an onboarding doc.
bashcurl -fsSL https://kilasec.com/connect | sh # macOS / Linuxpowershellirm https://kilasec.com/connect.ps1 | iex # Windows (PowerShell)One-time code — for machines that can't reach a browser (headless, kiosk, imaging). The code is single-use and expires.
bashcurl -fsSL https://kilasec.com/connect | sh -s -- --enroll klsd_xxxxxxxxpowershell$env:KILASEC_ENROLL='klsd_xxxxxxxx'; irm https://kilasec.com/connect.ps1 | iexThe device then shows in Devices as pending — click Approve.
The installer builds a private environment, downloads the client, enrolls, trusts your inspection CA, and installs a background service that starts at login. On macOS/Linux that's one sudo prompt; on Windows there is no admin prompt (the CA goes in the per-user store) and the Kilasec Connect app is installed with it. For a whole fleet, the Fleet rollout (MDM) section of the same dialog mints one reusable command for Jamf / Intune / Kandji, with optional auto-approve for devices enrolling from your corporate network.
That's it. Browsers work via the OS auto-proxy; terminal AI tools pick up the AI gateway environment automatically in new shells (see Terminal / CLI inspection below). For a one-off shell you can still run eval "$(kilasec-connect env)".
3. Verify it's inspecting
- The employee's Kilasec Connect app (macOS menu bar, Windows tray) shows Protected, or run
kilasec-connect statuson the CLI. - In the dashboard, Live Traffic shows their in-scope requests with a decision, attributed to the device.
- To prove redaction, have them send an SSN (
123-45-6789) to an in-scope AI site — Live Traffic shows the request masked to redact.
The Kilasec Connect app
On macOS (menu bar) and Windows (tray) the app is a status panel over the background service. It shows protection status and the collector in use, and gives the user sign-in, the Protection toggle (with Pause for 15 minutes / Pause for 1 hour, when you allow it), repair, Check for updates, Quit, and Uninstall. Traffic detail is not in the app — it lives in the console's Live Traffic and AI X-ray, across the whole fleet.
- Collector choice. With more than one collector, the collector badge opens a picker: Auto (lowest latency) or a specific collector, each with its measured latency. An admin pin (below) shows as Assigned by your admin.
- Windows updates itself. The Windows app installs with enrollment and starts at logon. New versions arrive on their own, usually within half an hour, and install without interrupting protection — the app restarts, the background service doesn't. If the panel is open, the update waits until it's closed. Updates are signed; the app installs one only if the signature matches the key it shipped with, and never moves to an older version.
- Port conflicts resolve themselves. The client prefers port 3128 for its local proxy, but if another application already holds it the client moves to a free port automatically — the PAC file, system proxy, and status app all follow, and the conflict is noted in the device's Connection log. No device-side action is needed.
- Restarts don't stall traffic. The auto-proxy script the client sets sends in-scope hosts to
PROXY 127.0.0.1:3128; DIRECT. If the local proxy isn't accepting connections — for example the few seconds while the client restarts for an update — the browser goes direct instead of hanging. Healthy traffic is still inspected; the fallback only applies when the proxy is unreachable.
Managing devices
The Devices page lists every enrolled machine. Expand a row for full detail (device ID, user/host, OS, last-seen, IPs, who approved it). Actions:
- Revoke — kills the device token immediately; AI traffic on that device fails closed until re-enrolled. The row stays as
revokedfor audit. - Delete — hard-removes the row (use on revoked/old devices to keep the list clean).
- Auto-update (workspace toggle) — devices self-update when a client release is published for their platform. Releases are per-platform (a Windows-only fix never restarts Macs), and a new release rolls out across the fleet over about an hour — each device picks a stable slot rather than every device restarting in the same minute. A release younger than ~10 minutes is never acted on, leaving a window to roll back a bad pin before any device moves.
- Let users stop protection (workspace toggle) — whether users may pause inspection from the Kilasec Connect app.
- Collector (per device, shown when you have more than one collector) — Auto (lowest latency) lets the device pick the fastest reachable collector (and the user choose one in the app). Pinning routes the device through one collector, e.g. to keep a branch office on its local collector. If the pinned collector is unreachable the device falls back to auto rather than losing protection. Applies on the next config poll (~60s).
- Terminal inspection — see below.
Terminal / CLI inspection
By default a device inspects GUI apps (browsers, desktop clients) — they follow the system proxy the client sets. Terminal tools (curl, python, node, and AI CLIs like claude / aider / codex) ignore the system proxy. Turning on Terminal inspection wires them up through the user's shell, on two lanes:
- AI gateway (preferred, CA-free). AI CLIs and SDKs that honor
ANTHROPIC_BASE_URL/OPENAI_BASE_URLare pointed at a loopback gateway (http://127.0.0.1:3129/...). The tool speaks plain HTTP to localhost knowingly — no forged certificates, no CA in any trust store — and the gateway relays through the collector with a single upstream TLS connection. Fastest path (~single-digit ms overhead). - Proxy + CA (coverage + fallback). Everything else — plus any tool that missed the gateway env — gets
HTTPS_PROXY+ CA-bundle vars and rides the standard inspected proxy lane. Same policy, same redaction, slightly slower.
The exports land in new shells automatically, and shells opened before the agent started self-heal at their next prompt (a one-line kilasec: terminal inspection env applied to this shell notice appears). A long-running tool launched from a stale shell keeps its frozen environment until restarted — it stays fully inspected via the proxy lane meanwhile.
- Workspace default — the Terminal inspection toggle in the Devices page header sets the default for all devices.
- Per-device / bulk — expand a device and set On / Off / Inherit, or tick several devices and use the bulk terminal inspection buttons. A per-device setting overrides the workspace default. A device showing the CLI badge is inspecting terminal traffic.
- Changes apply on the device's next config poll (~60s), take effect in new terminals, and reach already-open shells at their next prompt (self-heal). It's best-effort: if the agent is stopped, terminals run uninspected rather than breaking (the exports are guarded on the agent being up). GUI enforcement at the network layer is the hard gate.
Common issues
| Symptom | Cause / fix |
|---|---|
| App isn't Protected / can't reach a collector | The collector isn't reachable from the device. On-network: check it's up. Remote: the device-endpoint port isn't open at the cloud firewall — verify the ingress rule. |
Browser: cert error (unknown ca) | The device doesn't trust the inspection CA. Re-run sudo kilasec-connect trust-ca. In Firefox, also set security.enterprise_roots.enabled=true (it ignores the OS store). |
Browser: can't reach site / PR_END_OF_FILE in Firefox | HTTP/3 (QUIC) bypasses the proxy. In Firefox set network.http.http3.enabled=false. |
--version still shows an old number after update | The version string is a static label, not a build number — it doesn't change between builds. Check freshness via the dashboard's version column, or kilasec-connect update. |
See the client command reference for every kilasec-connect command and flag.