The agent-native home network firewall. Sits inline between your modem and router so every device on your network passes through it — DNS sinkhole plus packet firewall, with research-backed safety packs for 13 common smart home devices and an API built to be operated by an AI agent.
graph LR
ISP[ISP] --> Modem[Modem]
Modem --> OW[OpenWard]
OW --> Router["Router / WiFi AP"]
Router --> Devices["Every device on your network"]
DNS-only tools can be bypassed: a device that hardcodes 8.8.8.8 skips your sinkhole entirely. OpenWard sits inline in the routing path, so the packet firewall applies regardless of where a device sends its DNS. No device can bypass it without physically disconnecting from the network.
Built-in safety packs for 13 smart home devices. Samsung TVs, LG TVs, Roku, Fire TV, Apple TV, Amazon Echo, Google Home, Ring, Wyze, Sonos, Philips Hue, Ecobee, and Vizio — each with a pre-researched list of what is safe to block (with reasons) and what will break the device if blocked. You do not have to figure this out yourself.
Agent-native from the ground up. The REST API and local CLI were designed as the primary control surface — stable JSON output, full read/write coverage, and the /openward skill for Claude Code that already knows how to investigate your network, propose blocking rules, and work within the approval flow.
Safe by design. Every blocking change goes through a propose → replay → approve → enforce → rollback lifecycle. An agent or operator proposes a rule, it gets replayed against real evidence, you approve it, and rollback is always one step away.
OpenWard is for people who:
- want real enforcement — not just DNS blocking that smart devices can route around
- want to know exactly what their smart-home devices are sending and to whom
- prefer open source and self-hosting over black-box appliances
- want an AI agent to do the investigation work, with themselves staying in the approval loop
The recommended hardware is a dual-2.5GbE x86 mini PC (Intel N100 or N200 class) with Debian 12. See the hardware support matrix.
Pick one path:
- Recommended real install: Linux installer
- Fastest evaluation on Linux: Docker quick start
- Raspberry Pi deployment: Raspberry Pi guide
- Local dev or testing on a Mac: macOS dev guide
Before you choose hardware or mode, read:
- inline gateway with DNS sinkhole and packet firewall (nftables on Linux, pf on macOS)
- research-backed safety packs for 13 smart home device vendors
- per-device privacy grades, trust states, and tracking-to-function ratio
- DNS evidence, CNAME cloaking detection, DoH bypass detection, and transport metadata
- statistical anomaly detection — entropy scoring, beacon analysis, z-score baselines
- safe policy lifecycle: propose → replay → approve → enforce → rollback
- agent-grade local CLI with stable JSON output
- REST API for remote agents and integrations
- embedded dashboard for review, controls, and reporting
flowchart TD
A["DNS + flow + packet metadata"]
B["device and destination context"]
C["findings, labels, and evidence"]
D["candidate → replay → approve → enforce → rollback"]
E["dnsmasq + nftables / pf sync"]
F["dashboard · CLI · REST API"]
A --> B --> C --> D --> E --> F
OpenWard was designed to be operated by an AI agent.
- Same machine: use the local CLI — all commands support
--jsonfor stable agent output - Remote: use the REST API — full read/write coverage, bearer token auth
- Claude Code: the
/openwardskill ships in.claude/skills/openward/— it knows the network, the evidence, and the full policy lifecycle
All proposed changes come back as candidates for human review before anything is enforced.
Full details: Use an AI agent · CLI reference · API reference
By default, the dashboard and REST API bind to 127.0.0.1.
If you intentionally expose the control plane beyond loopback, use an admin bearer token and read:
Apache-2.0. See LICENSE.