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. It generates a one-time code and the exact command to send the employee.
The employee runs it on their machine (macOS or Linux):
bashcurl -fsSL https://kilasec.com/connect | sh -s -- --enroll klsd_xxxxxxxxIt builds a private environment, downloads the client, enrolls, trusts your inspection CA (one
sudoprompt), and installs a background service that starts at login.Back in Devices, the machine shows as pending — click Approve.
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 menu-bar app (macOS) shows Protected with an Inspected / Direct / Blocked breakdown, or
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.
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 to the current client when a new build ships.
- Let users stop protection (workspace toggle) — whether users may pause inspection from their menu-bar app.
- 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); these requests show a gw badge in the menu-bar app's activity list and count toward its Gateway stat. - 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, and the menu-bar app shows a nudge when recent AI traffic skipped the gateway.
- 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 shows Blocked, 0 Inspected | 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.